2016-04-06 3 views
1

Ich habe mit einer Reihe von Stemmern und Lemmatizern in NLTK gespielt, aber keiner tut was ich will. Ich habe eine Reihe von Wörtern wie "Radiologe", "Radiologie", "Kardiologe", "Kardiologie", usw. ... wo ich möchte, dass der * * * * * * * * * * * * * * * * * * * * * * * * * * * Ich habe versucht, PorterStemer, SnowballStemer und WordNet Lemmatizer in Python, aber nichts sendet diese in den gleichen Eimer. Es scheint, als ob Stemming dies erreichen sollte, und das sind keine unglaublich ungewöhnlichen Worte. Wie würden Sie das gewünschte Ergebnis erreichen?Wie man Wörter wie * ologist und * ology erhält, um zur gleichen Wurzel zu lemmatizieren/Stamm zu sein?

Antwort

0

So ähnlich?

>>> s = 'cardiology' 
>>> s = s[:-5] if s.endswith('ology') else s 
>>> s = s[:-7] if s.endswith('ologist') else s 
>>> s 
'cardi' 
>>> s = 'cardiologist' 
>>> s = s[:-5] if s.endswith('ology') else s 
>>> s = s[:-7] if s.endswith('ologist') else s 
>>> s 
'cardi' 
+0

Komm schon, du weißt das ist nicht was ich meine. – Eli

+1

Es hängt wirklich davon ab, wie Ihre Daten aussehen, um die beste Lösung zu finden, die vorhandenen Lemmatizer/Stemmer zu "hacken". Eine repräsentative Stichprobe Ihrer Daten zu teilen würde helfen, die Antwort zu verbessern =) – alvas

1

Haben Sie sich Morphessor angesehen? Es verfügt über eine Reihe von Morph-Segmentierungsalgorithmen. Anscheinend ist die Art der Analyse, die Sie suchen, mit diesem Tool möglich. Hier ist der Link [1]: http://asr.aalto.fi/morfessordemo/

Verwandte Themen