赞
踩
实体抽取(Entity Extraction)是自然语言处理(NLP)领域中一项重要的技术,它的目的是从非结构化的文本数据中识别并提取出有意义的实体。
实体是指文本中表示某种具体事物的词语或短语,通常包括以下几类:
人名:如"马云"、“比尔·盖茨”
地名:如"北京"、“纽约”
组织机构:如"阿里巴巴"、“联合国”
日期:如"2024年6月18日"
时间:如"下午三点"
货币:如"100美元"
数量:如"5000平方米"
产品:如"iPhone 14"
品牌:如"可口可乐"
spaCy 进行实体抽取,并对抽取结果进行后处理和可视化:
import spacy
from spacy import displacy
# 加载英语预训练模型
nlp = spacy.load("en_core_web_sm")
# 待分析的文本
text = """
Apple is planning to launch the iPhone 14 in September 2023. The new device will be available in stores across the United States, Europe and Asia.
Tim Cook, the CEO of Apple, is expected to announce the release date and pricing details at the company's annual event in Cupertino, California.
The iPhone 14 is rumored to feature a better camera, longer battery life and 5G connectivity.
"""
# 处理文本并抽取实体
doc = nlp(text)
# 打印所有识别的实体
for entity in doc.ents:
print(entity.text, entity.label_)
# 可视化实体
displacy.render(doc, style="ent")
让我们来分析一下这个代码:
首先我们加载了 spaCy 的英语预训练模型 en_core_web_sm。这个模型已经过训练,可以识别多种类型的实体。
然后我们定义了一段待分析的文本,其中包含了与 Apple 公司和 iPhone 14 相关的信息。
使用 nlp() 函数处理文本,得到一个 doc 对象,其中包含了文本的语言学分析结果。
遍历 doc.ents 属性,可以打印出所有识别的实体及其类型标签。常见的实体类型包括 PERSON、ORG、LOC、DATE 等。
最后,我们使用 displacy.render() 函数可视化文本中识别的实体。这将在 Jupyter Notebook 或 HTML 页面上渲染一个交互式的可视化图。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。