如何定义特殊的"不可言说的" nltk.word_tokenize的单词

时间:2017-08-10 16:03:05

标签: nltk tokenize

我使用nltk.word_tokenize来标记包含编程语言,框架等的一些句子,这些句子会被错误地标记化。

例如:

>>> tokenize.word_tokenize("I work with C#.")
['I', 'work', 'with', 'C', '#', '.']

有没有办法输入"例外"像这样的标记器?我已经编制了一份我不想分割的所有内容(语言等)的列表。

1 个答案:

答案 0 :(得分:1)

Multi Word Expression Tokenizer应该是您所需要的。

您将例外列表添加为元组,并将已经标记化的句子传递给它:

tokenizer = nltk.tokenize.MWETokenizer()
tokenizer.add_mwe(('C', '#'))
tokenizer.add_mwe(('F', '#'))
tokenizer.tokenize(['I', 'work', 'with', 'C', '#', '.'])
['I', 'work', 'with', 'C_#', '.']
tokenizer.tokenize(['I', 'work', 'with', 'F', '#', '.'])
['I', 'work', 'with', 'F_#', '.']