【发布时间】:2019-07-05 04:14:21
【问题描述】:
我正在尝试使用“nltk.word_tokenize()”函数标记我的文本,但它会拆分由“_”连接的单词。
例如,文本“A,_B_C! is a movie!”将被拆分为:
['a', ',', '_b_c', '!', 'is','a','movie','!']
我想要的结果是:
['a,_b_c!', 'is', 'a', 'movie', '!']
我的代码:
import nltk
text = "A,_B_C! is a movie!"
nltk.tokenize(text.lower())
任何帮助将不胜感激!
【问题讨论】:
-
问题在于您使用的是
word_tokenize,并且用逗号分隔单词。我从未使用过nltk,但在使用rply 之前我已经编写了一个词法分析器。在这里可能会有所帮助。 -
text.split() 会给你结果
-
@Asif 但拆分会给“电影!”作为一个整体
-
您可以使用正则表达式来识别 ex -
",_"的模式并将,替换为_,_并应用标记器。标记化完成后,您将_,_替换为,_ -
我认为你需要编写一个自定义正则表达式来处理这个问题,因为你处理空格、逗号、下划线和标点符号的方式超出了我能想到的任何标准解析的范围的。有 nltk.tokenize.regexp 可以做到这一点:nltk.org/api/nltk.tokenize.html?highlight=nltk.tokenize.regexp