How to get the span of a conjunct in spacy?(如何获得连词在空格中的跨度?)
本文介绍了如何获得连词在空格中的跨度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用spacy,token.conjuncts
来获取每个标记的合取词。
但是,token.conjuncts
的返回类型是tuple
,但我想获取span
类型,例如:
import spacy
nlp = spacy.load("en_core_web_lg")
sentence = "I like to eat food at the lunch time, or even at the time between a lunch and a dinner"
doc = nlp(sentence)
for token in doc:
conj = token.conjuncts
print(conj)
#output: <class 'tuple'>
有人知道如何将此tuple
转换为span
类型吗?
或者我如何才能直接获取span
类型的合取?
我需要span
类型的原因是,我想使用conjuncts (span)
来定位这个连词的位置,例如,这个连词属于哪个名词块或拆分(无论我用什么方法来拆分它们)。
目前,我将tuple
转换为str
以迭代所有拆分或名词块,以搜索拆分/名词块是否包含conjunct
。
conjunct
出现在多个拆分/名词块中时,则定位包含该conjunct
的准确拆分将会出现问题。因为我只考虑str
,而不考虑index
或id
的conjunct
。如果我可以得到这个conjunct
的span
,那么我就可以定位conjunct
的确切位置。
请随时发表意见,提前谢谢!
推荐答案
token.conjuncts
返回令牌的元组。若要获取范围,请调用doc[conj.i: conj.i+1]
import spacy
nlp = spacy.load('en_core_web_sm')
sentence = "I like oranges and apples and lemons."
doc = nlp(sentence)
for token in doc:
if token.conjuncts:
conjuncts = token.conjuncts # tuple of conjuncts
print("Conjuncts for ", token.text)
for conj in conjuncts:
# conj is type of Token
span = doc[conj.i: conj.i+1] # Here's span
print(span.text, type(span))
这篇关于如何获得连词在空格中的跨度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何获得连词在空格中的跨度?
基础教程推荐
猜你喜欢
- 如何在Python中绘制多元函数? 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01