2009-06-18 7 views
2

J'ai l'intention d'utiliser la version SQL de WordNet et j'ai un problème pour trouver un moyen de lemmatiser des mots afin de les trouver dans la base de données; Je ne peux pas utiliser le lemmatiseur WordNet lui-même car il est appliqué à la version textuelle de WorldNet.Comment Morpha Lemmatizer est-il utilisé?

J'ai lu ici qu'il y a un bon lemmatizer qui renvoie de vrais mots - et c'est exactement ce dont j'ai besoin. J'ai téléchargé "Morpha", le lemmatizer suggéré, mais je ne comprends pas comment l'utiliser.

  • Une compilation est-elle nécessaire?
  • Quel fichier dois-je utiliser?
  • Comment puis-je l'utiliser dans une application qui accède à la base de données WordNet SQL?
+1

+1 pour m'avoir enseigné un nouveau mot (et concept) –

Répondre

0

Minnen et al's paper on Morpha peut être un bon endroit pour commencer à comprendre comment fonctionne le lemmatizer. Ca fait longtemps que je n'ai pas eu d'expérience avec ça, mais je suis sûr que ça fonctionne comme un binaire standard. En fonction de la performance, vous devrez peut-être marquer vos termes au préalable, mais c'est à peu près le même problème que vous aurez à interroger WordNet, donc ça commence à sonner comme si vous deviez gravir cette colline de toute façon. Vous utiliserez essentiellement la forme racine lors de l'interrogation de la base de données Wordnet, mais si vous l'utilisez juste pour cela, je vous invite à essayer le Mormer stemmer, qui a été spécialement conçu pour Wordnet, et qui correspondra de manière fiable aux formes de racine énumérées là-dedans.

1

L'UW a uploaded morpha stemmer to Maven central. Il y a un emballage qui le rend beaucoup plus facile à utiliser. Vous avez juste besoin de l'ajouter en tant que dépendance et d'utiliser la classe edu.washington.cs.knowitall.morpha.MorphaStemmer. Les instances sont threadsafe (le JFlex d'origine avait des champs de classe pour les variables locales inutilement). Instancier une classe et exécuter morpha et le mot que vous souhaitez arrêter.

new MorphaStemmer().morpha("climbed") // goes to "climb" 
Questions connexes