NLTK词干处理不通过简单的cas

2024-10-06 11:55:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我是NLTK的新手,我正在使用词干分析器函数来进行词干分析。在

我有一个简单的示例语句要处理,那就是:“打开lightin”。我想看看NLTK词干器是否可以帮助我过滤掉输入错误“lightin”。我用“lighting”测试了词干分析器,snowBall词干分析器可以为我返回正确的单词“light”,但是在我的测试中,snowBall词干分析器返回“lightin”。在

我的词干提取过程非常简单:

tokens = "Turn on the lightin"
for token in tokens:
    print("SnowBall Lemmatizer: "+snowBallStemmer.stem(token))

根据NTLK的博士,滚雪球茎杆可以用来阻止英语。我想知道为什么滚雪球扫描器不能阻止“lightin”,我能做些什么来解决这个问题。在


Tags: 函数token分析器示例错误语句单词lighting
1条回答
网友
1楼 · 发布于 2024-10-06 11:55:10

尝试在词干提取之前运行拼写检查器(例如pyenchant):

>>> import enchant
>>> from nltk.stem import SnowballStemmer

>>> d = enchant.Dict("en_US")
>>> d.suggest('lightin')
['lighting', 'lighten', 'light in', 'light-in', 'lightning', 'lightering', 'sighting', 'light', 'flitting', 'Litton']

>>> snowball = SnowballStemmer('english')
>>> snowball.stem(d.suggest('lightin')[0])
u'light'

>>> sent = "Turn on the lightin".split()
>>> [snowball.stem(word if d.check(word) else d.suggest(word)[0]) for word in sent]
[u'turn', 'on', u'the', u'light']

相关问题 更多 >