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拡張モジュールとして利用可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト