打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
听不懂人话?stata分词帮你搞定(四)

在开始今天的讲解前,小编先来带大家回顾一下介绍分词的相关推文:在听不懂人话?stata分词帮你搞定(一)中,我们介绍了如何使用stataustrwordcount()ustrword()函数进行简单的分词,为了解决stata分词无法显示词性与添加词典的问题,听不懂人话?stata分词帮你搞定(二)听不懂人话?stata分词帮你搞定(三)中我们又介绍了如何使用stataPython交互调用pynlpirjieba进行分词。今天我们介绍如何用stata调用curl使用BosonNLPAPI进行分词。

BosonNLP是玻森中文语义开放平台推出的一款产品,采用将分词和词性标注联合枚举的方法,实现了这一套分词和词性标注系统,并通过开放API接口的形式提供给其他开发者使用。

官网是http://bosonnlp.com/

在上一篇推文爬虫神器'curl'中,我们介绍了命令行工具“curl”,包括-o的用法。除了-o,今天的推文中还会涉及到curl的如下常见用法:

 -X:指定命令。HTTP协议的请求主要使用“GET”和“POST”两种方法,BosonNLP需要用到“POST”。

-H:自定义头信息传递给服务器,就整个网络资源传输而言,包括message-headermessage-body两部分,首先传递message-header,即http header消息。

-d:以HTTP POST方式传送数据。

在正式开始前,我们首先需要注册Boson账号:

完成后,我们可以在控制台的底部看到自己的API Token(密钥),该密钥将用于身份验证:

接下来我们就可以开始分词工作啦。

clear

cap mkdir E:/分词与情感分析

cd E:/分词与情感分析

local text = '爬虫俱乐部将于2017年10月5-7日在武汉举行一期Stata编程技术定制培训。这次课程我们专门增加了Stata15新增功能以及我们团队编写的自动输出实证结果的多个命令的介绍!' //这是我们要进行分词的文本

! curl -X POST ///使用POST方式请求,向Web服务器发送数据让Web服务器进行处理

-H 'Content-Type: application/json' ///Content-Type表示返回数据的类型和字符编码格式,BosonNLP的返回内容为 JSON 格式,因此 Content-Type 是 application/json

-H 'Accept: application/json' ///Accept指定客户端能够接收的内容类型

-H 'X-Token: ZheLiShiMiYao' ///输入自己注册时获得的API Token(密钥)用于身份验证,这里的密钥是我们伪造的,记得换成自己的密钥哦

--data '\'`=ustrtohex('`text'')'\''  ///HTTP POST方式传送数据,使用ustrtohex()函数将文本内容转为unicode编码

'http://api.bosonnlp.com/tag/analysis?space_mode=1&oov_level=3&t2s=0' /// 网址则复制“开发者”-“分词与词性标注”页面上的URL(如下图所示)

-o 分词结果.txt //将输出写到“分词结果.txt”文件中

shellout 分词结果.txt //打开“分词结果.txt”

分词结果显示了词性标签和分词后的每个词,我们用import delimited将“分词结果.txt”读入到stata的第一个单元格中(import delimited的用法详见推文用infix读入不完整?用import delimited试试吧

import delimited using 分词结果.txt, clear encoding('utf8') ///

      varnames(nonames) delimiter('asdfghjkl', asstring)

split v1, p(`','word':'') //以,'word':为分隔符将词性标签与词分开

drop v1 //删除v1

sxpose, clear //转置

rename _var1 v //重命名_var1为v

replace v = ustrregexra(v, `'(\[\{'tag':\[')|('\]\}\])|('\])|(\[')'', '') //将第一个观测值开头的[{'tag':['和第二个观测值结尾的']}]、第一个观测值结尾的']和第二个观测值开头的['替换为空,\表示转义

split v, p(`'',''') //以','为分隔符,将每个词性和每个词都分开

drop v //删除v

sxpose, clear //转置

rename _* (词性 词) //将变量名重命名为“词性”和“词”

这样,我们用stata调用curl使用BosonNLP的API所进行的分词就完成啦。没看懂记得戳下方视频学习哦!


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
为了挖掘大数据中的商业价值,玻森数据开放了一个中文语义分析 API
关键词提取<span style="color: rgb(0, 0, 0); font-size: 14px; font-weight: 400;">BosonNLP</span>
如何快速知道域名是否被微信拦截
获取Jenkins project build结果
微信公众平台开发(七) 聊天机器人功能开发
使用有道翻译API做翻译(c语言实现)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服