我想在系统中将每个基于文本的项目表示为向量空间模型中的向量。这些术语的值可以是负数或正数,它们反映了正或负类中术语的频率。零值意味着中性 例如:
第1项(-1,0,-5,4.5,2)
第2项(2,6,0,-4,0.5)
我的问题是:
1-如何将我的矢量标准化为[0到1]的范围,其中:
.5在归一化之前表示零
和.5>如果是积极的
0.5<如果它是负面的
我想知道是否有一个数学公式来做这样的事情。
2-标准化后相似性度量选择是否会有所不同?例如,我可以使用余弦相似度吗?
3-如果我在标准化之后预先形成维数减少会很难吗
提前致谢
答案 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)