我正在使用spacy来获取文本的名词短语。我要做的是相对于单词的标记索引在文本中定位那些名词短语。
例如
import spacy
# Load English
nlp = spacy.load("en_core_web_sm")
doc = nlp("The blue car is nicer than the white car"
noun_chunks = list(doc.noun_chunks)
for i,noun_chunk in enumerate(noun_chunks):
for j,token in enumerate(noun_chunk):
print(i,noun_chunk,j,token.text)
值j是名词块范围内token.text的索引,但我想获取token.i名词和名词的第一个和最后一个单词的编号
在示例中,两个名词块是:“红色的车”和“白色汽车”
所需的输出将是:
令牌:1蓝色2汽车3是4好5大于67白色8汽车9
名词块1:“蓝色汽车”;开始1,结束3
名词块2:“白色汽车”;开始7,结束9
使用名词块的开始和结尾,我将能够识别文档中名词块的跨度
谢谢
我不知道块的开始和结束方法
chunk.start为您提供了块跨度的起始令牌号chunk.end为您提供了块跨度的结束令牌号