我输入的字符串如下所示。当我使用nltk.word_tokenize时,它给了我一个单词的分词' gotta'进入'得到'和'。我不希望发生这种情况,我想把它标记为单一标记“#ta; beta”'本身。我不确定为什么会这样。有什么帮助可以避免这种情况或建议为什么会这样发生?测试代码如下。
test = "Sorry times up I gotta split"
output = nltk.word_tokenize(test)
print output
In [22]: ['Sorry', 'times', 'up', 'I', 'got', 'ta', 'split']
在我正在进行的程序中,在预处理之后,我的单词到索引将它们作为单个单词。但是当对整个句子进行标记时,它会有所不同。因此,以后会面临错误。
答案 0 :(得分:1)
尝试预处理gotta
- > got-ta
:
>>> from nltk import word_tokenize
>>> sent = "Sorry times up I gotta split"
>>> word_tokenize(sent)
['Sorry', 'times', 'up', 'I', 'got', 'ta', 'split']
>>> sent = "Sorry times up I got-ta split"
>>> word_tokenize(sent)
['Sorry', 'times', 'up', 'I', 'got-ta', 'split']
此外,您可以使用其他标记器,例如toktok:
>>> from nltk.tokenize.toktok import ToktokTokenizer
>>> toktok = ToktokTokenizer()
>>> sent = "Sorry times up I gotta split"
>>> toktok.tokenize(sent)
[u'Sorry', u'times', u'up', u'I', u'gotta', u'split']
或摩西:
>>> from nltk.tokenize.moses import MosesTokenizer
>>> moses = MosesTokenizer()
>>> moses.tokenize(sent)
[u'Sorry', u'times', u'up', u'I', u'gotta', u'split']