Pergunta

Eu estou procurando uma classe ou método que leva uma longa seqüência de muitos 100s de palavras e tokenizes, remove as palavras de parada e caules para uso em um sistema de IR.

Por exemplo:

"O gato gordo grande, disse 'sua cara mais engraçado que eu sei' para o canguru ..."

o tokenizer iria remover a pontuação e retornar um ArrayList de palavras

a parada palavra removedor iria remover palavras como "o", "a", etc

o stemmer reduziria cada palavra do seu 'root', por exemplo 'mais engraçada' se tornaria engraçado

Muito obrigado antecipadamente.

Foi útil?

Solução

Lucene pode fazer o que quiser. Com StandardAnalyzer e StopAnalyzer que puder para a paragem palavra remoção. Em combinação com o Lucene contrib-snowball (que inclui o trabalho de Snowball ) projeto que você pode fazer também o decorrentes.

Mas para decorrentes também considerar esta resposta para: algoritmo Stemming que produz palavras reais

Outras dicas

Estes são requisitos padrão em Processamento de Língua Natural, então eu ficaria em tais kits de ferramentas. Desde que você necessita Java eu ??começaria com OpenNLP: http://opennlp.sourceforge.net/

Se você pode olhar para outras línguas também há NLTK (Python)

Note que "o seu mais engraçada cara que eu conheço" não é a sintaxe padrão e isso torna mais difícil processo de "Você é o cara mais engraçado que eu sei". Não é impossível, mas muito mais difícil. Eu não sei de qualquer sistema que equivaleria a "sua" para "você é".

Eu tenho lidado com a questão de uma série de tarefas com quem trabalhei, então deixe-me dar uma sugestão tokenizer. Como eu não vê-lo dado diretamente como uma resposta, muitas vezes eu uso edu.northwestern.at.utils.corpuslinguistics.tokenizer.* como minha família de tokenizers. Eu vejo uma série de casos em que eu usei a classe PennTreebankTokenizer. Aqui está como você usá-lo:

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

O link para este trabalho é aqui . Apenas um aviso, eu não tenho nenhuma afiliação com Northwestern, o grupo, ou o trabalho que fazem. Eu sou apenas alguém que usa o código de vez em quando.

Aqui está a lista completa de PNL ferramentas . Em algum momento faz sentido criar estes você mesmo como eles vão ser mais leve e você teria mais controle para o funcionamento interno: expressão regular uso simples para tokenizations. Para palavras de parada apenas empurrar a lista abaixo ou alguma outra lista para um HashSet:

common-Inglês-words.txt

Aqui está um dos muitos implementação Java do porteiro Stemer ).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top