簡體   English   中英

'spacy.tokens.doc.Doc' object 沒有屬性 '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 文件的鏈接在這里: https://www.dropbox.com/scl/fi/43nu0yf45obbyzprzc86n/combined_file.xlsx?dl=0&rlkeyf=76j95brpp

您需要調用每個 model 而不是系列型號,例如

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_)

Output 來自文檔/型號 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_)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM