codemining-treelm contém código para modelos de linguagem que funcionam em árvores.
codemining.ast
contém código para converter ASTs em TreeNodes independentes de linguagem
codemining.lm
contém uma implementação de PCFGs e TSGs, bem como alguns códigos relacionados ao idioma.
O projeto depende de três módulos internos (maven):
a) codemining-utils b) codemining-core c) codemining-sequencelm
O restante das dependências são declaradas nas dependências do maven.
Este repositório contém o código relacionado ao artigo:
@inproceedings{allamanis2014mining,
title={Mining Idioms from Source Code},
author={Allamanis, Miltiadis and Sutton, Charles},
booktitle={Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering},
pages={472--483},
year={2014},
organization={ACM}
}
Para treinar um TSG para Java use a classe principal em codemining.lm.tsg.tui.java.SampleBlockedTSG
com os argumentos
/path/to/folder binaryvariables filterblock 1.0 50
para executar o treinamento TSG como no artigo "Mining Idioms from Source Code". Para outras opções, explore o código.