win7(64位)下使用ltp(一):API调用

语言技术平台(Language Technology Platform,LTP)是 哈工大社会计算与信息检索研究中心 历时十年开发的一整套中文语言处理系统。可以进行分词、词性标注、命名实体识别、依存句法分析、语义角色标注、语义依存分析,简单演示可以访问 语言云平台 。本文介绍两种使用方法,第一种是调用API Web服务(限制使用流量),第二种是架设本地LTP服务(不限制使用流量)。

win7(64位)下使用ltp(一):API调用_第1张图片

使用方法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包可以完美解析):



    
    
        
            
                
                
                
                
                
                
            
        
    
 
  

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


你可能感兴趣的:(分词,python3)