我使用nltk.word_tokenize
来标记包含编程语言,框架等的一些句子,这些句子会被错误地标记化。
例如:
>>> tokenize.word_tokenize("I work with C#.")
['I', 'work', 'with', 'C', '#', '.']
有没有办法输入"例外"像这样的标记器?我已经编制了一份我不想分割的所有内容(语言等)的列表。
答案 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_#', '.']