コンテンツへスキップ
uencoder

テキストの言語を検出する

言語検出は、文字 n-gram、ストップワード、統計モデルを使ってテキストサンプルの言語を特定します。代表的なアプローチを学びましょう。

  1. 1

    言語検出の手法:(1) ストップワード分析 — 各言語には特徴的なストップワードがあります(英語は the、and、of。フランス語は le、et、de)。(2) 文字 n-gram — 各言語には特徴的な文字連続があります(ドイツ語の sch、スペイン語の ll)。(3) ラベル付きテキストで訓練された統計モデル(ナイーブベイズ、ニューラルネットワーク)。ライブラリ:franc、cld3、langdetect。

  2. 2
    ワードカウント →

    単語を数え、各言語のストップワードリストと比較します。テキストに英語のストップワード(the、is、at)が多く含まれていれば、英語である可能性が高いです。一般的な言語に対する、単純ですが効果的なヒューリスティックです。

  3. 3
    文字出現頻度統計 →

    文字の頻度分布を分析します。英語は e、t、a、o、i、n が高頻度。ドイツ語は sch、ä、ö、ü。フランス語は ç とアクサン。CJK 言語には単語境界がありません。文字分布は、特に短いテキストで強力な言語シグナルです。

  4. 4
    テキスト文数カウント →

    文を数えてテキスト構造を理解します。言語によって文末の句読点が異なります(CJK は。、スペイン語の疑問文は ¿?)。文構造と句読点パターンも補助的な言語シグナルです。

よくある質問

言語検出の精度はどのくらいですか?
一般的な言語の長いテキスト(100 文字超)なら 95〜99% の精度です。短いテキストや似た言語(スペイン語 vs ポルトガル語、ノルウェー語 vs デンマーク語)では精度が下がります。多言語混在テキストは問題があります。最良の結果にはライブラリ(franc、cld3)を使ってください。単純なヒューリスティックが見落とすエッジケースを処理します。
CJK テキストの言語検出はどう行いますか?
CJK 言語(中国語、日本語、韓国語)は一部の文字を共有しますが、識別特徴があります。日本語にはひらがな(ひらがな)とカタカナ(カタカナ)があり、韓国語にはハングル(한글)があり、中国語は漢字(漢字)のみを使います。これらの固有文字セットの存在で検出します。Unicode ブロック分析を使ってください。

このタスクを解決するワークフロー

関連ツール