项目简介:lingua-py
lingua-py 是一款功能强大的 Python 库,旨在检测文本使用的语言。这一工具可作为自然语言处理应用中的预处理步骤,广泛应用于文本分类和拼写检查等领域。同时,它也能够帮助电子邮件按照语言准确分发到地理位置正确的客户服务部门。
lingua-py 存在的意义
语言检测通常依赖于庞大而复杂的机器学习框架或自然语言处理应用。在无需完整系统功能或不愿学习复杂系统时,lingua-py 是一款灵活的小型库,正好满足需求。该库几乎不需要配置,就能在长文本、短文本,甚至单词和短语中准确检测出语言。lingua-py 采用了规则和统计方法的结合,而无需外部 API 或服务连接,其离线功能尤为突出。
项目历史
lingua-py 最初是一个纯 Python 实现项目,但在性能与内存消耗之间存在权衡。起初,语言模型存储在字典中,导致大内存消耗(超过 3 GB);而后,模型存储在 NumPy 数组中,虽减少了内存消耗(约 800 MB),但 CPU 性能显著下降。最终从 2.0.0 版本开始,项目转为调用 Rust 实现的绑定,大幅提升了性能并将内存占用控制在不到 1 GB。
支持的语言
相较于其他语言检测库,lingua-py 更注重质量而非数量,力求在扩展语言数量前,确保小语种的检测准确性。当前支持 75 种语言,包括:
- 阿尔巴尼亚语
- 阿拉伯语
- 亚美尼亚语
- 阿塞拜疆语
- …(完整版支持语言清单请参阅项目文档)
准确性评估
lingua-py 提供了各类测试数据的语言检测准确度统计,包括单词、词组和句子。使用的测试数据来自德国莱比锡大学的 Wortschatz 语料库,通过单词、词组及各种长度的句子来测评检测效果。
与其他主流语言检测工具(如 FastText、Langdetect 等)的测试比较指出,lingua-py 在各种文本长度下的检测效果均有明显优势。
检测能力展示
lingua-py 的测试包括三个方面:
- 单个单词检测:在 1,000 个随机单词中检测准确率。
- 词组检测:在 1,000 对随机词组中的检测表现。
- 整句检测:在 1,000 个随机整句中的结果。
测试显示,lingua-py 在不同类型文本中的检测准确率均表现出色,在单词、词组以及整句的平均检测能力上都大大领先于其他同类产品。
lingua-py 为用户提供了一款高效的语言检测工具,尤其适合对精度有严苛要求的自然语言处理任务,是业内人士不可错过的选择。