win7(64位)下使用ltp(一):API调用
2016-03-21 19:59
741 查看
语言技术平台(Language Technology Platform,LTP)是 哈工大社会计算与信息检索研究中心 历时十年开发的一整套中文语言处理系统。可以进行分词、词性标注、命名实体识别、依存句法分析、语义角色标注、语义依存分析,简单演示可以访问 语言云平台 。本文介绍两种使用方法,第一种是调用API
Web服务(限制使用流量),第二种是架设本地LTP服务(不限制使用流量)。
结果(xml格式,利用python的BeautifulSoup包可以完美解析):
下一节将介绍本地架构ltp服务。可以先参考其官方文档 LTP
Web服务(限制使用流量),第二种是架设本地LTP服务(不限制使用流量)。
使用方法1:
语言云平台提供了API可以调用其web服务,调用web服务需要注册一个账号获得一个Api_key,每月有使用流量限制(我的是每月18.6GB)。1.1简单用法
以Get请求的方法直接在浏览器输入框输入以下代码:http://api.ltp-cloud.com/analysis/?api_key=YourApiKey&text=我是中国人。&pattern=dp&format=plain其中“api_key”即注册后获得的;text是待处理文本;"pattern"用于指定分词的模式,"dp"表示进行依存句法分析处理即包括分词、词性标注、命名实体识别和依存句法分析;"format"表示结果返回的格式,plain表示以简洁文本格式返回结果。详细参数选项去见 语言云API使用文档 。返回结果如下图:
1.2 python3调用
# coding=utf-8 from urllib import request if __name__ == '__main__': url_get_base = "http://api.ltp-cloud.com/analysis/?" api_key = 'Your API_key' text = request.quote('我是北京大学的研究生') format = 'plain' pattern = 'dp' result = request.urlopen("%sapi_key=%s&text=%s&format=%s&pattern=%s" % (url_get_base, api_key, text, format, pattern)) content = result.read().strip() print(content.decode('utf-8'))结果(简洁文本):
我_0 是_1 SBV 是_1 -1 HED 北京_2 大学_3 ATT 大学_3 研究生_5 ATT 的_4 大学_3 RAD 研究生_5 是_1 VOB
结果(xml格式,利用python的BeautifulSoup包可以完美解析):
<?xml version="1.0" encoding="utf-8" ?> <xml4nlp> <note sent="y" word="y" pos="y" ne="n" parser="y" semparser="n" wsd="n" srl="n" /> <doc> <para id="0"> <sent id="0" cont="我是北京大学的研究生"> <word id="0" cont="我" pos="r" parent="1" relate="SBV" /> <word id="1" cont="是" pos="v" parent="-1" relate="HED" /> <word id="2" cont="北京" pos="ns" parent="3" relate="ATT" /> <word id="3" cont="大学" pos="n" parent="5" relate="ATT" /> <word id="4" cont="的" pos="u" parent="3" relate="RAD" /> <word id="5" cont="研究生" pos="n" parent="1" relate="VOB" /> </sent> </para> </doc> </xml4nlp>
1.3 java调用
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class ltpAPI { public static void main(String[] args)throws IOException{ String api_key = "your api_key";//api_key,申请账号后生成,这个账户每月有19G流量 String pattern = "dp";//ws表示只分词,除此还有pos词性标注、ner命名实体识别、dp依存句法分词、srl语义角色标注、all全部 String format = "plain";//指定结果格式类型,plain表示简洁文本格式 String result = ""; String text = "我是南京大学的研究生"; text = URLEncoder.encode(text, "utf-8"); URL url = new URL("http://ltpapi.voicecloud.cn/analysis/?" + "api_key=" + api_key + "&" + "text=" + text + "&" + "format=" + format + "&" + "pattern=" + pattern); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); BufferedReader innet = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8")); String line; while ((line = innet.readLine())!=null){ System.out.println(line); } innet.close(); } }结果:
我_0 是_1 SBV 是_1 -1 HED 南京_2 大学_3 ATT 大学_3 研究生_5 ATT 的_4 大学_3 RAD 研究生_5 是_1 VOB
下一节将介绍本地架构ltp服务。可以先参考其官方文档 LTP
相关文章推荐
- php设计模式学习系列(三)工厂模式
- ARCGIS切图:TPK文件的空间参考为地理坐标系
- phpexcel如何读和写大于26列的excel3
- 在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。
- PHP/JS/MYSQL 测试题
- phpcms调出主栏目下子栏目的内容
- mac下xampp环境中yii2的migrate报错处理
- PHP CodeBase: 生成N个不重复的随机数
- php初探
- PHP socket实现 readInt 和 readString 以及和Java端对接
- PHP进行RSA加密解密
- PHP中一些常用的预定义常量和变量
- ubuntu12.04安装tftp、配置tftp服务错误的解决方法
- cuteftp不能连接虚拟机的解决方法
- PHP删除文件(夹)
- IIS7配置PHP图解
- php resizeimage 部分jpg文件 生成缩略图失败
- PHP cURL 应用
- PHP 7 查询结果函数
- php代码加密