我试图使用NER为tweets dataset构建一个tweets dataset模型,并最终得到这个错误。请帮帮忙
这就是我所做的
from transformers import AutoTokenizer, AutoModelForTokenClassification
from transformers import pipeline
tokenizer = AutoTokenizer.from_pretrained("dslim/bert-base-NER")
model = AutoModelForTokenClassification.from_pretrained("dslim/bert-base-NER")
nlp = pipeline("ner", model=model, tokenizer=tokenizer)
# ---------
def all_ents(v):
return [(ent.text, ent.label_) for ent in nlp(v).ents]
df1['Entities'] = df['text'].apply(lambda v: all_ents(v))
df1.head()AttributeError: 'list' object has no attribute 'ents'谢谢你的帮助
发布于 2022-10-25 15:41:01
似乎你混合了不同模块的代码。
.ents存在于模块spacy中,而不存在于transformers中。
#import spacy
import en_core_web_sm
nlp = en_core_web_sm.load()
doc = nlp('Hello World of Python. Have a nice day')
print([(x.text, x.label_) for x in doc.ents])在transformers中,您应该直接使用nlp(v),但是它给出了带有ent["entity"], ent["score"], ent["index"], ent["word"], ent["start"], ent["end"]的目录
from transformers import AutoTokenizer, AutoModelForTokenClassification
from transformers import pipeline
tokenizer = AutoTokenizer.from_pretrained("dslim/bert-base-NER")
model = AutoModelForTokenClassification.from_pretrained("dslim/bert-base-NER")
nlp = pipeline("ner", model=model, tokenizer=tokenizer)
# ---------
import pandas as pd
df = pd.DataFrame({
'text': ['Hello World of Python. Have a nice day']
})
# ---------
def all_ents(v):
#print(nlp(v))
return [(ent['word'], ent['entity']) for ent in nlp(v)]
df['Entities'] = df['text'].apply(all_ents)
#df1['Entities'] = df['text'].apply(lambda v: [(ent['word'], ent['entity']) for ent in nlp(v)])
print(df['Entities'].head())https://stackoverflow.com/questions/74192948
复制相似问题