Funcom 소스 코드 요약 도구 - 공개 릴리스
이 저장소에는 소스 코드 요약 도구 인 Funcom 용 공개 릴리스 코드가 포함되어 있습니다. 코드 요약은 소스 코드의 자연어 설명을 자동으로 생성하는 작업입니다.
Leclair, A., McMillan, C., "소스 코드 요약을위한 데이터 세트 권장 사항", Proc. 2019 년 6 월 2 일부터 7 일, 미국 미니애폴리스의 짧은 연구 논문 트랙 (NAACL'19), 2019 년 6 월 2-7 일, 짧은 연구 논문 트랙 (NAACL'19)의 북미 챕터 (NAACL'19)의 2019 연례 연례 회의 중.
Leclair, A., Jiang, S., McMillan, C., "프로그램 서브 루틴의 자연 언어 요약을 생성하기위한 신경 모델", Proc. 2019 년 5 월 25-31 일 캐나다 QC 몬트리올, 몬트리올 (Montreal), 41 번째 ACE/IEEE 국제 회의 (ICSE'19) 중.
https://arxiv.org/abs/1902.01954
AST-Attendgru 모델에서 무작위로 샘플링 된 예제 출력은 인간이 쓴 좋은 요약과 비교하여 :
프로토 타입 출력 - 휴먼 참조
영화 지속 시간을 반환 -이 영화의 전체 길이를 몇 초 만에 가져옵니다.
클라이언트에 문자열 쓰기 - 연결된 모든 클라이언트에 문자열을 작성하십시오.
이 메소드는 페이지의 다음 페이지를 표시하도록 호출됩니다. 단일 그리기 내에서 다음 페이지로 명시 적으로 이동하려면 전화하십시오.
주어진 유전자와 일치하는 모든 ID 목록을 반환 - 유전자 이름에 대한 슈퍼 패밀리 ID 목록을 얻으십시오.
UNK의 두 노드 비교 - DX 항목으로 노드 N1과 N2 비교
이 방법은 트리 패널을 업데이트합니다 - 새 트리로 트리 패널을 업데이트합니다.
순서대로 잔류 물 수를 반환 - 도메인 B에서 상호 작용 잔기 수를 얻습니다.
네트워크가 발견되면 true를 반환합니다 - 통과 된 INET 주소가 사용 된 네트워크와 일치하는 경우 true를 반환합니다.
로그 상태 메시지 - 현재 메시지의 상태를 정보로 로그인
이 저장소는 위에서 언급 한 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.1m Java 메소드 및 메소드 주석의 데이터 세트를 제공하며, 이미 정리하고 Training/Val/테스트 세트로 분리되었습니다.
https://s3.us-east-2.amazonaws.com/icse2018/index.html
(참고 :이 백서는 이제 몇 년이되었습니다. 여기에서 데이터 업데이트를 참조하십시오 : https://github.com/aakashba/callcon-public).
디렉토리 구조를 갖도록 디렉토리 (/ 스크래치/가 가정 된 기본값입니다)로 데이터 세트를 추출하십시오.
/scratch/funcom/data/standard/dataset.pkl
위의 사이트에 설명 된 파일에 따라.
기본값과 일치하려면 다음 디렉토리를 작성하십시오.
/스크래치/funcom/data/outdir/models/
/스크래치/funcom/data/outdir/histories/
/스크래치/funcom/data/outdir/predictions/
you@server:~/dev/funcom $ time python3 train.py --model-type=attendgru --gpu=0
모델 유형은 model.py에 정의됩니다. ICSE'19 버전은 AST-Attendgru입니다. 자신의 모델과 비교하기 위해 재현하려는 경우. 각 epoch에 대한 기록 정보는 PKL 파일에 저장됩니다. 예를 들어 /scratch/funcom/data/outdir/histories/attendgru_hist_1551297717.pkl에 저장됩니다. 파일 끝의 정수는 훈련이 시작된 시대 시간이며 기록, 구성, 모델 및 예측 데이터를 연결하는 데 사용됩니다. 예를 들어, Epoch 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_155129717.h5
/scratch/funcom/data/outdir/models/attendgru_e03_1551297717.h5
/scratch/funcom/data/outdir/models/attendgru_e04_155129717.h5
/scratch/funcom/data/outdir/models/attendgru_e05_1551297717.h5
초기 작업의 좋은 기준은 참석자 모델입니다. 파일 (Models/Attortgru.py)의 주석은 동작을 자세히 설명하고 비교적 빠르게 훈련합니다. 단일 Quadro P5000에서 Batch Size 200을 사용하여 Epoch 당 약 45 분 동안 Epoch 5에서 유효성 검사에서 최대 성능을 설정합니다.
you@server:~/dev/funcom $ time python3 predict.py /scratch/funcom/data/outdir/models/attendgru_E05_1551297717.h5 --gpu=0
명령 줄에서 predict.py에 필요한 유일한 입력은 모델 파일이지만 구성 정보는 위에서 언급 한 PKL 파일에서 읽습니다. 출력 예측은 파일에 기록됩니다.
/scratch/funcom/data/outdir/predictions/predict-attendgru_e05_1551297717.txt
CPU 예측은 원칙적으로 가능하지만 기본적으로 참석자 및 AST-Attendgru 모델은 표준 GRU 대신 CUDNNGRU를 사용하므로 예측 중에 GPU를 사용해야합니다.
you@server:~/dev/funcom $ time python3 bleu.py /scratch/funcom/data/outdir/predictions/predict-attendgru_E05_1551297717.txt
이것은 예측 파일의 BLEU 점수를 출력합니다.