平均 100 文字未満で、スラング (ツイート、ユーザー クエリ、SMS など) を含む短いテキストの言語を検出するアプリケーションを作成しています。
私がテストしたすべてのライブラリは、通常の Web ページではうまく機能しますが、非常に短いテキストでは機能しません。これまでのところ最高の結果をもたらしているライブラリは、共有ライブラリとして構築する必要があった Chrome の言語検出 (CLD) ライブラリです。
テキストが非常に短い単語で構成されている場合、CLD は失敗します。CLD のソース コードを見たところ、4 グラムを使用していることがわかったので、それが原因である可能性があります。
精度を向上させるために私が現在考えているアプローチは次のとおりです。
- ブランド名、番号、URL、および「ソフトウェア」、「ダウンロード」、「インターネット」などの単語を削除します
- 辞書を使用する テキストにしきい値を超える短い単語が多数含まれている場合、または含まれる単語が少なすぎる場合。
- この辞書は、ウィキペディアのニュース記事 + hunspell 辞書から作成されています。
このタスクに最も適したデータセットはどれですか? そして、どうすればこのアプローチを改善できますか?
これまでのところ、私は EUROPARL とウィキペディアの記事を使用しています。ほとんどの作業で NLTK を使用しています。