修改 python nltk.word_tokenize 排除“#”作为分隔符

Poo*_*ane 2 python tokenize nltk

我正在使用 Python 的 NLTK 库来标记我的句子。

如果我的代码是

text = "C# billion dollars; we don't own an ounce C++"
print nltk.word_tokenize(text)
Run Code Online (Sandbox Code Playgroud)

我把这个作为我的输出

['C', '#', 'billion', 'dollars', ';', 'we', 'do', "n't", 'own', 'an', 'ounce', 'C++']
Run Code Online (Sandbox Code Playgroud)

符号;.#被认为是分隔符。有没有办法#从分隔符集中删除,比如如何+不是分隔符,因此C++显示为单个标记?

我希望我的输出是

['C#', 'billion', 'dollars', ';', 'we', 'do', "n't", 'own', 'an', 'ounce', 'C++']
Run Code Online (Sandbox Code Playgroud)

我想C#被视为一种象征。

ays*_*ysa 6

在处理多词标记化时,另一种方法是使用 NLTK多词表达式标记器重新标记提取的标记

mwtokenizer = nltk.MWETokenizer(separator='')
mwtokenizer.add_mwe(('c', '#'))
mwtokenizer.tokenize(tokens)
Run Code Online (Sandbox Code Playgroud)