如何使用 spaCy 打印句子的特定神经网络?
how to print specific NNs of a sentence with spaCy?
您好,我需要 spaCy 方面的帮助,我想做的是从我作为输入给出的句子中提取特定的 NN。
通过查看这里的小代码,假设我想使用句子 "the cat is better than a dog and a wolf"。
我只想提取第一个和第三个 NN,并将它们分别分配给一个随机变量。我怎样才能做到这一点?现在的代码只是打印句子中的每个 NN。谢谢你。
import spacy
frase1 = input('> \n\n')
nlp = spacy.load('en')
for t in nlp(frase1):
if t.tag_ in ['NN']:
print(t.text)
如果你想通过 NN 在句子中的位置(在你的例子中,第一和第三),你可以这样做:
import spacy
import operator
nlp = spacy.load("en")
doc = nlp("The cat is better than a dog and a wolf.")
nns = [i.text for i in doc if i.tag_ == "NN"]
first, third = list(operator.itemgetter(0, 2)(nns))
如果你只是想要NN的总数,你可以这样做:
len(nns)
您好,我需要 spaCy 方面的帮助,我想做的是从我作为输入给出的句子中提取特定的 NN。 通过查看这里的小代码,假设我想使用句子 "the cat is better than a dog and a wolf"。 我只想提取第一个和第三个 NN,并将它们分别分配给一个随机变量。我怎样才能做到这一点?现在的代码只是打印句子中的每个 NN。谢谢你。
import spacy
frase1 = input('> \n\n')
nlp = spacy.load('en')
for t in nlp(frase1):
if t.tag_ in ['NN']:
print(t.text)
如果你想通过 NN 在句子中的位置(在你的例子中,第一和第三),你可以这样做:
import spacy
import operator
nlp = spacy.load("en")
doc = nlp("The cat is better than a dog and a wolf.")
nns = [i.text for i in doc if i.tag_ == "NN"]
first, third = list(operator.itemgetter(0, 2)(nns))
如果你只是想要NN的总数,你可以这样做:
len(nns)