テキストの言語を検出する
言語検出は、文字 n-gram、ストップワード、統計モデルを使ってテキストサンプルの言語を特定します。代表的なアプローチを学びましょう。
- 1
言語検出の手法:(1) ストップワード分析 — 各言語には特徴的なストップワードがあります(英語は the、and、of。フランス語は le、et、de)。(2) 文字 n-gram — 各言語には特徴的な文字連続があります(ドイツ語の sch、スペイン語の ll)。(3) ラベル付きテキストで訓練された統計モデル(ナイーブベイズ、ニューラルネットワーク)。ライブラリ:franc、cld3、langdetect。
- 2 ワードカウント →
単語を数え、各言語のストップワードリストと比較します。テキストに英語のストップワード(the、is、at)が多く含まれていれば、英語である可能性が高いです。一般的な言語に対する、単純ですが効果的なヒューリスティックです。
- 3 文字出現頻度統計 →
文字の頻度分布を分析します。英語は e、t、a、o、i、n が高頻度。ドイツ語は sch、ä、ö、ü。フランス語は ç とアクサン。CJK 言語には単語境界がありません。文字分布は、特に短いテキストで強力な言語シグナルです。
- 4 テキスト文数カウント →
文を数えてテキスト構造を理解します。言語によって文末の句読点が異なります(CJK は。、スペイン語の疑問文は ¿?)。文構造と句読点パターンも補助的な言語シグナルです。
よくある質問
- 言語検出の精度はどのくらいですか?
- 一般的な言語の長いテキスト(100 文字超)なら 95〜99% の精度です。短いテキストや似た言語(スペイン語 vs ポルトガル語、ノルウェー語 vs デンマーク語)では精度が下がります。多言語混在テキストは問題があります。最良の結果にはライブラリ(franc、cld3)を使ってください。単純なヒューリスティックが見落とすエッジケースを処理します。
- CJK テキストの言語検出はどう行いますか?
- CJK 言語(中国語、日本語、韓国語)は一部の文字を共有しますが、識別特徴があります。日本語にはひらがな(ひらがな)とカタカナ(カタカナ)があり、韓国語にはハングル(한글)があり、中国語は漢字(漢字)のみを使います。これらの固有文字セットの存在で検出します。Unicode ブロック分析を使ってください。
このタスクを解決するワークフロー
SQL フォーマットと単語統計によるドキュメント化
SQL クエリを整形し、その後フォーマットされた出力を単語統計で分析する。 パイプライン
Lorem Ipsum 生成と単語カウント
Lorem Ipsum テキストを生成し、その後単語をカウントする。 パイプライン
テキストのクリーンアップ後の単語統計分析
テキストをトリムして正規化し、その後単語/文字/行統計を計算する。 パイプライン
行の重複除去と単語カウント
行をソートして重複を除去し、その後残りの単語をカウントして簡単な在庫を得る。 パイプライン
テキストの小文字化と単語カウント
テキストのケースを正規化し、その後分析のために単語をカウントする。 パイプライン
URL 除去と単語カウント
テキストから URL を除去し、その後残りの単語をカウントする。 パイプライン
Title Case と単語カウント
Title Case に変換し、その後単語をカウントする。 パイプライン
テキストの折り返しと単語カウント
長いテキストを折り返し、その後結果の単語をカウントする。 パイプライン
関連ツール
ワードカウント
Count characters, words, lines, sentences, paragraphs, byte size, and estimate reading time。無料、プライベート、100%クライアントサイド。 ツール
文字出現頻度統計
Count character or word frequency in text。無料、プライベート、100%クライアントサイド。 ツール
テキスト文数カウント
文末の「.」「!」「?」で文を数えます。小数点も文の終わりとしてカウントされるため、「3.14 is pi. It is 3.14.」は 2 ではなく 4 と報告されます。 ツール