2017-02-13 4 views
1

データセット内でMLアルゴリズムを適用するにはデータを数値に事前処理する必要がありますが、どのように変換する。ここでは例を行く:文字列の類似性に基づいた数値へのプリプロセス文字列の機械化

Feature -> Value I would like to transform to (example): 

X Y Z foo -> 0.5 
X Y Z bar -> 0.501 

A B C foo -> 4.1 
W B C foo -> 5 

基本的に文字列が出てくる最初の言葉に大きな重みを与えて、その文字列は、ほぼ同一であった場合は、この数は他の数字には本当に近いだろうユニークな実数、変身うまずString上で

私の質問は、これを解決するための既存のアルゴリズムがありますか?

+0

1次元空間に高次元の空間を埋め込むように求めています。これは、大体の場合を除いて通常不可能です。指針についてはhttps://en.wikipedia.org/wiki/Nonlinear_dimensionality_reductionを参照してください。距離のメトリックを決定する必要もあります。 –

答えて

0

まず、私はこれを解決するアルゴリズムを知らない。しかし私はアイデアを持っています(これは「答え」ではないが、私はこれをコメントとして追加するという評判が足りません)。

各文字列を、その位置に比例して末尾から繰り返すことによって変換します。たとえば、 "Foo"は "FFFooo"と "abcd" "aaaabbbccd"になります。次に、すべてのペアでedit-distanceを使用して距離行列Mを作成します。

これは最適化の問題です。まず、ランダムな解法(すべての単語についてランダムにランダム)を作成し、解の距離行列M 'を計算し、MとM'の間のあるメトリック(自乗誤差)を最小化します。

0

あなたの例から、2つのテキスト文書間の類似性を見出そうとしているようです。コサイン類似度は、この文脈で最も広く使用されている距離尺度である。

たとえば、私たちは「少年はリンゴを食べる」比較してみましょうと、「女の子が梨を食べる」

まず、エントリーijは用語jが文書に含まれている回数が含まれている周波数マトリクスを作成私。

   "the" "boy" "girl" "eats" "apple" "pear" 
(sentence 1) 2  1  0  1  1  0 
(sentence 2) 2  0  1  1  0  1 

コサイン類似度は、このようPrinciples of Data Miningから

enter image description here

で計算することができる。

これは、二つのベクトル(等価的に、その内積の間anvgleの余弦でありますそれぞれが単位長を有するように正規化された後)、したがって、それらの用語構成要素の相対分布に関して類似性を反映する。

関連する問題