Spacy,名词短语:如何使用 spacy 在文档中找到每个 noun_chunk 的名词短语跨度开始和结束标记
Spacy, noun phrases: How to locate noun phrase span start and end token of every noun_chunk in doc with spacy
我正在使用 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在名词块范围内的索引,但是我想得到[=38=的第一个词和最后一个词的token.i个数]
示例中的两个名词块是:
"the red car"
和
"the white car"
所需的输出将是:
代币:
1
蓝色 2
汽车 3
是 4
更好 5
比 6
7
白色 8
汽车 9
名词块 1:"the blue car";开始 1,结束 3
名词块 2:"the white car";开始 7,结束 9
有了名词块的开头和结尾,我将能够在文档中识别名词块的跨度
谢谢
我不知道块的开始和结束方法
chunk.start 给你块跨度的起始标记号
chunk.end 给你块跨度的结束标记号
我正在使用 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在名词块范围内的索引,但是我想得到[=38=的第一个词和最后一个词的token.i个数]
示例中的两个名词块是: "the red car" 和 "the white car"
所需的输出将是:
代币: 1 蓝色 2 汽车 3 是 4 更好 5 比 6 7 白色 8 汽车 9
名词块 1:"the blue car";开始 1,结束 3
名词块 2:"the white car";开始 7,结束 9
有了名词块的开头和结尾,我将能够在文档中识别名词块的跨度
谢谢
我不知道块的开始和结束方法
chunk.start 给你块跨度的起始标记号 chunk.end 给你块跨度的结束标记号