目录
前言
日常工作中,我们有时候需要识别出一些常见的实体用以后续过滤等目的,如时间地点公司等常见实体,本文介绍两种。
pyltp
这是哈工大一个nlp分析包,具有类似jieba的分句、分词、词性标注、实体识别、情感等等
github:GitHub - HIT-SCIR/ltp: Language Technology Platform
首先pip 安装一下,如果不能安装,笔者也准备好了whl,可以直接下载
pyltpwheel安装包(含py35,py36).zip_pyltpwheel,pyltp下载-其它代码类资源-CSDN下载
下载完后,还需要下载一些其训练好的model:
语言技术平台( Language Technology Plantform | LTP )
选择3.4.0即可
一些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) # 命名实体识别
一个网站
我们现在通过python的requests提交得到结果,即提交文本到如下网址,拿到返回结果即可:
https://nlp-base.external.ai-indeed.com/nlp/base/ner
demo:
import requests
import json
text = "最新疫情(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)