嗨,我正在学习使用NLTK的自然语言处理。我正在尝试实现本书的babelize_shell()示例。我要做的是执行bablize_shell(),然后输入字符串,然后输入书中所述的德语,然后是run。在
我得到的错误是:
Traceback (most recent call last):
File "<pyshell#148>", line 1, in <module>
babelize_shell()
File "C:\Python27\lib\site-packages\nltk\misc\babelfish.py", line 175, in babelize_shell
for count, new_phrase in enumerate(babelize(phrase, 'english', language)):
File "C:\Python27\lib\site-packages\nltk\misc\babelfish.py", line 126, in babelize
phrase = translate(phrase, next, flip[next])
File "C:\Python27\lib\site-packages\nltk\misc\babelfish.py", line 106, in translate
if not match: raise BabelfishChangedError("Can't recognize translated string.")
BabelfishChangedError: Can't recognize translated string.
下面是一个示例会话:
^{pr2}$
我现在也有同样的问题。在
我发现了这个: http://nltk.googlecode.com/svn/trunk/doc/api/nltk.misc.babelfish-module.html
上面写着: BabelfishChangedError公司 什么时候扔的babelfish.yahoo.com网站更改HTML布局的一些细节,Bablizer不再以正确的形式提交数据,或者无法再解析结果。在
我去看看有没有办法解决这个问题。在
我现在提出的解决方案是使用Microsoft Translator web service(SOAP)。这不是一个简单的解决方案,但代码很有趣。在
我按照http://msdn.microsoft.com/en-us/library/hh454950中的说明操作,然后修改了巴贝鱼.py可在nltk/misc中找到/巴贝鱼.py在
订阅Azure Marketplace上的Microsoft Translator API,我选择了免费订阅。在
若要向Azure DataMarket注册应用程序,请访问datamarket.azure.com/developer/applications/使用步骤1中的LiveID凭证,然后单击“注册”。写下你的客户id和你的客户机密以备以后使用
安装Python的sudsfedorahoste.org/suds/
修改巴贝鱼.py(使用您自己的客户端id和密码):
//要添加的导入
这就是肥皂剧版的全部!改天我会尝试一个基于web的解决方案(类似于当前的巴贝鱼.py但适应了变化)
相关问题 更多 >
编程相关推荐