pythonshell怎么用中文_在NLTK中使用babelize_shell()进行机器翻译

我现在也有同样的问题。在

上面写着:

BabelfishChangedError公司

什么时候扔的babelfish.yahoo.com网站更改HTML布局的一些细节,Bablizer不再以正确的形式提交数据,或者无法再解析结果。在

我去看看有没有办法解决这个问题。在

我现在提出的解决方案是使用Microsoft Translator web service(SOAP)。这不是一个简单的解决方案,但代码很有趣。在订阅Azure Marketplace上的Microsoft Translator API

订阅Azure Marketplace上的Microsoft Translator API,我选择了免费订阅。在注册你的应用程序Azure DataMarket

若要向Azure DataMarket注册应用程序,请访问datamarket.azure.com/developer/applications/使用步骤1中的LiveID凭证,然后单击“注册”。写下你的客户id和你的客户机密以备以后使用安装Python的sudsfedorahoste.org/suds/

修改巴贝鱼.py(使用您自己的客户端id和密码):

//要添加的导入from suds.client import Client

import httplib

import ast

...

#added function

def soaped_babelfish(TextToTranslate,codeLangFrom, codeLangTo):

#Oauth credentials

params = urllib.urlencode({'client_id': 'babelfish_soaped', 'client_secret': '1IkIG3j0ujiSMkTueCZ46iAY4fB1Nzr+rHBciHDCdxw=', 'scope': 'http://api.microsofttranslator.com', 'grant_type': 'client_credentials'})

headers = {"Content-type": "application/x-www-form-urlencoded"}

conn = httplib.HTTPSConnection("datamarket.accesscontrol.windows.net")

conn.request("POST", "/v2/OAuth2-13/", params, headers)

response = conn.getresponse()

#print response.status, response.reason

data = response.read()

#obtain access_token

respondeDict = ast.literal_eval(data)

access_token = respondeDict['access_token']

conn.close()

#use the webservice with the accesstoken

client = Client('http://api.microsofttranslator.com/V2/Soap.svc')

result = client.service.Translate('Bearer'+' '+access_token,TextToTranslate,codeLangFrom, codeLangTo, 'text/plain','general')

return result

...

#modified translate method

def translate(phrase, source, target):

phrase = clean(phrase)

try:

source_code = __languages[source]

target_code = __languages[target]

except KeyError, lang:

raise ValueError, "Language %s not available " % lang

return clean(soaped_babelfish(phrase,source_code,target_code))

这就是肥皂剧版的全部!改天我会尝试一个基于web的解决方案(类似于当前的巴贝鱼.py但适应了变化)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值