Question

Je suis à la recherche d'une classe ou une méthode qui prend une longue série de beaucoup de 100s des mots et tokenizes, supprime les mots d'arrêt et les tiges pour une utilisation dans un système IR.

Par exemple:

  

"Le grand gros chat, dit votre gars le plus drôle je sais» au Kangourou ..."

le tokenizer supprimerait la ponctuation et retourner un ArrayList de mots

le décapant de mot d'arrêt supprimerait des mots comme « le », « à », etc

l'égrappoir réduirait chaque mot le leur « racine », par exemple « plus drôle » deviendrait drôle

Un grand merci à l'avance.

Était-ce utile?

La solution

Lucene peut faire ce que vous voulez. Avec StandardAnalyzer et StopAnalyzer vous pouvez à la suppression des mots d'arrêt. En combinaison avec le Lucene contrib-snowball (qui comprend le travail de boule de neige ) projet, vous pouvez faire l'issu aussi.

Mais pour endiguer cette réponse considèrent également à: algorithme de lemmatisation qui produit de vrais mots

Autres conseils

Ce sont des exigences standard dans le traitement du langage naturel, donc je rechercherais dans ces boîtes à outils. Depuis vous avez besoin de Java je commencerais avec OpenNLP: http://opennlp.sourceforge.net/

Si vous pouvez regarder d'autres langues il y a aussi NLTK (Python)

Notez que « votre mec le plus drôle je sais » n'est pas la syntaxe standard, ce qui rend plus difficile à traiter que « Tu es le gars plus drôle que je sais ». Pas impossible, mais beaucoup plus difficile. Je ne sais pas d'un système qui équivaudrait « votre » à « vous êtes ».

Je l'ai abordé la question sur un certain nombre de tâches que j'ai travaillé, alors laissez-moi donner une suggestion tokenizer. Comme je ne vois pas donné directement comme une réponse, je l'utilise souvent edu.northwestern.at.utils.corpuslinguistics.tokenizer.* comme ma famille de tokenizers. Je vois un certain nombre de cas où je la classe PennTreebankTokenizer. Voici comment vous l'utilisez:

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

Le lien vers ce travail est . Juste un avertissement, je n'ai aucune affiliation avec le Nord-Ouest, le groupe ou le travail qu'ils font. Je suis juste quelqu'un qui utilise le code de temps en temps.

Voici la liste complète des outils PNL . Parfois, il est logique de créer vous-même ces car ils seront plus légers et vous auriez plus de contrôle au fonctionnement interne: une utilisation simple expression régulière pour tokenizations. Pour les mots d'arrêt poussent juste la liste ci-dessous ou une autre liste à un HashSet:

-words.txt commun-anglais

Voici un des nombreux implémentation Java de porter Stemer).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top