Инструмент автоматического завершения кода на основе анализа контекста и глубинного обучения DeepAPIRec был выпущен командой CodeWisdom лаборатории программной инженерии Фуданьского университета. DeepAPIRec использует информацию о использовании API в коде и его структурные данные, а также объединяет Child-Sum Tree-LSTM и N-ary LSTM сети как модели глубинного обучения для рекомендации API. Кроме того, DeepAPIRec создаёт статистическую модель параметров для экземпляризации параметров API и переупорядочивает рекомендованные глубинной моделью API.
Поддержка рекомендации одиночных строк кода API (в настоящее время поддерживаются рекомендации API JDK 1.8 и конструкций управления, таких как if, while, for).
Поддержка заполнения параметров рекомендованных API.
Отображение краткого описания использования рекомендованных API.
Автоматическое импортирование информации import для необходимых API.
Выполните ConstructDataMain3.java в Extractor/src/main/java/constructdata (filePaths в ConstructDataMain3.java указывают пути к java-файлам (.txt) всех проектов, используемых для обучения, каждое значение на новой строке; outputPath — путь хранения данных для обучения).
Выполните скрипт doOneModelV9.py в TreeLSTM/treelstm (укажите соответствующие пути и параметры).## Обучение модели DeepAPIRec:
Выполните TreelstmTrain.ipynb в TreeLSTM/treelstm (укажите соответствующие гиперпараметры).
Установите веб-сервис через Tomcat (укажите соответствующие пути и параметры).
Выполните скрипт treelstmPredictServer.py в TreeLSTM/treelstm (укажите соответствующие параметры).
Выполните скрипт client.py в TreeLSTM/py (укажите соответствующие параметры).
Примечание: можно использовать плагины Eclipse, IntelliJ и т.д., чтобы запустить client.py и сделать его частью приложения. Можно также воспользоваться примерами плагинов Eclipse Che в папке che.
Python 2.7
JDK 1.8
TensorFlow 1.0.0
TensorFlow Fold 0.0.1
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )