腾讯文智自然语言处理-分词API Python小实验

我本人在做中文地址的分词算法的优化,为了获得尽量好的分词后的小样本,先后试验了中科院计算所的ICTCLAS、Python上的结巴分词、腾讯文智自然语言处理。因为结巴开源而且原理不复杂,代码可读性较强,因此我自己主要是在结巴的算法上进行修改。

腾讯的新手礼包是赠送了50000次API调用,小样本试验都不成问题,不过官网的文档是php版本的,因此参考网上的资料提供Python2.7版本,仅供参考。

# -*-coding=utf-8-*-

from QcloudApi.qcloudapi import QcloudApi
import json

if __name__ == "__main__":
    """
    Wenzhi Interface Sample:
    https://wenzhi.api.qcloud.com/v2/index.php?
    Action=LexicalAnalysis
    &Nonce=345122
    &Region=sz
    &SecretId=AKIDz8krbsJ5yKBZQpn74WFkmLPx3gnPhESA
    &Timestamp=1408704141
    &Signature=HgIYOPcx5lN6gz8JsCFBNAWp2oQ
    &text=我爱洗澡
    &code=2097152
    """
    module = "wenzhi"
    action = "LexicalAnalysis"

    config = {
        "Region": "sh",
        "secretId": "**id**",
        "secretKey": "**key**",
        "method": "get"
    }

    params = {
        "text": "江苏省南京市玄武区玄武门街道峨嵋新村13幢",
        "code": 0x00200000,
        "type": 0
    }

    try:
        service = QcloudApi(module, config)
        print service.generateUrl(action, params)
        s =  service.call(action, params)
        print s
        dejson =  json.loads(s)
        f = open("resp.txt", "w")
        f.write(u' '.join(w["word"] for w in dejson["tokens"]).encode('utf-8').strip())
        f.close()
    except Exception, e:
        print "exception:", e

主要参考了武汉2016马拉松和文智自然语言处理的官方文档。设置好configparamsparams注意coding必选,是编码方式,目前仅支持utf-8;type可选,为分词模式。就可以用官方的API发起调用,接收返回的json串。json的格式在官方文档中也有写,我只需要获得分词后的词,不需要位置、词性,所以直接join起来写入到文件中备用。

希望对大家有帮助。

你可能感兴趣的:(文智自然语言处理)