创建一列 NER 标签的属性错误
Attribute error creating a column of NER labels
我正在尝试在数据框中创建显示来自 spaCy 模型的实体和标签的列,到目前为止,通过输入以下代码我可以生成一列实体:
df['new_col'] = df['Combined'].apply(lambda x: list(ner_model(x).ents))
但是,如果我对标签尝试相同的方法:
#df['new_col1'] = df['Combined'].apply(lambda x: list(nlp(x).label_))
我收到“AttributeError:'spacy.tokens.doc.Doc' 对象没有属性 'label_'”
我怀疑我可能必须迭代单个标记,但我不确定该怎么做?
你需要做这样的事情
df['new_col1'] = df['Combined'].apply(lambda x: [ent.label_ for ent in nlp(x).ents])
nlp(x)
的输出是一个 Doc
对象,Doc
对象上没有 label
属性(如您收到的错误中明确指出的那样) .您需要 Doc
对象上实体的标签,这就是为什么您需要遍历 nlp(x).ents
并获取每个实体的 label_
。
我正在尝试在数据框中创建显示来自 spaCy 模型的实体和标签的列,到目前为止,通过输入以下代码我可以生成一列实体:
df['new_col'] = df['Combined'].apply(lambda x: list(ner_model(x).ents))
但是,如果我对标签尝试相同的方法:
#df['new_col1'] = df['Combined'].apply(lambda x: list(nlp(x).label_))
我收到“AttributeError:'spacy.tokens.doc.Doc' 对象没有属性 'label_'”
我怀疑我可能必须迭代单个标记,但我不确定该怎么做?
你需要做这样的事情
df['new_col1'] = df['Combined'].apply(lambda x: [ent.label_ for ent in nlp(x).ents])
nlp(x)
的输出是一个 Doc
对象,Doc
对象上没有 label
属性(如您收到的错误中明确指出的那样) .您需要 Doc
对象上实体的标签,这就是为什么您需要遍历 nlp(x).ents
并获取每个实体的 label_
。