如何使用 SpaCy 从 Pandas DataFrame 中提取命名实体
How to extract Named Entities from Pandas DataFrame using SpaCy
我正在尝试使用 this 问题的第一个答案提取命名实体,代码如下
for i in df['Article'].to_list():
doc = nlp(i)
for entity in doc.ents:
print((entity.text))
但它不是打印实体。我试过 print(i)
和 print(doc)
两个变量都有值并且 df['Article']
包含新闻文本。有人可以帮助解释为什么第二个循环不提取实体吗?谢谢
编辑:
这是dataset文件,请运行下面的代码形成我已经完成的预处理。
df.iloc[:,0].dropna(inplace=True)
df = df[df.iloc[:,0].notna()]
从 df['Articles']
中删除特殊字符
df['Article'] = df['Article'].map(lambda x: re.sub(r'\W+', '', x))
使用 df['Article'].map(lambda x: re.sub(r'\W+', '', x))
,您可以从文章中删除所有空白字符。
你需要使用
df['Article'] = df['Article'].str.replace(r'(?:_|[^\w\s])+', '')
使用该正则表达式,您将只删除除空格之外的特殊字符。
我正在尝试使用 this 问题的第一个答案提取命名实体,代码如下
for i in df['Article'].to_list():
doc = nlp(i)
for entity in doc.ents:
print((entity.text))
但它不是打印实体。我试过 print(i)
和 print(doc)
两个变量都有值并且 df['Article']
包含新闻文本。有人可以帮助解释为什么第二个循环不提取实体吗?谢谢
编辑:
这是dataset文件,请运行下面的代码形成我已经完成的预处理。
df.iloc[:,0].dropna(inplace=True)
df = df[df.iloc[:,0].notna()]
从 df['Articles']
df['Article'] = df['Article'].map(lambda x: re.sub(r'\W+', '', x))
使用 df['Article'].map(lambda x: re.sub(r'\W+', '', x))
,您可以从文章中删除所有空白字符。
你需要使用
df['Article'] = df['Article'].str.replace(r'(?:_|[^\w\s])+', '')
使用该正则表达式,您将只删除除空格之外的特殊字符。