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

自然语言处理在线平台

在这里插入图片描述

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 调用示例
说明:将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.创建完成后会生成以下信息,或可在我的应用中查看

在这里插入图片描述
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()

在这里插入图片描述

- 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()   #使用结束后释放内存

运行结果
在这里插入图片描述

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值