0

アドバイスをお願いします。すべてが共通の属性を共有するドキュメントのコレクションがあります(たとえば、フランス語が表示されます)。これらのドキュメントの一部は、このコレクションに関連しないものとしてマークされています(たとえば、フレンチキスが表示されます)が、すべてのドキュメントが識別されるとは限りません。他のどのドキュメントが属していないかを把握するために使用する最良の方法は何ですか。

4

3 に答える 3

0
  1. まず、サンプルドキュメントの特徴を抽出する方法に注意する必要があります。すべての単語を数えるのは良い方法ではありません。分類するのに重要な単語とそうでない単語を分類子に教えるには、TFIDFのような手法が必要になる場合があります。

  2. 適切な辞書を作成します。あなたの場合、French kissという単語は、French + kissのシーケンスではなく、一意の単語である必要があります。適切な技術を使用して適切な辞書を作成することが重要です。

  3. サンプルの残りのエラーは正常であり、「線形分離可能ではない」と呼びます。この問題を解決する方法については、膨大な量の高度な研究があります。たとえば、SVM(サポートベクターマシン)が使用したいものになります。単層のRosenblattパーセプトロンは通常、線形分離可能ではないデータセットに対して非常に悪いパフォーマンスを示すことに注意してください。

于 2012-07-03T08:47:03.517 に答える
0

仮定

あなたの例「フランス語」を前提として、この機能はドキュメントに表示される単語であると想定して作業します。また、「French kiss」は関係ないとおっしゃっていますので、あなたの場合、特徴とは特定の意味で使われている言葉だと思います。たとえば、「プール」が機能である場合、スイミングプールについて言及しているドキュメントは関連しているが、プール(スヌーカーやビリヤードなどのスポーツ)について話しているドキュメントは関連していないと言えます。

  • 語義曖昧性解消(WSD)手法は機能しますが、手間がかかりすぎて、この目的にはやり過ぎです。

提案:ローカライズされた言語モデル+ブートストラップ

このように考えてください。不完全なトレーニングセットはありませんが、より小さなトレーニングセットがあります。アイデアは、この小さなトレーニングデータを使用して、より大きなトレーニングデータを構築することです。これはブートストラップです。

トレーニングデータで機能が出現するたびに、それを取り巻く単語のみに基づいて言語モデルを構築します。ドキュメント全体のモデルを作成する必要はありません。理想的には、機能を含む文だけで十分です。これは私がローカライズされた言語モデル(LLM)と呼んでいるものです。

トレーニングデータからこのようなLLMを2つ作成します(T_0と呼びます)。1つは関連するドキュメント(たとえばM1)用で、もう1つは無関係なドキュメント(たとえばM0)用です。ここで、より大きなトレーニングデータを作成するために、M1とM0に基づいてドキュメントを分類します。新しいドキュメントdごとに、dに機能ワードが含まれていない場合、「不良」ドキュメントとして自動的に追加されます。dに機能単語が含まれている場合は、 d内のこの単語の周囲のローカルウィンドウ(LLMの構築に使用したのと同じウィンドウサイズ)を検討し、M0とM1を使用してこの単語シーケンスのパープレキシティを計算します。文書を、混乱の少ないクラスに属するものとして分類します。

形式化するために、擬似コードは次のとおりです。

T_0 := initial training set (consisting of relevant/irrelevant documents)
D0 := additional data to be bootstrapped
N := iterations for bootstrapping

for i = 0 to N-1
  T_i+1 := empty training set
  Build M0 and M1 as discussed above using a window-size w
  for d in D0
    if feature-word not in d
    then add d to irrelevant documents of T_i+1
    else
      compute perplexity scores P0 and P1 corresponding to M0 and M1 using
      window size w around the feature-word in d.
      if P0 < P1 - delta
        add d to irrelevant documents of T_i+1
      else if P1 < P0 - delta
        add d to relevant documents of T_i+1
      else
        do not use d in T_i+1
      end
    end
  end
  Select a small random sample from relevant and irrelevant documents in
  T_i+1, and (re)classify them manually if required.
end
  • T_Nは最終的なトレーニングセットです。上記のブートストラップでは、パラメータデルタは、いくつかの保持されたデータ(開発データとも呼ばれます)での実験で決定する必要があります。
  • このブートストラップ中のノイズがN回の反復すべてで蓄積されないように、小さなサンプルで手動で再分類が行われます。
于 2012-07-04T09:06:54.400 に答える
-1
  1. 一部の種類のニューラルネットワーク(Rosenblattパーセプトロンなど)は、エラーデータセットで教育でき、tranierよりも優れたパフォーマンスを示すことができます。さらに、多くの場合、オーバートレーニングを避けるためにエラーを起こす必要があります。
  2. ラベルのないすべてのドキュメントにランダムにマークを付け、いくつかのネットをトレーニングして、テストセットでのパフォーマンスを推定できます(もちろん、ラベルのないドキュメントをテストセットに含めないでください)。その後、ラベルのないドキュメントの重みをw_i = quality(j)* w_ijの合計としてサイクルで再計算し、トレーニングと重みの再計算などを繰り返すことができます。手順は、新しい隠れ層を導入し、Hebb手順によって重みを再計算することと同等であるため、正と負のセットが一部のネットワーク機能空間で線形分離可能である場合、手順全体が収束するはずです。
于 2012-06-28T11:56:13.250 に答える