Разработка программных средств для улучшения работы механизма автодополнения кода с использованием алгоритмов машинного обучения в интегрированной среде разработки для языка Python
https://doi.org/10.25205/1818-7900-2020-18-2-62-75
Аннотация
Автоматическое дополнение кода является важной функцией интегрированной среды разработки. Оно позволяет пользователям упростить набор длинных выражений в процессе программирования. Методы автоматического дополнения кода, как рассматриваемые в научных работах, так и реализованные в коммерческих продуктах, варьируются от применения эвристик для конкретных случаев до машинного обучения. При этом такие методы обычно опираются на статистические данные и не учитывают поведение пользователей. В статье предлагается подход к улучшению механизма автоматического дополнения кода для языка Python на основе сбора данных о работе этого механизма у реальных пользователей. Эти данные используются для обучения модели с целью последующего ранжирования вариантов автодополнения с помощью алгоритмов машинного обучения. Для обучения модели используются два типа признаков: контекстные и элементные. Контекстные признаки описывают информацию о коде рядом с позицией курсора в текстовом редакторе. Элементные признаки описывают характеристики предлагаемого варианта дополнения кода, например длину совпадающего префикса или тип варианта. Отмечается зависимость модели от ограничений на время ее срабатывания и размер. В работе также рассматриваются различные подходы к оценке качества полученной модели.
Для цитирования:
Матвеев А.О.,
Быстров А.В.,
Бибаев В.И.,
Поваров Н.И.
Разработка программных средств для улучшения работы механизма автодополнения кода с использованием алгоритмов машинного обучения в интегрированной среде разработки для языка Python. Вестник НГУ. Серия: Информационные технологии. 2020;18(2):62-75. https://doi.org/10.25205/1818-7900-2020-18-2-62-75
For citation:
Matveev A.O.,
Bystrov A.V.,
Bibaev V.I.,
Povarov N.I.
Development of Software Tools to Improve the Work of the Code Completion Mechanism Using Machine Learning Algorithms in an Integrated Development Environment for Python. Vestnik NSU. Series: Information Technologies. 2020;18(2):62-75.
(In Russ.)
https://doi.org/10.25205/1818-7900-2020-18-2-62-75
Просмотров:
45