pemistahl/lingua-rs

The most accurate natural language detection library for Rust, suitable for short text and mixed-language text

解决的问题

Lingua 是一个用于识别给定文本片段语言的语种检测库。它特别解决了其他库在处理极短文本片段(如单个单词或短语)时表现不佳,且随着支持语言数量增加而准确率下降的问题。

工作原理

Lingua 结合了基于规则的引擎和基于统计的朴素贝叶斯模型。规则引擎首先识别文本的字母表,并搜索特定语言独有的字符,以过滤掉不可能的候选语言。如果找到唯一匹配的语言,则完全跳过统计模型。否则,它使用 n-gram 大小为 1 到 5 的概率 n-gram 模型,相比大多数其他库使用的标准三元组模型,对短文本具有更高的准确率。为保持效率,语言模型以有限状态转换器(FST)形式存储,可在不完全加载到内存的情况下直接在磁盘上进行搜索。

适用人群

适用于开发自然语言处理(NLP)应用的开发者,例如文本分类器、拼写检查器或自动邮件路由系统,他们需要一个轻量级、离线、高精度的语种检测工具,而无需承担完整机器学习框架的开销。

主要亮点

  • 短文本高精度:专为单个单词和短语优化。
  • 支持 75 种语言:注重支持语言的质量而非数量。
  • 混合方法:结合规则过滤与统计 n-gram 模型(1-5 元组)。
  • 低资源消耗:使用 FST 降低内存占用,适合资源受限环境。
  • 离线运行:完全离线,无需外部 API 调用。
  • 多语言支持:提供 Rust 库和 Python 扩展模块。

相关

  • 项目
  • 项目
  • 项目
  • 项目