python - 如何避免用下划线标记单词?
问题描述
我正在尝试使用“ 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
在每个单词上使用来处理标点符号
[word for sublist in [word_tokenize(x) if '_' not in x else [x]
for x in text.lower().split()] for word in sublist]
输出
['a,_b_c!', 'is', 'a', 'movie', '!']
l = [word_tokenize(x) if '_' not in x else [x] for x in text.lower().split()]
word_tokenize
将返回仅在没有的单词上运行的列表列表_
。
[word for sublist in l for word in sublist]
部分是将列表列表展平为单个列表。
推荐阅读
- java - 循环外临时数组的空间复杂度
- r - 为什么在手动计算和使用 stat_summary 时这两个平均值不匹配?
- f# - 有没有更好的方法在 F#/OCaml 中编写交换函数?
- flutter - 如何在颤动的两个按钮之间留出空间?
- python-3.x - 网页抓取时遍历金融时报页面
- html - 打印html消息几秒钟
- css - 将 sass 变量应用于父级的所有元素
- javascript - 如何确保列表项的文本只有一行?
- installation - 如何让 Inno Setup 安装程序在安装完成后或 VSTO 安装程序完成后保留临时文件?
- android - 无法读取或创建安装属性 file.ndroid Emulator sdk-pa