readme: ---
  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}
  }
  ```
  
  