13

快速抽取常见NER trick~

 2 years ago
source link: https://mp.weixin.qq.com/s?__biz=MjM5ODkzMzMwMQ%3D%3D&%3Bmid=2650429933&%3Bidx=5&%3Bsn=42451b5f2e019ff3ff21d4181d08e745
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

快速抽取常见NER trick~

AINLP 2022-04-12 10:10

The following article is from 算法让生活更美好 Author BPSK

640?wx_fmt=jpeg
640?wx_fmt=gif

日常工作中,我们有时候需要识别出一些常见的实体用以后续过滤等目的,如时间地点公司等常见实体,本文介绍两种供大家快速实现。640?wx_fmt=gif

所谓离线,就是安装python的一些包,这些包很多这里,就介绍一个常用的吧pyltp,这是哈工大一个nlp分析包,具有类似jieba的分句、分词、词性标注、实体识别、情感等等:https://github.com/HIT-SCIR/ltp首先pip 安装一下,如果不能安装,笔者也准备好了whl,可以直接下载https://download.csdn.net/download/weixin_42001089/11192863下载完后,还需要下载一些其训练好的model:http://ltp.ai/download.html选择3.4.0即可
640?wx_fmt=png
一些demo:
LTP_DATA_DIR = r"D:\jupyter_notebook_home\sort\ltp_data_v3.4.0"cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model')  # 分词模型路径,模型名称为`cws.model`pos_model_path = os.path.join(LTP_DATA_DIR, 'pos.model')  # 词性标注模型路径,模型名称为`pos.model`ner_model_path = os.path.join(LTP_DATA_DIR, 'ner.model')  # 命名实体识别模型路径,模型名称为`pos.model`segmentor = Segmentor()  # 初始化实例segmentor.load(cws_model_path)  # 加载模型postagger = Postagger()  # 初始化实例postagger.load(pos_model_path)  # 加载模型recognizer = NamedEntityRecognizer()  # 初始化实例recognizer.load(ner_model_path)  # 加载模型words = segmentor.segment(text)  # 分词postags = postagger.postag(words)  # 词性标注netags = recognizer.recognize(words, postags)  # 命名实体识别
640?wx_fmt=gif

这里有一个在线的实体抽取网站如下:https://nlp-base.external.ai-indeed.com
640?wx_fmt=png
我们现在通过python的requests提交得到结果,即提交文本到如下网址,拿到返回结果即可:https://nlp-base.external.ai-indeed.com/nlp/base/ner基本脚本demo:
import requestsimport jsontext = "最新疫情(www.zuowen.biz)为你提供全球世界各国最新疫情最新消息,包括世界疫情最新消息,中国疫情最新消息,全国疫情最新消息,国外疫情最新消息,全球疫情最新数据"response = requests.post('https://nlp-base.external.ai-indeed.com/nlp/base/ner', json={'text': text},verify = False)response = json.loads(response.text)for t, es in response['data'].items():    if t not in ['TIME', 'LOC', 'ORG', 'PER','PROD']:        continue    for e in es.keys():        print(e)


640?wx_fmt=gif

(1)能离线还是自己离线写好程序挖掘,在线的毕竟不稳定且不可控,尤其是开发一些大型项目,如果使用了在线,后期可能会出现一些问题。(2)本篇的NER不是纯做NER,更不是刷榜单等等,即本篇的目的不是设计一个什么复杂的NER模型,更多的是将其作为一个基本的辅助工作,方便我们快速开展或者验证一下其他工作。
0?wx_fmt=png
AINLP
一个有趣有AI的自然语言处理公众号:关注AI、NLP、机器学习、推荐系统、计算广告等相关技术。公众号可直接对话双语聊天机器人,尝试自动对联、作诗机、藏头诗生成器,调戏夸夸机器人、彩虹屁生成器,使用中英翻译,查询相似词,测试NLP相关工具包。
343篇原创内容
Official Account
进技术交流群请添加AINLP小助手微信(id: ainlper)
请备注具体方向+所用到的相关技术点
640?wx_fmt=jpeg

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。

640?wx_fmt=jpeg

阅读至此了,分享、点赞、在看三选一吧🙏


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK