当使用nltk对单词进行标记时,防止在叛逆者处分裂

时间:2016-01-11 04:23:55

标签: python nltk

我使用nltk将句子分成单词。例如

 nltk.word_tokenize("The code didn't work!")
 -> ['The', 'code', 'did', "n't", 'work', '!']

令牌化在分割字边界方面效果很好[即从单词中分割标点符号,但有时会过度分割,单词末尾的修饰符会被视为单独的部分。例如,didn't分为didn'ti've分为I've。显然这是因为这些单词在nltk正在使用的原始语料库中被分成两部分,并且在某些情况下可能是合乎需要的。

有没有内置的方法来克服这种行为?可能与nltk's MWETokenizer能够将多个单词聚合为短语的方式类似,但在这种情况下,只是将单词组件聚合为单词。

或者,是否有另一个不会分割单词部分的标记化器?

1 个答案:

答案 0 :(得分:20)

这实际上是working as expected

  

这是正确/预期的输出。对于单词标记化,收缩被认为是两个单词,因为它们是有意义的。

不同的nltk标记符可以不同方式处理英语收缩。例如,我发现TweetTokenizer没有将收缩分为两部分:

>>> from nltk.tokenize import TweetTokenizer
>>> tknzr = TweetTokenizer()
>>> tknzr.tokenize("The code didn't work!")
[u'The', u'code', u"didn't", u'work', u'!']

请在以下网址查看更多信息和解决方法: