用n标记单词时防止在撇号处分裂

2024-06-08 02:48:10 发布

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

我用nltk把句子分成单词。e、 g

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

标记化在拆分单词边界(即从单词中拆分标点符号)时效果很好,但有时会过度拆分,单词末尾的修饰符会被视为单独的部分。例如,didn't被分成didn't两部分,i've被分成I've。显然,这是因为这些词在nltk使用的原始语料库中被分成两部分,并且在某些情况下可能是可取的。

有没有什么方法可以克服这种行为?可能与nltk'sMWETokenizer如何将多个单词聚合到短语类似,但在本例中,仅将单词组件聚合到单词。

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


Tags: the标记vecode单词句子wordwork
1条回答
网友
1楼 · 发布于 2024-06-08 02:48:10

这实际上是working as expected

That is the correct/expected output. For word tokenization contractions are considered two words because meaning-wise they are.

不同的nltk标记器处理英语的压缩不同。例如,我发现^{}不会将收缩分成两部分:

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

请查看更多信息和解决方法,网址为:

相关问题 更多 >

    热门问题