テキストが主に特定の言語を使用しているかどうかを推定できる単純なアルゴリズムまたはオープン ソース ライブラリ (PHP) を探しています。Pythonに関連する次の回答が見つかりました。これはおそらく正しい方向に進んでいます。しかし、PHP ですぐに使えるものは魅力的です。
もちろん、n-gram estimator のようなものを実装するのはそれほど難しくありませんが、参照データベースも必要です。
実際に解決する問題は次のとおりです。私は WordPress ブログを運営していますが、現在スパムが殺到しています。ブログはドイツ語で書かれており、事実上すべてのトラックバック スパムは英語です。私の考えは、英語のように見えるすべてのトラックバックをすぐにスパムすることです。ただし、タイプミスや引用をスパムしたくないので、マーカー ワードは使用できません。
私の解決策:
この質問への回答を使用して、単純なストップワード比率でドイツ語を検出するソリューションを実装しました。リンクがある場合、コメントには少なくとも 25% のドイツ語のストップワードが含まれている必要があります。したがって、「クールな記事」のように、ストップワードがまったくないものにコメントすることはできますが、リンクを張る場合は、適切な言葉を書く必要があります。
残念ながら、NLTK のストップワードは正しくありません。リストには、ドイツ語には存在しない単語が含まれています。そこで、スノーボールリストを使用しました。Perl 正規表現オプティマイザーを使用して、リスト全体を 1 つの正規表現に凝縮し、preg_match_all() を使用してストップワードをカウントしました。フィルター全体は 25 行で、リストから正規表現を生成する Perl コードの 3 分の 1 です。それが野生でどのように機能するか見てみましょう。
ご協力いただきありがとうございます。