Инструмент суммирования исходного кода Funcom - публичный выпуск
Этот репозиторий содержит общедоступный код выпуска для Funcom, инструмент для суммирования исходного кода. Суммизация кода является задачей автоматического генерирования описаний естественного языка исходного кода.
Leclair, A., McMillan, C., «Рекомендации для наборов данных для суммирования исходного кода», в Proc. Ежегодной конференции Североамериканской главы Ассоциации по вычислительной лингвистике 2019 года (NAACL'19), короткая исследовательская бумага, Миннеаполис, США, 2-7 июня 2019 года.
Leclair, A., Jiang, S., McMillan, C., «Нейронная модель для генерации резюме естественного языка программных подпрограмм», в Proc. 41-й Международной конференции ACE/IEEE по разработке программного обеспечения (ICSE'19), Монреаль, QC, Канада, 25-31 мая 2019 года.
https://arxiv.org/abs/1902.01954
Случайно отобранные примеры вывода из модели AST-AttendGru по сравнению со ссылкой на хорошие резюме, написанные человеком:
Вывод прототипа - ссылка на человека
Возвращает продолжительность фильма - получите полную длину этого фильма за секунды
Напишите строку клиенту - напишите строку всем подключенным клиентам
Этот метод вызван для указания следующей страницы на странице - вызов, чтобы явно перейти на следующую страницу из одного розыгрыша
Возвращает список всех идентификаторов, которые соответствуют данному геном - получите список идентификаторов суперсемейства для имени гена
сравнивает два узла по их UNK - сравнить узлы N1 и N2 с их записью DX
Этот метод обновляет панель дерева - обновляет панель дерева новым деревом
Возвращает количество остатков в последовательности - Получите количество взаимодействующих остатков в домене B
Возвращает true, если найдена сеть - вернуть true, если пройден INET, соответствует сети, которая использовалась
Сообщение о состоянии журнала - Войдите в систему текущего сообщения в качестве информации
Этот репозиторий является архивным для бумаги ICSE'19, упомянутой выше. Это хорошее место для начала, но вы также можете посмотреть на наши новые проекты:
https://github.com/aakashba/callcon-public
https://github.com/attn-to-fc/attn-to-fc
https://github.com/acleclair/icpc2020_gnn
Мы предполагаем, что Ubuntu 18.04, Python 3.6, Keras 2.2.4, Tensorflow 1.12. Ваша прокладка может варьироваться в разных системах.
Мы предоставляем набор данных из 2,1 млн. МЕТОДЫ И МЕТОДЫ КОММЕНТАРИИ МЕТОДЫ, уже очищенные и разделены на обучение/Val/Test Sets:
https://s3.us-east-2.amazonaws.com/icse2018/index.html
(Примечание: этой статье сейчас несколько лет. Пожалуйста, см. Обновление данных здесь: https://github.com/aakashba/callcon-public)
Извлеките набор данных в каталог (/ царапина/ является предполагаемым дефолтом), чтобы у вас была структура каталогов:
/scratch/funcom/data/standard/dataset.pkl
и т. д. в соответствии с файлами, описанными на сайте выше.
Чтобы соответствовать значениям по умолчанию, создайте следующие каталоги:
/scratch/funcom/data/sutdir/models/
/scratch/funcom/data/utder/istories/
/scratch/funcom/data/sutdir/прогнозы/
you@server:~/dev/funcom $ time python3 train.py --model-type=attendgru --gpu=0
Типы моделей определены в model.py. Версия ICSE'19-AST-Attendgru, если вы хотите воспроизвести его для сравнения с вашими собственными моделями. Обратите внимание, что история истории для каждой эпохи хранится в файле PKL EG /Scratch/funcom/data/outdir/histories/attendgru_hist_1551297717.pkl. Целое число в конце файла - это время эпохи, в которое началось обучение, и используется для подключения истории, конфигурации, модели и прогнозирования. Например, обучение посещаемости в эпохе 5 будет производить:
/scratch/funcom/data/outdir/histories/attendgru_conf_1551297717.pkl
/scratch/funcom/data/outdir/histories/attendgru_hist_1551297717.pkl
/scratch/funcom/data/outdir/models/attendgru_e01_1551297717.h5
/scratch/funcom/data/outdir/models/attendgru_e02_1551297717.h5
/scratch/funcom/data/outdir/models/attendgru_e03_1551297717.h5
/scratch/funcom/data/outdir/models/attendgru_e04_1551297717.h5
/scratch/funcom/data/outdir/models/attendgru_e05_1551297717.h5
Хорошей базовой линейкой для первоначальной работы является модель посещаемости. Комментарии в файле (Models/PatingGru.py) подробно объясняют его поведение, и он тренируется относительно быстро: около 45 минут на эпоху, используя размеры партии 200 на одном Quadro P5000, с максимальной производительностью на установке валидации в Epoch 5.
you@server:~/dev/funcom $ time python3 predict.py /scratch/funcom/data/outdir/models/attendgru_E05_1551297717.h5 --gpu=0
Единственным необходимым входом для прогнозирования.py в командной строке является файл модели, но информация о конфигурации считывается из файлов PKL, упомянутых выше. Выходные прогнозы будут записаны в файл, например:
/scratch/funcom/data/outdir/predictions/predict-attendgru_e05_1551297717.txt
Обратите внимание, что прогноз ЦП в принципе возможен, но по умолчанию модели посещают Gru и AST-ATTENTENDGRU используют CUDNNGRU вместо стандартного GRU, что требует использования GPU во время прогноза.
you@server:~/dev/funcom $ time python3 bleu.py /scratch/funcom/data/outdir/predictions/predict-attendgru_E05_1551297717.txt
Это выведет оценку BLEU для файла прогнозирования.