在 Windows 上安装 Chrome 紧凑型语言检测库出现一些问题后,我从这个 easy_install安装了 CLD 。
我现在可以使用 CLD,但遇到了一些编码问题。
背景
将推文提取到 python 脚本中,并在去除主题标签和链接后,将它们传递给 CLD 以检测语言。
以下是我的代码的简化版本:
s = "I am a tweet from Twitter"
clean_s = s.encode('utf-8')
lan = cld.detect(clean_s, pickSummaryLanguage=True, removeWeakMatches=True)
问题
5 次中有 4 次按预期工作(返回关于它是什么语言的响应)。
但是,我不断弹出此错误:
UnicodeEncodeError:“charmap”编解码器无法在位置 15 编码字符 u'\u2019':字符映射到未定义
我确实读过:
“您必须提供 CLD 干净(交换有效)的 UTF-8,因此必须事先解决任何编码问题。”
但是,我认为我的声明已经涵盖了这一点以编码为 UTF8?
我假设我需要确保将字符串传递给 CLD,以保留阿拉伯语、亚洲等语言的字体。
这是我的第一个 python 项目,所以这很可能是一个菜鸟错误。谁能指出我的错误以及如何纠正?
如果我需要收集更多信息,请在评论中告诉我,我将编辑我的 Q 以提供更多信息。
编辑 如果有帮助,这是我的菜鸟代码(减少复制问题)。我正在运行 Python 2.7 32 位。
运行这段代码,过了一会儿,我得到了这个错误。如果我没有正确实现错误报告,请告诉我。
Raw: Traceback (most recent call last):
File "LanguageTesting.py", line 71, in <module>
parse_tweet(tweet)
File "LanguageTesting.py", line 43, in parse_tweet
print "Raw:", raw
File "C:\Python27\ArcGIS10.1\lib\encodings\cp850.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 29-32: character maps to <undefined>