使用 spacy 从数据框中提取实体

Aja*_*jax 2 python pandas spacy

在此处输入图片说明我使用 Pandas 从 excel 文件中读取内容::

import pandas as pd
df = pd.read_excel("FAM_template_Update 1911274_JS.xlsx" )
df
Run Code Online (Sandbox Code Playgroud)

在尝试使用 spacy:: 提取实体时

import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp(df)
for enitity in doc.ents:
     print((entity.text))
Run Code Online (Sandbox Code Playgroud)

得到错误::类型错误:参数“字符串”的类型不正确(预期的str,得到数据帧)

        On line(3)-----> doc = nlp(df)
Run Code Online (Sandbox Code Playgroud)

Iva*_*sky 5

这是预期的,因为Spacy没有准备好按原样处理数据帧。在能够打印实体之前,您需要做一些工作。首先确定包含要使用的文本的列nlp。之后,将其值提取为列表,现在您可以开始了。假设包含文本的列名称名为Text

for i in df['Question'].tolist():
    doc = nlp(i)
    for entity in doc.ents:
         print((entity.text))
Run Code Online (Sandbox Code Playgroud)

这将遍历数据框中的每个文本(行)并打印实体。