官网:http://www.ltp-cloud.com/
使用python调用API实验,参考文档:http://www.ltp-cloud.com/document/
1.注册:免费注册一个帐号
注册网址:http://www.ltp-cloud.com/accounts/register/
注册后获取调用语言云服务的token以及api_key(新版API的调用认证方式)。目前新注册用户将获得每月20G的免费流量。
2.Python程序(注:32位 python 2.7.11,64位win7系统)
(1)简单测试句子
-
-
-
-
-
-
-
- import urllib2
-
- url_get_base = "http://api.ltp-cloud.com/analysis/?"
- api_key = '********替换为自己的API_KEY********’
-
-
- text = "这是一个测试文本"
-
- format0 = 'xml'
- pattern = 'ws'
-
- result = urllib2.urlopen("%sapi_key=%s&text=%s&format=%s&pattern=%s"
- % (url_get_base, api_key, text, format0, pattern))
- content = result.read().strip()
- print content
(2)本地文本处理
-
-
-
-
-
-
-
- import urllib2
- import codecs
-
-
- def ltp_cloud(par1):
- url_get_base = "http://api.ltp-cloud.com/analysis/?"
- api_key = '***********替换为自己的API_KEY***********'
- format0 = 'plain'
- pattern = 'ws'
- result1 = urllib2.urlopen("%sapi_key=%s&text=%s&format=%s&pattern=%s"
- % (url_get_base, api_key, par1, format0, pattern))
- return result1.read().strip()
-
- f = open(r"C:\Users\lenovo\Desktop\test.txt", "r")
- savef = codecs.open(u"C:\\Users\\lenovo\\Desktop\\out1.txt", "a", "utf-8")
-
- linenum = 0
- newline = ""
- for line in f:
- linenum += 1
- newline += line.strip().replace("#", "") # 删除行末空白符、干扰符号,以免影响URI
-
- if line[-1] != "\n":
- if " and " and " in " in newline:
- print u"需要更改单词in"
- newline = newline.replace(" in ", " i.n ")
- print u"已处理到文本最后一行:", linenum
- savef.write(ltp_cloud(newline).decode("utf-8") + "\n")
-
- if len(newline) > 6000:
- if " and " and " in " in newline:
- print u"需要更改单词in"
- newline = newline.replace(" in ", " i.n ")
- print u"处理到第" + str(linenum) + u"行"
- savef.write(ltp_cloud(newline).decode("utf-8") + "\n")
- newline = ""
-
- savef.close()
- f.close()
说明:
[1]如果是本地文本,尽量一次提交尽可能多的文本,而不是一句一句提交,以提高请求效率。一次提交的文本有最大长度限制,在UTF-8编码下,单次解析的文本长度大约为2700个汉字(8100长度)。
[2]提交的文本中不能有影响URI构造的特殊符号,目前已知的干扰符号有【# & ; +】四种;另外不知道为什么英文单词and和in不能同时存在于提交的文本中。
[3]上述程序中读取的文本是已经分好句的,每行一句。不过语言云本身提供分句功能,因此可以直接提交没有分句的文本。其分句是根据中文标点符号【。?!;……】五种。