2010-03-22 14 views
20

Tengo una lista de artículos, y cada artículo tiene su propio título y descripción. Desafortunadamente, de las fuentes que estoy usando, no hay forma de saber en qué idioma están escritos.¿Reconoce el lenguaje de un texto breve?

Además, el texto no está escrito enteramente en 1 idioma; casi siempre las palabras en inglés están presentes.

Creo que necesitaría bases de datos de diccionario almacenadas en mi máquina, pero me parece un poco impráctico. ¿Qué sugieres que haga?

+1

Duplicado: http://stackoverflow.com/questions/1167262/automatically-determine-the-natural-language-of-a-website-page-given-its-url –

+1

También la respuesta a esto puede hacer que esta pregunta innecesario, pero no - técnicamente - un duplicado. http://stackoverflow.com/questions/88984/your-favorite-natural-language-parser –

+0

@Lott gracias:) – RadiantHex

Respuesta

15

Usaría el proyecto guess-language.

Editar: Ahora en Bitbucket

+0

@Alex: gracias Alex. ¡Esto es realmente muy útil! – RadiantHex

+0

+1 ... ¡muy útil! – Andy

+3

Tenga en cuenta que el guess_language vinculado ahora no se mantiene y los enlaces a un [fork para Python2 y Python3] (https://bitbucket.org/spirit/guess_language). – Bengt

4

Puede probar el Google AJAX Language API si no le importa usar un servicio web para hacer su trabajo por usted.

+0

Advertencia: Google Translate API es un servicio pago. – bitek

1

Si neos recomendación también es poco práctico, me gustaría probar algo como esto:

En muchos idiomas hay algunas palabras clave que se encuentran en muchas frases y, a menudo no se encuentran en otra idiomas.

Ejemplo: "El" en Inglés, "der", "morir", "das" en alemán, ....

encontrar muchas palabras y tratar de encontrar en sus textos. Por fin puede ser un poco borroso; por ejemplo, cuando encuentre "el" y "der", podría ser un texto en alemán que contenga algunas oraciones en inglés. Al menos con suficientes palabras de los idiomas de destino, puede alcanzar una tasa de aciertos alta.

+0

Eso es lo que hace 'guess-language'. – voyager

+0

@voyager: gracias por la información. Supongo que sí ;-) No, no sabía el lenguaje de adivinación u otras herramientas antes. Pero creo que todas estas herramientas tampoco pueden hacer magia. – Juergen

+0

tampoco lo hice, pero miré un poco la fuente y eso es lo que estaba haciendo. :) – voyager

2

En general, está buscando hacer la identificación de nGram. Dado que esta es una pregunta de Python, puede echarle un vistazo a http://github.com/koblas/ngramj-python que es un puerto python puro de la biblioteca java ngram (otro proyecto de código abierto).

La documentación es deficiente, pero tiene una precisión muy buena.

1

Sé que esta es una vieja pregunta, pero en caso de que la gente se encuentre con esto mientras investiga opciones para esta tarea, vale la pena mencionar que otra herramienta es langid.

Cuestiones relacionadas