如何使用术语频率和规范化将此示例中的查询转换为单位向量?

时间:2014-11-18 03:54:36

标签: algorithm information-retrieval tf-idf

Stanford Information Retreival book中,我试图弄清楚如何将查询转换为单位向量。考虑查询q =嫉妒八卦。该查询在图6.12和6.13的三个坐标上变成单位矢量⃗v(q)=(0,0.707,0.707)。如何实现(0,0 .707,0.707)?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

这是标准的矢量归一化。如果向量与0 [(0,0,0)在你的情况下]的距离恰好为1,则称为normalized,正如您所看到的那样,该向量中的情况(最多为舍入差异)。< / p>

归一化由以下人员完成:

Let the vector be x = (x_1,x_2,...,x_n)
let s = x_1^2 + x_2^2 + ... + x_n^2 [sum of squares]
let the normalized vector n = x/sqrt(s) = (x_1/sqrt(s), x_2/sqrt(s), ..., x_n/sqrt(s))

在你的例子中,查询“嫉妒的八卦”产生非正规化的向量(0,1,1)(因为字典由3个词组成的感情,嫉妒,八卦)。通过调用上述算法,您得到s=2,因此规范化的向量为n=(0/sqrt(2), 1/sqrt(2), 1/sqrt(2)) ~= (0,0.707,0.707)