python nlp language-detection

python - Detectando si el texto es inglés(a granel)



nlp language-detection (4)

Estoy buscando una forma simple de detectar si un breve fragmento de texto, unas pocas frases, es inglés o no. Me parece que este problema es mucho más fácil que tratar de detectar un lenguaje arbitrario. ¿Hay algún software que pueda hacer esto? Estoy escribiendo en Python, y preferiría una biblioteca de Python, pero otra cosa estaría bien también. Probé con Google, pero luego me di cuenta de que el TOS no permitía las consultas automáticas.


Aunque no es tan bueno como el de Google, he tenido buenos resultados utilizando Apache Nutch LanguageIdentifier, que viene con sus propios modelos de ngram prediseñados. Obtuve resultados bastante buenos en un gran corpus (50GB pdf, texto en su mayoría) de datos del mundo real en varios idiomas.

Está en Java, pero estoy seguro de que puede volver a leer los perfiles de ngram si quiere volver a implementarlo en Python.


EDITAR: Esto no funcionará en este caso, ya que OP está procesando texto a granel, lo que va en contra de los TOS de Google.

Use la API de detección de idioma de Google Translate. Ejemplo de Python de los documentos:

url = (''https://ajax.googleapis.com/ajax/services/language/detect?'' + ''v=1.0&q=Hola,%20mi%20amigo!&key=INSERT-YOUR-KEY&userip=INSERT-USER-IP'') request = urllib2.Request(url, None, {''Referer'': /* Enter the URL of your site here */}) response = urllib2.urlopen(request) results = simplejson.load(response) if results[''responseData''][''language''] == ''en'': print ''English detected''