Detección automática de similitud entre programas del lenguaje de programación Karel basada en técnicas de procesamiento de lenguaje natural



Título del documento: Detección automática de similitud entre programas del lenguaje de programación Karel basada en técnicas de procesamiento de lenguaje natural
Revista: Computación y sistemas
Base de datos: PERIÓDICA
Número de sistema: 000410050
ISSN: 1405-5546
Autores: 1
1
1
2
3
4
Instituciones: 1Instituto Politécnico Nacional, Centro de Investigación en Computación, Ciudad de México. México
2Universidad de Guanajuato, División de Ingenierías, Irapuato, Guanajuato. México
3Instituto Politécnico Nacional, Escuela Superior de Ingeniería Mecánica y Eléctrica, Ciudad de México. México
4Universidad Politécnica de Querétaro, Querétaro. México
Año:
Periodo: Abr-Jun
Volumen: 20
Número: 2
Paginación: 279-288
País: México
Idioma: Español
Tipo de documento: Artículo
Enfoque: Experimental, aplicado
Resumen en español Este artículo presenta un método para calcular la similitud entre programas (código fuente). La tarea es útil, por ejemplo, para la clasificación temática de programas o detección de reuso de código (digamos, en el caso de plagio). Usamos para los experimentos el lenguaje de programación Karel. Para determinar la similitud entre programas y/o ideas de soluciones similares utilizamos un enfoque basado en técnicas de procesamiento de lenguaje natural y de recuperación de información. Estas técnicas usan la representación de un documento como un vector de valores de características. Usualmente, las características son n-gramas de palabras o de caracteres. Posteriormente, se puede aplicar el análisis semántico latente para reducir la dimensionalidad de este espacio vectorial. Finalmente, se usa el aprendizaje automático supervisado para la clasificación de textos (o programas que son textos también) parecidos. Para validar el método propuesto, se compiló un corpus de programas para 100 tareas diferentes con un total de 9,341 códigos y otro corpus para 34 tareas adicionalmente clasificado por la idea de solución, formado por 374 códigos. Los resultados experimentales muestran que para el corpus con ideas de solución es mejor la representación con trigramas de caracteres, mientras que para el corpus completo los mejores resultados se obtienen con trigramas de términos y la aplicación del análisis semántico latente
Resumen en inglés In this paper, we present a method for calculating similarity between programs (source codes). One of the applications of the task is detection of code reuse, for example, in the case of plagiarism. The Karel programming language is used for experiments. In order to determine similarity between Karel programs and/or similar software solutions, we make use of techniques from the fields of natural language processing and information retrieval. These techniques use representations of documents as vectors of features and their values. Usually, the features are n-grams of words or n-grams of characters. In addition, we consider application of the latent semantic analysis for reduction of the number of dimensions of the vector space. Finally, we use a supervised machine learning approach for classification of texts (or programs, which are texts as well) based on their similarity. For evaluation of the proposed method, two corpora were developed: the first corpus is composed of 100 different programs with a total of 9,341 source codes. The second corpus consists of 34 tasks with a total of 374 codes, which are grouped by the proposed solution. Our experiments showed that for the first corpus, the best results were obtained using trigrams of terms (words) accompanied with application of latent semantic analysis, while for the second corpus, the best representation was achieved using character trigrams
Disciplinas: Ciencias de la computación
Palabras clave: Programación,
Código fuente,
Análisis semántico,
Programas de cómputo,
Recuperación de información,
Procesamiento de lenguaje natural
Keyword: Computer science,
Programming,
Source code,
Semantic analysis,
Computer programs,
Information retrieval,
Natural language processing
Texto completo: Texto completo (Ver HTML)