自然语言处理在线平台
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密钥。
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.创建完成后会生成以下信息,或可在我的应用中查看
自然语言处理功能页面底部可下载对应语言的调用示例模板
说明:将脚本中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()
- 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() #使用结束后释放内存