2016-10-10 2 views
0

以下の問題の出発点となる機械学習アルゴリズムはどれですか?トレーニングの中で提供されている意味の類似性に基づいた言葉のクラスタリング

私は以下のような単語のリストを持っています。

バーテン:行うために採用者:教会や教会のグループ

yardmanの担当司祭を支援(例えば英国国教会のような)特定の教会で聖職者のメンバー屋外作業(刈り芝生として)

と他の普通の言葉。

新しい単語が私たちのカテゴリ(役職)に属しているか、その意味に基づいていないかを決めたいと思っています。例えば

  • 看護師:1人の
  • 先生:1
  • 水泳:0
  • スイマー:1人の
  • ファシリテーター:1曲の
  • 演奏:0
  • 2はカテゴリに適合しません。

私はマシンの学習目的の実装ツールとしてpythonを使用しています。

答えて

0

これはテキストの類似性の問題で、特定のテキストブロックの類似性を既知のセットに一致させたい場合に発生します。たとえば、「看護師:医療従事者...」とします。類似度が特定の閾値を上回る場合、一致が存在し、そうでなければ一致しないとみなされる。

開始するには、比較を実行できるように、テキストを表現する必要があります。いくつかの一般的なテキスト表現は、次のとおりです。各ジョブ記述の文が変換されTF-IDFとの言葉/ Wordはカウント

  • ワード埋め込み(TF-IDFを参照してください)(Word2Vecを参照)
    • バッグカウントのベクトルに変換し、ベクトルの長さはすべてのジョブ記述のすべての単語の語彙のサイズに等しい。 Word2Vecでは、各単語はトレーニングコーパス内の単語のコンテキストを表す定義されたサイズのベクトルとして扱われます。自分のデータで自分のWord2Vecモデルを取引することも、pretrained modelを使うこともできます。職務内容を比較できるようにするには、各文章のベクトルを組み合わせる必要があります。最初の簡単なステップは、すべての単語ベクトルを平均化することですが、Doc2Vecを試すこともできます(hereを参照)。

      最後に、2つの表現を比較する距離関数が必要です。 TF-IDFの場合、cosine similarityはかなり標準的なものです。

      trainingWords = {} 
      trainingWords['gardener'] = 'a person who tends a garden...' 
      trainingWords['valet'] = 'A person who parks a car...' 
      
      trainingVectors = {} 
      
      for (category in trainingWords): 
          trainingVectors[category] = convert(trainingWords[category]) 
      
      newWord = 'nurse' 
      newDescription = 'A person working in healthcare...' 
      newVector = convert(newDescription) 
      
      threshold = <some number> 
      output = {} 
      for (category in trainingVectors): 
          if (distance(newVector, trainingVector[category]) < threshold): 
           output[category] = 1 
          else: 
           output[category] = 0 
      
      print output 
      

      この:Word2Vecについて、あなたはハイレベルですべて一緒にそれを置くeuclidean distanceまたは偶数ワードムーバーの距離を(WMDが再びhereを参照)

      使用することができ、次のような何かをしたいと思うでしょう先ほど触れたように、未加工のテキストを先に述べた再配列の1つ、先に述べた距離関数の関数距離、問題と距離関数に適した閾値のいずれかに変換する関数convertがあると仮定します。たとえば、コサイン類似度は0〜1の範囲の値を使用するため、一致とみなされるもの(たとえば、0.85)のしきい値を選択する必要があります。

    +0

    はい、単語は、数学的な問題を形成するのが簡単な意味で構成されます。 – Analystanand

    関連する問題