围绕google chromium的嵌入式紧凑语言检测库(cld2)的python绑定
pycld2的Python项目详细描述
此包包含CLD(压缩语言检测)库 由dick站点维护(https://code.google.com/p/cld2/)。第一次 fork是在版本r161中完成的。它还包含python绑定 最初由Mike McCandless创建。 这里的绑定不同于上游的绑定,它使 语言默认选项支持超过165种语言!
本项目的目标是整合上游图书馆 绑定,因此用户可以pip安装一个包而不是两个。
许可证与Chromium的许可证相同,包含在 供参考的许可证文件。
Python
安装
$ git clone http://github.com/abosamoor/pycld2.git $ cd pycld2 $ ./setup.py install
示例
import pycld2 as cld2 detectedLangName, detectedLangCode, isReliable, textBytesFound, details = cld2.detect("This is my sample text", pickSummaryLanguage=True, removeWeakMatches=False) print ' detected: %s' % detectedLangName print ' reliable: %s' % (isReliable != 0) print ' textBytes: %s' % textBytesFound print ' details: %s' % str(details) # The output look lie so: # detected: ENGLISH # reliable: True # textBytes: 25 # details: [('ENGLISH', 'en', 64, 20.25931928687196), ('FRENCH', 'fr', 36, 8.221993833504625)]
文件
首先,必须将内容(纯文本或html)编码为utf8 字节。然后,像这样检测:
topLanguageName, topLanguageCode, isReliable, textBytesFound, details = cld2.detect(bytes)
返回顶级语言的代码和名称。如果 第一语言比第二语言好得多。文本字节找到 告诉您CLD分析的实际字节数(删除HTML标记后, 空间过大的塌陷区域等)。每个顶部都有一个条目 匹配的3种语言,包括 匹配以及单独的标准化得分。
检测方法采用可选参数:
- isPlainText(默认值为false):如果您知道 字节没有任何XML/HTML标记
- includeExtendedLanguages(默认为true):设置为false 排除谷歌添加的“扩展”语言
- hintTopLevelDomain(默认为none):设置为 内容来自的域名(例如,如果url是 http://www.krasnahora.cz,传递字符串“cz”)。这暗示了 这会使探测器有点偏压。
- hintLanguageCode(默认为none):设置为可能的语言。 例如,如果web服务器声明了语言或内容 它本身嵌入了一个http-equiv元标记,声明语言pass 这个(例如意大利语的“it”)。这提供了一个可能会产生偏见的暗示 探测器。
- hintEncoding(默认值为none):设置为 内容(注意,您仍然必须传递utf-8编码字节)。这个 给出了一个可能会使探测器产生一定偏差的提示。注:这是 当前不工作。
- pickSummaryLanguage(默认值为false):如果为false,cld将始终 返回最匹配的语言作为答案。如果是真的,它会 有时选择第二个或第三个匹配项(例如,如果英语和x匹配, 如果x(not-unk)足够大,假设英语是样板 然后返回x)。在简单的测试中,精确度似乎受到了一些影响(xx 当这是真的,所以我默认为假。
- removeWeakMatches(默认值为true):如果匹配不强 够了,删掉它。这确保了当 返回语言。
模块导出这些全局常数:
- cld2.ENCODINGS:cld识别的编码名称列表(如果 提供提示,必须是这些名称之一)。
- cld2.LANGUAGES:语言及其代码的列表(如果您提供 HintLanguagecode,它必须是这些代码中的一个代码)。
- cld2.EXTERNAL_LANGUAGES:外部语言及其 代码。注意,不能暗示外部语言,但可以 如果传递includeextendedlanguages=true(默认值),则匹配。
- cld2.DETECTED_LANGUAGES:所有可检测语言的列表,如 我能确定的最好(这是从单元测试中逆向工程的, 如果语言经过测试并通过 对于至少一个示例文本)。