python - spacy 如何获得带有一些空格异常的单词列表?
问题描述
我正在尝试获取包含单词的列表,但对于某些单词,我希望它们成为单个实体而不是两个单独的实体。
例如,
如果我的文字像
text = '橄榄油是常见的成分之一,甜椒也很常见'
//期望的输出是
['橄榄油','是','一个','的','那个','普通','配料','and','甜椒','是','也''相当', '常见的']
我曾研究过 PhraseMatcher,但phraseMatcher 检测到某个短语作为匹配项,但并没有给我上面想要的最终结果。
如果我可以设置一个类似 [{'POS': 'NOUN'}, {'lower':'oil}] 的逻辑,它可以让我得到任何以 'oil' 结尾的两个组合作为单个元素,例如 ' xxx 油”、“yyy 油”、“abc 油”。
谁能帮我用样品解决这个问题?
谢谢
解决方案
在这里,假设你有一个应该是名词结尾一部分的所有单词的字典,你可以使用它。我假设较低的意思是单词的结尾。您可以对单词的起始键使用类似的实现。
text = 'olive oil is one of the common ingredients and bell pepper is also quite common'
word_index = {
'oil': 'lower',
'pepper': 'lower'
}
def change_text(some_text):
process = some_text.split()
i = 0
while i<len(process):
if process[i] in word_index:
if word_index[process[i]] == 'lower':
process[i-1:i+1] = [f'{process[i-1]} {process[i]}']
i+=1
return process
推荐阅读
- sql - 以正确的持续时间转换 Julien 日期和时间戳
- android - Android多个水平回收器-视图一起滚动
- bash - 如何将剪切命令结果保存在文件中
- javascript - 使用 Formik 反应本机表单不触发句柄提交
- c++ - 传递成员函数时替代 std::bind
- java - 如何在不获取 ConcurrentModificationException 的情况下从 HashMap 中删除元素
- spring-boot - SpringBoot 与 HikariCP 的关系
- javascript - 如何防止嵌套在另一个也使用 onclick 的元素上的链接上的单击事件?
- java - 如何高效地进行 Kafka-Spark-MongoDb 集成
- java - 在 JFileChooser 保存对话框中强制“.png”