当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《当使用nltk对单词进行标记时,防止在叛逆者处分裂》经验,为你挑选了1个好方法。

我正在使用将nltk句子分成单词.例如

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

标记化可以很好地分割单词边界[即从单词中分割标点符号],但有时会过度分割,单词末尾的修饰符会被视为单独的部分.例如,didn't被拆分为部分did,n'ti've被拆分为I've.显然,这是因为这些单词在nltk正在使用的原始语料库中被分成两部分,并且在某些情况下可能是期望的.

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

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



1> alecxe..:

这实际上按预期工作:

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

不同的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'!']

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

nltk标记化和收缩

扩展Python中的英语语言收缩

word_tokenizer将收缩(我们,我会)分成不同的词

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有