2016-03-28 12 views
0

私は "バイリンガル文書からのスクリプト識別"に取り組んでいます。 私は、ページ/ブロックをEng(クラス1)、ヒンディー(クラス2)、またはmatlabのlibsvmを使ってMixedとして分類したいと思います。問題は、私が持っているトレーニングデータが、ヒンディー語と英語のページ/ブロックのみに対応するサンプルで構成されていて、混合ページがないことです。SVMでのマルチクラス分類

私が与えたいテストデータは、混合ページ/ブロックで構成されている場合もあります。この場合、「混合」として分類されます。私は信頼スコアまたは確率値を使ってそれを行うつもりです。クラス1のprob値が閾値(例えば0.8)よりも大きく、クラス2のprob値が閾値say(0.05)よりも小さい場合、それはクラス1とクラス2に分類され、その逆も同様である。上記の2つの条件が満たされなければ、それを「混合」と分類したいと考えています。

"libsvmpredict"の3番目の戻り値はprob_valuesです。このprob_valuesを使用して、テストデータがヒンディー語、英語または混合型のいずれであるかを判断する予定です。いくつかの場所で私は "libsvmpredict"が実際のprob_valuesを生成しないことを学びました。

SVMで2つのクラスのみからなるトレーニングデータを使用して、テストデータを3つのクラス(ヒンディー語、英語、ミックスド)に分類するのに役立つ方法はありますか。

+0

ヒンディー語のテキストが書かれていますラテン文字で?そうでない場合は、コンピュータが英語/ヒンディー文字を正しく認識して表示しているので、分類器が必要ないとは思わない。つまり、(おそらくUTF-8で)エンコードされた文字を見て、その言語を識別できます。 –

+0

私が持っているドキュメントは、ヒンディー語/英語の本から300dpiでスキャンされたイメージです。私のプロジェクトの目的は、入力されたドキュメントイメージのスクリプトを特定することであり、識別されたスクリプトに基づいて適切なOCRに渡され、イメージはコンピュータで読める形式に変換されます。 –

答えて

0

これはSVMの操作方法ではありません。
SVMは、あるクラスを他のすべてのクラスからどのように分離するかを知らずに、そのクラスを知らずにそのクラスを予測することはできません。

LibSVMの関数svmpredict()は実際に確率の見積もりを示しています。この値が大きいほど、予測に対する信頼が強くなります。しかし、3つ目のクラスを予測するためにクラスが2つしかない場合は、そのような値に頼ることはできません。実際には、svmpredict()は、クラスと同じ数の決定値を返します。

スレッシュホールドシステム(これはSVMベースではありません)に進むことができますが、失敗したりパフォーマンスが悪い可能性があります。それについて考えてみましょう:2つの閾値を設定し、それらを論理AND方式で使用する必要があります。正しく分類された非混合文書の機会は、実際には大幅に減少します。

あなたの訓練データに追加するために、時間設定しきい値を浪費したり、パフォーマンスの悪い可能性が高い代わりに、これらのテキストを一緒に参加させたり、いくつかのヒンディー語や英語の線で新しいファイルを作成してください適切な混在文書を作成し、標準の3クラスSVMシステムを実行します。あなたにもそうで、このようなfread()fwrite()fprintf()fscanf()importdata()としてかなりまともなファイルI/O機能を持っており、MATLABを使用することができ、このようなファイルを作成するために
...

関連する問題