私はRのメーリングリストでこの質問をしましたが、ここでは回答とヒントを探すより良い場所だと思います。SVMを使用したテキスト分類に関する特徴空間の違いを扱う
私は現在、特定のクラスに合ったテキストを特定するために、 を試して、学生のエッセイのテキスト分類に取り組んでいます。私は からのテキストを使用して、別の学期の訓練と文章のために(A) の分類子をテストします。
- Aからすべてのテキストを読んで、およそ1387項(パッケージTM)
- でDTM(A)をビルドBからすべてのテキストを読んで、およそ626でDTM(B)を構築:私のワークフローは、このようなものです用語SVM(パッケージe1071中)を使用して
- 電車DTM(A)と分類器、
は今、私はclassifyerを使用してDTM(B)内のすべてのテキストを分類します。しかし、 私はpredict()を使用しようとすると、私はいつもエラーメッセージを受け取ります: eval(expr、envir、enclos)のエラー:オブジェクト 'XY'が見つかりません。 DTM(A)とDTM(B)の語義はそれぞれ と異なるため、DTM(B)で使用できる用語はすべて ではありません。
もちろん、2つの異なるフィーチャスペースで分類するのは問題ですが、この「現実世界の問題」の解決策を見つけたいと思います。この考えは、生徒が他のテキストに合っているかどうかを判断することです。だから私の素朴なアイデアは、ある学期のテキスト(DTM(A))を使って予測モデルを開発し、このモデルを使って別の学期[DTM(B)]から新しいテキストを評価することです。新しいテキストが元のDTMにないため、フィーチャスペースが異なります。これまではすべてのテキストから作成されたDTMを使用するコードしか見つかりませんでしたが、これは新しいDTM(A)を作成し、毎回SVMを再調整する必要があります。
私の質問は:これはどうすればよいですか?同一の特徴空間を得るために、DTM(A)とDTM(B)で使用される用語 に一致させる必要がありますか? これは、DTM(A)またはDTM(B)にいくつかの空/ NA列を追加する の用語の数を減らすことで達成できます。または、別の解決方法がありますか? 私の問題に?
種類はいくつかのより多くの実験といくつかの研究の後
ビョルン
私はhttp://stackoverflow.com/questions/39721737/how-to-handle-errors-in-predict-function-of-rがあなたを助けることができると思います。 – abhiieor
ありがとうございましたが、あなたがリンクした投稿は、DTMの異なる列を意味する異なる機能スペースについてではなく、異なるカテゴリのカテゴリ変数についてです。 – PsyR
あなたは一般化することができます。新しい学習者を扱う機械学習方法はありません。基本的に新しいレベルのカテゴリ変数のダミー変数を作成すると得られます。ですから、本質的に私の答えで言われたように、あなたはトレーニングの一部である変数のリストを維持する必要があります。このリストに基づいてテスト/予測データをフィルタリングし、訓練されたオブジェクトのスコアリングに進みます。 – abhiieor