SciELO - Scientific Electronic Library Online

 
vol.20 issue2Unsupervised Opinion Polarity Detection based on New Lexical ResourcesIntegrated Routing and Positioning in Mobile Ad Hoc Networks author indexsubject indexsearch form
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

  • Have no similar articlesSimilars in SciELO

Share


Computación y Sistemas

On-line version ISSN 2007-9737Print version ISSN 1405-5546

Abstract

SIDOROV, Grigori et al. Detección automática de similitud entre programas del lenguaje de programación Karel basada en técnicas de procesamiento de lenguaje natural. Comp. y Sist. [online]. 2016, vol.20, n.2, pp.279-288. ISSN 2007-9737.  https://doi.org/10.13053/cys-20-2-2369.

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.

Keywords : Similitud; n-gramas; programa; código fuente; análisis semántico latente; recuperación de información; procesamiento de lenguaje natural.

        · abstract in English     · text in Spanish     · Spanish ( pdf )