Research group

Machine Learning Methods in Software Engineering

Построение векторного представления программного кода на основе AST

26 August 2020

Использование алгоритмов машинного обучения накладывает ограничение на формат входных данных -- они должны быть в численном формате. Для изображений такими числами могут быть значения RGB каждого пикселя, а для текста можно заменить каждое слово на уникальное число. Но такое простое кодирование несёт мало информации, поэтому в результате алгоритмы плохо справляются с обобщением данных. Одним из возможных вариантов заложить в численное представление больше информации -- использовать вектора, при построение которых можно учитывать не только пиксель или слово, но и контекст вокруг. Эти вектора в дальнейшем можно использовать уже для обучения моделей под конкретную задачу.

Программный код не является исключением, имея на входе файлы с чистым кодом на одном из языков программирования, необходимо построить вектора, которые в дальнейшем бы передавали информацию о соответствующем куске кода. Современные подходы всё чаще оперируют абстрактными синтаксическими деревьями (AST), использование информации о структуре кода улучшает качество моделей на ряде задач. На семинаре мы рассмотрим популярные алгоритмы построения векторных представлений на основе AST, а также возможные модификации алгоритма обработки естественного языка Tree-LSTM для работы с AST.

Докладчик: Егор Спирин.

Язык доклада: русский.

Дата и время: 26-е августа, 17:00-18:30.

Место: https://zoom.us/j/509624984

Видео с семинаров доступно по ссылке: http://bit.ly/MLJBSeminars

Для получения рассылки о семинаре (с паролем от Zoom) - пишите Алексею Шпильману на alexey@shpilman.com.

Resources