写在前面
大学生们要写毕业设计(论文)了,有朋友理论部分已经写完了却不会编码。那么针对NLP(自然语言处理)的一个常见任务实体识别应该如何编码呢?今天我们以 Python 语言为例,使用Spacy自然语言处理库来完成一个实体识别的demo。
你需要具备的知识
-
可以写简单的 python 代码; -
知道依赖包的运用;
环境依赖
-
spacy==3.1.6
-
en_core_web_sm==3.1.0
python 3.8+
我们的代码要做什么?
这一步我会描述代码会做什么,同时给出软件代码。
因为这是一个简单的示例,实现基本的实体识别。我们不会进行任何专业的配置,旨在让大家熟悉整个流程。后续,可以自行扩展学习。
文件名称:client.py
代码如下:
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@File : client.py
@License : (C)Copyright 202-2021
-------------------------------------
@Modify Time: 2023/9/21 08:43
@Author :
@Version : 1.0
@Description :
"""
import spacy
# 加载语言模型
nlp = spacy.load("en_core_web_sm")
sample_text = "Over 200 youth from Kisumu County in Kenya, have today gotten a chance to take part in a Golf programme by Safaricom held at Lolwe Grounds."
# 将待处理文本放入管道处理
doc = nlp(sample_text)
# 遍历并输出所有的命名实体及对应的标签
for ent in doc.ents:
print(ent, ent.label_)
测试程序代码
这一步我们会在 pycharm 中运行代码程序,确保其行为符合预期。
效果图
点击绿色运行按钮,启动程序
其中
实体标记 | 中文名称 |
---|---|
CARDINAL | 数字实体 |
GPE | 国家/地区 |
ORG | 组织 |
FAC | 建筑设施 |
可见共识别出了6个命名实体
Over 200 CARDINAL
Kisumu County GPE
Kenya GPE
today DATE
Safaricom ORG
Lolwe Grounds FAC
问题
-
运行失败
请检查你的python版本和依赖版本是否正确。 -
如何安装模型 en_core_web_sm
spacy包安装成功以后,直接在终端(Terminal而不是Python Console)运行以下命令
python -m spacy download en_core_web_sm
如果因为网络等问题无法完成安装,也可手动下载安装 模型下载地址:https://github.com/explosion/spacy-models/releases/tag/en_core_web_sm-3.1.0
你会得到文件:en_core_web_sm-3.1.0-py3-none-any.whl
模型文件所在目录启动终端(terminal),运行以下命令安装
pip install en_core_web_sm-3.1.0-py3-none-any.whl
未提示错误则表示安装已成功
结尾
我们从零开始完成了一个命名实体识别的代码程序。但是这还远远不够,可能你现在会想中文可以吗?我可以自定义实体类型吗?我可以添加实体词典吗?未来,我们可以就这些问题进行深入学习。我也可以提前告诉你,这些都可以实现。
原文始发于微信公众号(harvey的网络日志):python如何从零实现命名实体识别(NER)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/188277.html