bosonnlp是一个使用起来还算比较方便的中文NLP的开放平台,提供多种常用的API,本文主要介绍它的几种基本功能的使用。
使用这个平台的缘由是在寻找python中文分词模块的时候,了解到它的分词准确度相对jieba分词等常用分词模块而言,更优秀一些,于是尝试试用了下,并写这篇做一下记录。
1.bosonnlp的安装
首先我们需要在它的官网https://bosonnlp.com/注册一个开发者账号。登陆进入之后进入控制台,可以看到我们还能使用的资源,下方会有一个API密钥,这个密钥是我们使用bosonnlp服务的关键。
我使用的是python3.6、Pycharm的ide,为了便于管理环境,我的项目放在单独的一个虚拟环境中。
安装的过程也十分简单了,
方法一:
Pycharm中file-setting-pythointerpreter中直接+,搜索bosonnlp,选中,左下角install package,就ok~
方法二:
cmd下使用activate 命令进入 相应的虚拟环境
在该环境下 pip install bosonnlp 即可。
2.bosonnlp的分词使用
boson平台免费开放了分词和词性标注功能,这也正是我所需要的。
扫描二维码关注公众号,回复:
2559580 查看本文章
通过查看开发者文档http://docs.bosonnlp.com/tag.html,能很快地写出我们的第一个分词程序
# -*- encoding: utf-8 -*-
from __future__ import print_function, unicode_literals
from bosonnlp import BosonNLP
# 注意:在测试时请更换为您的API token。
nlp = BosonNLP('YOUR_API_TOKEN')
s = ['亚投行意向创始成员国确定为57个', '“流量贵”频被吐槽']
result = nlp.tag(s)
for d in result:
print(' '.join(['%s/%s' % it for it in zip(d['word'], d['tag'])]))
上面是官网的程序,输出结果如下:
亚投行/n 意向/n 创始/vi 成员国/n 确定/v 为/v 57/m 个/q
“/wyz 流量/n 贵/a ”/wyy 频/d 被/pbei 吐槽/v
可以看到,输出了分词结果和词性标注。由于我只需要获取分词,简化了下代码:
from bosonnlp import BosonNLP
# 注意:在测试时请更换为您的API token。
nlp = BosonNLP('YOUR_API_TOKEN')
s = '游戏很喜欢,希望赶紧过了无法打开家园这一块,要不买之前给哥提醒也可以,买完之后告诉玩家进不去要等审核有一点小生气。'
result = nlp.tag(s)[0]['word']
print(' '.join(result))
输出是:
游戏 很 喜欢 , 希望 赶紧 过 了 无法 打开 家园 这 一 块 , 要 不 买 之前 给 哥 提醒 也 可以 , 买 完 之后 告诉 玩家 进 不 去 要 等 审核 有 一点 小 生气 。
这样就得到预期的分词结果,还有一些参数可以调整,集体可以参考官方文档。
3.情感分析
官方例程:
# -*- encoding: utf-8 -*-
from __future__ import print_function, unicode_literals
from bosonnlp import BosonNLP
# 注意:在测试时请更换为您的API Token
nlp = BosonNLP('YOUR_API_TOKEN')
s = ['他是个傻逼', '美好的世界']
result = nlp.sentiment(s)
print(result)
运行结果:
[[0.6519134382562579, 0.34808656174374203], [0.92706110187413, 0.07293889812586994]]
结语
在官网我们可以看到,bosonnlp的功能还是比较丰富的,除了免费的分词功能外,每天也有一些限量的其他功能资源,具体使用各位就自己多摸索一下吧~