|
--- |
|
language: |
|
- en |
|
tags: |
|
- summarization |
|
license: apache-2.0 |
|
datasets: |
|
- DeepCom |
|
metrics: |
|
- bleu |
|
--- |
|
|
|
# How To Use |
|
```PYTHON |
|
from transformers import BartForConditionalGeneration, BartTokenizer |
|
model = BartForConditionalGeneration.from_pretrained("NTUYG/ComFormer") |
|
tokenizer = BartTokenizer.from_pretrained("NTUYG/ComFormer") |
|
code = ''' |
|
public static void copyFile( File in, File out ) |
|
throws IOException |
|
{ |
|
FileChannel inChannel = new FileInputStream( in ).getChannel(); |
|
FileChannel outChannel = new FileOutputStream( out ).getChannel(); |
|
try |
|
{ |
|
// inChannel.transferTo(0, inChannel.size(), outChannel); // original -- apparently has trouble copying large files on Windows |
|
|
|
// magic number for Windows, 64Mb - 32Kb) |
|
int maxCount = (64 * 1024 * 1024) - (32 * 1024); |
|
long size = inChannel.size(); |
|
long position = 0; |
|
while ( position < size ) |
|
{ |
|
position += inChannel.transferTo( position, maxCount, outChannel ); |
|
} |
|
} |
|
finally |
|
{ |
|
if ( inChannel != null ) |
|
{ |
|
inChannel.close(); |
|
} |
|
if ( outChannel != null ) |
|
{ |
|
outChannel.close(); |
|
} |
|
} |
|
} |
|
''' |
|
code_seq, sbt = utils.transformer(code) #can find in https://github.com/NTDXYG/ComFormer |
|
input_text = code_seq + sbt |
|
input_ids = tokenizer.encode(input_text, return_tensors="pt", max_length=256, truncation=True) |
|
summary_text_ids = model.generate( |
|
input_ids=input_ids, |
|
bos_token_id=model.config.bos_token_id, |
|
eos_token_id=model.config.eos_token_id, |
|
length_penalty=2.0, |
|
max_length=30, |
|
min_length=2, |
|
num_beams=5, |
|
) |
|
comment = tokenizer.decode(summary_text_ids[0], skip_special_tokens=True) |
|
print(comment) |
|
``` |
|
# BibTeX entry and citation info |
|
``` |
|
@misc{yang2021comformer, |
|
title={ComFormer: Code Comment Generation via Transformer and Fusion Method-based Hybrid Code Representation}, |
|
author={Guang Yang and Xiang Chen and Jinxin Cao and Shuyuan Xu and Zhanqi Cui and Chi Yu and Ke Liu}, |
|
year={2021}, |
|
eprint={2107.03644}, |
|
archivePrefix={arXiv}, |
|
primaryClass={cs.SE} |
|
} |
|
``` |
|
|
|
|