我正在使用NLTK词干分析器去除词干的语法变化.但是,Port或Snowball词干分析器删除了名词或动词的原始形式的尾随"e",例如,Profile变为Profil.
我怎样才能防止这种情况发生?我知道我可以用条件来防范这个.但显然它会在不同情况下失败.
是否有我想要的选项或其他API?
小智 7
我同意菲利普的观点,即阻塞器的目标只是保留杆.对于这种特殊情况,你可以尝试使用词形变换器而不是词干变换器,它应该保留更多的单词,并且意味着删除完全不同形式的单词,如'profiles' - >'profile'.NLTK中有一个类 - 从nltk.stem尝试WordNetLemmatizer().
要注意它仍然不完美(在处理文本时没什么),因为我曾经从'物理'中获得'物理'.
尝试:
>>> from nltk.stem import WordNetLemmatizer, PorterStemmer
>>> porter = PorterStemmer()
>>> wnl = WordNetLemmatizer()
>>> word = 'profile'
>>> porter.stem(word)
'profil'
>>> wnl.lemmatize(word)
'profile'
>>> wnl.lemmatize(word) if wnl.lemmatize(word).endswith('e') else porter.stem(word)
'profile'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |