如何防止NLTK拆分特定单词?

时间:2019-01-31 16:30:58

标签: nltk

我有一个stackoverflow标签列表:[javascript,node.js,c ++,amazon-s3,....]。

我想标记一个stackoverflow问题:“我更喜欢什么?javascript,node.js,c ++或amazon-S3?这是虚拟的。”

并且我希望nltk将'node.js'标记为单个标记:“ node.js”,而不是'node'和'js'。

如何告诉nltk不要在我的标签列表中拆分单词?

我已经阅读了this个可能的重复词,问题似乎相同,但是基于Multi Word Expression Tokenizer的答案不能满足我的需求。

实际上,如果我使用此解决方案,我认为我必须手动重建所有标签,例如:

tokenizer = nltk.tokenize.MWETokenizer()
tokenizer.add_mwe('Python', '-', '3', '.', 'x)

我需要将所有现有标签保持为“不可令牌化”

1 个答案:

答案 0 :(得分:1)

我不知道您要保留的完整标记的全部范围,但是NLTK的基本word_tokenize()函数似乎会将这些特定项保留为标记,而未定义任何标记列表。

import nltk
sentence = "what do I prefer ? javascript, node.js, c++ or amazon-S3 ? This is dummy."
tokens = nltk.word_tokenize(sentence)
print(tokens)

输出:

['what', 'do', 'I', 'prefer', '?', 'javascript', ',', 'node.js', ',', 'c++', 'or', 'amazon-S3', '?', 'This', 'is', 'dummy', '.']