Pregunta

Busco a una clase o un método que toma una cadena larga de muchos 100s de palabras y tokenizes, elimina las palabras vacías y tallos para su uso en un sistema de infrarrojos.

Por ejemplo:

  

"El gato grande y gordo, dijo 'tu chico más gracioso que sabe' a la canguro ..."

El señalizador eliminaría la puntuacion y devolver una ArrayList de las palabras

la palabra parada removedor eliminaría palabras como "el", "a", etc.

la despalilladora reduciría cada palabra del su 'raíz', por ejemplo 'más divertida' se convertiría divertido

Muchas gracias de antemano.

¿Fue útil?

Solución

Lucene puede hacer lo que quiera. Con StandardAnalyzer y StopAnalyzer que pueda para la eliminación de palabras vacías. En combinación con el Lucene contrib-snowball (que incluye el trabajo de bola de nieve ) proyecto que puede hacer la derivada también.

Sin embargo, para detener también consideran que esta respuesta: Stemming algoritmo que produce palabras reales

Otros consejos

Estos son los requisitos estándar de procesamiento del lenguaje natural por lo que me gustaría ver en este tipo de herramientas. Dado que usted requiere Java me gustaría empezar con OpenNLP: http://opennlp.sourceforge.net/

Si se puede ver en otros idiomas también hay NLTK (Python)

Tenga en cuenta que "el tipo más gracioso que sé" no es la sintaxis estándar y esto hace que sea más difícil de procesar que "Usted es el tipo más gracioso que sé". No es imposible, pero mucho más difícil. No conozco ningún sistema que equiparar "su" a "eres".

He tratado el tema de una serie de tareas que he trabajado, así que voy a dar una sugerencia tokenizer. Como no veo que da directamente como una respuesta, a menudo uso edu.northwestern.at.utils.corpuslinguistics.tokenizer.* como mi familia de tokenizers. Veo una serie de casos en los que utilicé la clase PennTreebankTokenizer. Así es como se lo utiliza:

    WordTokenizer wordTokenizer = new PennTreebankTokenizer();
    List<String> words = wordTokenizer.extractWords(text);

El enlace a este trabajo es aquí . Sólo una advertencia, no tengo ninguna afiliación con Northwestern, el grupo o el trabajo que realizan. Soy sólo una persona que utiliza el código de vez en cuando.

Aquí está la lista completa de herramientas de PNL . En algún momento tiene sentido para crear estos usted mismo, ya que será más ligero y que tendría un mayor control para el funcionamiento interno: simple uso de expresiones regulares para tokenizations. Para las palabras vacías simplemente empujan la siguiente lista o alguna otra lista a un HashSet:

común-Inglés-words.txt

Aquí es uno de los muchos implementación Java de cerveza Stemer ).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top