python调用自然语言处理在线平台(以实现命名实体识别为例

自然语言处理在线平台

python调用自然语言处理在线平台(以实现命名实体识别为例_第1张图片

python调用自然语言处理平台,实现命名实体识别(为例)

- bosonnlp API使用文档
1.注册,https://bosonnlp.com/account/register
2.注册完成后,会生成你的API Token (密钥),用于身份验证,记住该密钥
3.使用 Python SDK,通过pip方式安装

pip install -U bosonnlp

安装成功后,编写以下Python脚本,将 YOUR_API_TOKEN 更换为您的API密钥。

命名实体识别功能,可识别出7类实体。
python调用自然语言处理在线平台(以实现命名实体识别为例_第2张图片

Python 调用示例
说明:将YOUR_API_TOKEN换成你注册后生成的API Token (密钥)

# -*- encoding: utf-8 -*-
from __future__ import print_function, unicode_literals
import json
import requests


NER_URL = 'http://api.bosonnlp.com/ner/analysis'


s = ['对于该小孩是不是郑尚金的孩子,目前已做亲子鉴定,结果还没出来,'
     '纪检部门仍在调查之中。成都商报记者 姚永忠']
data = json.dumps(s)
headers = {
    'X-Token': 'YOUR_API_TOKEN',
    'Content-Type': 'application/json'
}
resp = requests.post(NER_URL, headers=headers, data=data.encode('utf-8'))


for item in resp.json():
    for entity in item['entity']:
        print(''.join(item['word'][entity[0]:entity[1]]), entity[2])

Python SDK 调用示例

# -*- encoding: utf-8 -*-
from __future__ import print_function, unicode_literals

from bosonnlp import BosonNLP

# 注意:在测试时请更换为您的API token
nlp = BosonNLP('YOUR_API_TOKEN')
s = ['对于该小孩是不是郑尚金的孩子,目前已做亲子鉴定,结果还没出来,'
     '纪检部门仍在调查之中。成都商报记者 姚永忠']
result = nlp.ner(s)[0]
words = result['word']
entities = result['entity']


for entity in entities:
    print(''.join(words[entity[0]:entity[1]]), entity[2])

运行结果

郑尚金 person_name
成都商报 product_name
记者 job_title
姚永忠 person_name

- 讯飞开放平台 https://www.xfyun.cn/
1.首页右上角,点击注册
2.创建应用,选择功能
3.创建完成后会生成以下信息,或可在我的应用中查看

python调用自然语言处理在线平台(以实现命名实体识别为例_第3张图片
4.管理白名单,将自己的ip添加至白名单中

自然语言处理功能页面底部可下载对应语言的调用示例模板
说明:将脚本中TEXT, API_KEY, APPID,{func}, 换成相应的待分析文本,讯飞开放平台提供的apiKey,讯飞开放平台应用的appid以及功能模块名称即可,运行脚本可打印相应结果。

python调用示例

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
import urllib.request
import urllib.parse
import json
import hashlib
import base64

def main():
    body = urllib.parse.urlencode({'text': 'TEXT'}).encode('utf-8')

    url = 'http://ltpapi.xfyun.cn/v1/{func}'
    api_key = 'API_KEY'
    param = {"type": "dependent"}

    x_appid = 'APPID'
    x_param = base64.b64encode(json.dumps(param).replace(' ', '').encode('utf-8'))
    x_time = int(int(round(time.time() * 1000)) / 1000)
    x_checksum = hashlib.md5(api_key.encode('utf-8') + str(x_time).encode('utf-8') + x_param).hexdigest()
    x_header = {'X-Appid': x_appid,
                'X-CurTime': x_time,
                'X-Param': x_param,
                'X-CheckSum': x_checksum}
    req = urllib.request.Request(url, body, x_header)
    result = urllib.request.urlopen(req)
    result = result.read()
    print(result.decode('utf-8'))
    return


if __name__ == '__main__':
    main()

python调用自然语言处理在线平台(以实现命名实体识别为例_第4张图片

- NLPIR
已经在pypi上发布pynlpir,但只实现了分词、词性标注、关键词提取等功能,无法实现命名实体识别。使用文档
示例

import pynlpir # 引入依赖包

pynlpir.open()  # 打开分词器
text = 'NLPIR分词系统前身为2000年发布的ICTCLAS词法分析系统,从2009年开始,为了和以前工作进行大的区隔,并推广NLPIR自然语言处理与信息检索共享平台,调整命名为NLPIR分词系统。'  # 实验文本
output = pynlpir.segment(text,pos_tagging=True)  # 默认打开分词和词性标注功能
print(output) #输出结果
pynlpir.close()   #使用结束后释放内存

运行结果
python调用自然语言处理在线平台(以实现命名实体识别为例_第5张图片

  • 腾讯文智 需要花钱
  • Hanlp
    已在pypi上发布pyhanlp https://github.com/hankcs/pyhanlp
    但无法实现命名实体识别功能

python调用自然语言处理在线平台(以实现命名实体识别为例_第6张图片

你可能感兴趣的:(知识图谱)