nlp nltk language-detection

nlp - Detección de idioma para texto muy corto



nltk language-detection (3)

Estoy creando una aplicación para detectar el lenguaje de textos cortos, con un promedio de <100 caracteres y contiene jerga (por ejemplo, tweets, consultas de usuarios, sms).

Todas las bibliotecas que probé funcionan bien para páginas web normales, pero no para texto muy corto. La biblioteca que está dando los mejores resultados hasta el momento es la biblioteca de detección de lenguaje de Chrome (CLD) que tuve que construir como una biblioteca compartida.

CLD falla cuando el texto está hecho de palabras muy cortas. Después de mirar el código fuente de CLD, veo que usa 4 gramos, por lo que esa podría ser la razón.

El enfoque en el que estoy pensando ahora para mejorar la precisión es:

  • Eliminar nombres de marcas, números, URL y palabras como "software", "descargar", "internet"
  • Usar un diccionario Cuando el texto contiene un número de palabras cortas arriba de un límite o cuando contiene muy pocas palabras.
  • El diccionario está creado a partir de artículos de noticias de Wikipedia + diccionarios de Hunspell.

¿Qué conjunto de datos es el más adecuado para esta tarea? ¿Y cómo puedo mejorar este enfoque?

Hasta ahora estoy usando EUROPARL y artículos de Wikipedia. Estoy usando NLTK para la mayor parte del trabajo.


Sí, este es un tema de investigación y se han logrado algunos avances.

Por ejemplo, el autor de "detección de idioma" en http://code.google.com/p/language-detection/ ha creado nuevos perfiles para mensajes cortos. Actualmente, admite 17 idiomas.

Lo he comparado con Bing Language Detector en una colección de aproximadamente 500 tweets, la mayoría en inglés y español. La precisión es la siguiente:

Bing = 71.97% Language-Detection Tool with new profiles = 89.75%

Para obtener más información, puede consultar su blog en: http://shuyo.wordpress.com/2011/11/28/language-detection-supported-17-language-profiles-for-short-messages/


También omita nombres científicos o nombres de medicinas, etc. Su enfoque me parece bastante bueno. Creo que Wikipedia es la mejor opción para crear un diccionario, ya que contiene un lenguaje estándar. Si no se está quedando sin tiempo, también puede usar periódicos.


La detección de idiomas para textos muy cortos es el tema de investigación actual, por lo que no se puede dar una respuesta concluyente. Se puede encontrar un algoritmo para los datos de Twitter en Carter, Tsagkias y Weerkamp 2011 . Ver también las referencias allí.