2013-06-25 89 views
1

我想將我的系統中每個基於文本的項目表示爲向量空間模型中的向量。術語的值可以是負值也可以是正值,反映了正面或負面類別中術語的頻率。零值表示例如中性 :正常化具有負值的向量

Item1的(-1,0,-5,4.5,2)

項目2(2,6,0,-4,0.5)

我的問題有:

1-我怎樣才能正常化我的向量的範圍[0〜1],其中:

0.5正常化

和0.5>如果是陽性前零表示

0.5 <如果負

我想知道是否有一個數學公式做這樣的事情。

2-歸一化後相似性度量選擇會不同嗎?例如,我可以使用餘弦相似度嗎?

3-如果我在標準化之後預先形成降維,會很困難嗎?

預先感謝

回答

0

一種解決方案可以是使用該標度之間的數量MinMaxScaler(0,1)的範圍內,然後通過該行的總和除以每行。在Python中使用sklearn你可以做這樣的事情:

from sklearn.preprocessing import MinMaxScaler, normalize 
scaler = MinMaxScaler() 
scaled_X = scaler.fit_transform(X) 
normalized_X = normalize(scaled_X, norm='l1', axis=1, copy=True)