'spacy.tokens.doc.Doc' 对象没有属性 'pos_'
'spacy.tokens.doc.Doc' object has no attribute 'pos_'
我正在研究词性标注。我是 Spacy 的新手。
我收到这样的错误。
AttributeError: 'spacy.tokens.doc.Doc' object has no attribute 'pos_'
我已经检查过数据类型是字符串,所以代码应该可以工作。
我哪里弄错了?
完整代码就在上面。
import pandas as pd
df = pd.read_excel('combined_file.xlsx', engine='openpyxl', index_col=None)
import spacy
df['body_string'] = df.body.astype('string')
sp = spacy.load('en_core_web_sm')
doc = df["body_string"].apply(sp)
for word in doc:
print(word.text, word.pos_, word.dep_)
excel 文件的 link 在这里:https://www.dropbox.com/scl/fi/43nu0yf45obbyzprzc86n/combined_file.xlsx?dl=0&rlkey=7j959kz0urjxflf6r536brppt
您需要调用每个模型而不是模型系列,例如
import pandas as pd
import spacy
nlp = spacy.load('en_core_web_sm')
df = pd.read_excel(r"<location of xlsx>")
docs = df['body'].apply(nlp)
for token in docs[0]:
print(token.text, token.pos_, token.dep_)
来自 doc/model 0 的输出:
I PRON nsubj
love VERB ROOT
ememis ADV advmod
but CCONJ cc
... PUNCT punct
this DET nsubj
is AUX ROOT
probably ADV advmod
the DET det
worst ADJ amod
and CCONJ cc
most ADV advmod
useless ADJ conj
eye NOUN compound
serum NOUN attr
i PRON nsubj
ve AUX aux
ever ADV advmod
used VERB relcl
. PUNCT punct
Ever ADV advmod
a DET det
cheap ADJ amod
£ SYM quantmod
5 NUM compound
one NUM nsubj
from ADP prep
boots NOUN pobj
is AUX ROOT
better ADJ acomp
如果你想打印出其他的doc.model(比如第二个):
for token in docs[1]:
print(token.text, token.pos_, token.dep_)
基本上 docs 是一个包含 spacy 应用模型的系列。例如。如果您想打印出所有令牌等,您可以这样做(我不建议您这样做):
for doc in docs:
for token in doc:
print(token.text, token.pos_, token.dep_)
我正在研究词性标注。我是 Spacy 的新手。 我收到这样的错误。
AttributeError: 'spacy.tokens.doc.Doc' object has no attribute 'pos_'
我已经检查过数据类型是字符串,所以代码应该可以工作。 我哪里弄错了?
完整代码就在上面。
import pandas as pd
df = pd.read_excel('combined_file.xlsx', engine='openpyxl', index_col=None)
import spacy
df['body_string'] = df.body.astype('string')
sp = spacy.load('en_core_web_sm')
doc = df["body_string"].apply(sp)
for word in doc:
print(word.text, word.pos_, word.dep_)
excel 文件的 link 在这里:https://www.dropbox.com/scl/fi/43nu0yf45obbyzprzc86n/combined_file.xlsx?dl=0&rlkey=7j959kz0urjxflf6r536brppt
您需要调用每个模型而不是模型系列,例如
import pandas as pd
import spacy
nlp = spacy.load('en_core_web_sm')
df = pd.read_excel(r"<location of xlsx>")
docs = df['body'].apply(nlp)
for token in docs[0]:
print(token.text, token.pos_, token.dep_)
来自 doc/model 0 的输出:
I PRON nsubj
love VERB ROOT
ememis ADV advmod
but CCONJ cc
... PUNCT punct
this DET nsubj
is AUX ROOT
probably ADV advmod
the DET det
worst ADJ amod
and CCONJ cc
most ADV advmod
useless ADJ conj
eye NOUN compound
serum NOUN attr
i PRON nsubj
ve AUX aux
ever ADV advmod
used VERB relcl
. PUNCT punct
Ever ADV advmod
a DET det
cheap ADJ amod
£ SYM quantmod
5 NUM compound
one NUM nsubj
from ADP prep
boots NOUN pobj
is AUX ROOT
better ADJ acomp
如果你想打印出其他的doc.model(比如第二个):
for token in docs[1]:
print(token.text, token.pos_, token.dep_)
基本上 docs 是一个包含 spacy 应用模型的系列。例如。如果您想打印出所有令牌等,您可以这样做(我不建议您这样做):
for doc in docs:
for token in doc:
print(token.text, token.pos_, token.dep_)