Tokenizer, Detener la eliminación de palabras, derivadas en Java
-
12-09-2019 - |
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.
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:
Aquí es uno de los muchos implementación Java de cerveza Stemer ).