
タスクステートメント
- テキストの断片から言語を決定する必要があります。 断片の長さは、数語から数十文です。 これはまとまりのあるテキストでも、たとえば記事のタイトルでもかまいません。
- テキストはUTF-8エンコーディングで提供されます。
- 興味のある言語のセットはハードコードされています。 言語の数は5..10。です。 動作中のアプリケーションでは、より小さな数に制限して、判定の精度を高めることもできます。
- テキストには他の言語が含まれている場合があります。 メインを決定する必要があります(たとえば、単語の60%以上)。
- 私の仕事では、常に正確に決定する必要はありません たとえば、ほとんどの場合、ウクライナ語とロシア語を区別する必要はありません。
- テキストの著者は彼が書く言語を知っています 。
多くのパラメータを順番に分析する必要があると思います。
実験のために、テキストのなじみのない言語を視覚的に特定しようとしました。 たとえば、ポルトガル語とドイツ語を区別するのは簡単ですが、どちらかはわかりません。
私の行動のアルゴリズムは次のようなものです。
- 私は言葉に現れる文字のセットを見ます。 さらに、テキスト全体ではなく、言葉に従っています。 テキストに「外来」語が含まれている場合があります。 この段階では、言語の3分の2がすでに除外されています。
- 特徴的な接続詞と前置詞を探します-それらに従って同じ文字のセットを持つ言語を分割できます
- 定義された言語で書かれていることを前提にテキストを読み込もうとしています。 この段階で何が起こるかを言うのは難しいです...これは言語の文法の複雑な分析だと思います。 私は知っている言葉を認識し、語尾を確認します。
失敗したアルゴリズムの例
vitali.at.tut.byは、テキスト内の2文字の組み合わせの数をカウントすることに基づく統計アルゴリズムです。 テストに失敗しました、なぜなら バイナリがサイトから削除されました。
大麦モジュール 。
この記事はトルコ語で書かれていると言う生きた例です。
ニューラルネットワークの分類子とセマンティック分析に関する記事がまだあります 。
次数nおよびベースMのポリグラムモデルでは、テキストはベクトル{f i }、i = 1..M nで表されます。ここで、f iはテキスト内のi番目のn-gramの出現頻度です。形式a 1 ... a n-1 a n ...-ニクロムは理解しませんでした
私はこれ以上見ませんでした。
一貫性のあるアルゴリズムの例
Googleの翻訳者は言語を数語で完全に定義します。 彼は文に「外来」語を含めても混乱しません。