使用负值标准化向量

时间:2013-06-25 16:31:10

标签: text vector normalization vsm

我想在系统中将每个基于文本的项目表示为向量空间模型中的向量。这些术语的值可以是负数或正数,它们反映了正或负类中术语的频率。零值意味着中性 例如:

第1项(-1,0,-5,4.5,2)

第2项(2,6,0,-4,0.5)

我的问题是:

1-如何将我的矢量标准化为[0到1]的范围,其中:

.5在归一化之前表示零

和.5>如果是积极的

0.5<如果它是负面的

我想知道是否有一个数学公式来做这样的事情。

2-标准化后相似性度量选择是否会有所不同?例如,我可以使用余弦相似度吗?

3-如果我在标准化之后预先形成维数减少会很难吗

提前致谢

1 个答案:

答案 0 :(得分:0)

一种解决方案可能是使用MinMaxScaler,它缩放(0,1)范围之间的数字,然后将每行除以行的总和。在使用sklearn的python中,您可以执行以下操作:

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)