为什么 token.pos_ 不工作而其他人 token.lemma_ 等在工作?
why is token.pos_ not working while others token.lemma_ etc are working?
我正在尝试从包含名词和动词的文本文件中分离句子。但是 token.pos_ 不工作,而 token.lemma_、token.shape_ 等工作。
希望在这方面得到一些帮助。下面是代码的一部分。提前谢谢你。
from spacy.lang.en import English
nlp = spacy.load('en_core_web_sm')
nlp = English()
sentencizer = nlp.create_pipe("sentencizer")
nlp.add_pipe(sentencizer)
doc = nlp(out_sent)
lis = []
new_lis = []
for d in doc.sents:
lis.append(d)
print(lis)
for sent in lis:
flag = 0
for token in sent:
# token.pos_ doesn't work. token.lemma_, token.shape_ etc works!
#print(token.pos_)
if(token.pos_ == 'NOUN' or token.pos_ == 'VERB'):
flag = 1
if(flag == 1):
new_lis.append(sent)
您应该从代码段中删除以下行:
nlp = English()
因为它覆盖了行
nlp = spacy.load('en_core_web_sm')
后者 en_core_web_sm
有一个预训练的词性标注器,但 English()
只是一个没有内置词性标注器的 "blank" 模型。模型 en_core_web_sm
也可以使用依赖解析来拆分句子,所以不需要添加 sentencizer
到它。
我正在尝试从包含名词和动词的文本文件中分离句子。但是 token.pos_ 不工作,而 token.lemma_、token.shape_ 等工作。 希望在这方面得到一些帮助。下面是代码的一部分。提前谢谢你。
from spacy.lang.en import English
nlp = spacy.load('en_core_web_sm')
nlp = English()
sentencizer = nlp.create_pipe("sentencizer")
nlp.add_pipe(sentencizer)
doc = nlp(out_sent)
lis = []
new_lis = []
for d in doc.sents:
lis.append(d)
print(lis)
for sent in lis:
flag = 0
for token in sent:
# token.pos_ doesn't work. token.lemma_, token.shape_ etc works!
#print(token.pos_)
if(token.pos_ == 'NOUN' or token.pos_ == 'VERB'):
flag = 1
if(flag == 1):
new_lis.append(sent)
您应该从代码段中删除以下行:
nlp = English()
因为它覆盖了行
nlp = spacy.load('en_core_web_sm')
后者 en_core_web_sm
有一个预训练的词性标注器,但 English()
只是一个没有内置词性标注器的 "blank" 模型。模型 en_core_web_sm
也可以使用依赖解析来拆分句子,所以不需要添加 sentencizer
到它。