向量空间模型(转)
一: 不同區域的權重計算
1.? 對出現在文檔的不通區域的term賦予不同的權值,例如title,author,body等,這樣需要在倒排表中記錄term每一次出現的位置
2. 對不同的區域賦予不通的權值,Gi, 使得 Sum(Gi) = 1
3. 對于這個Gi的值,可以通過機器學習的方法來確定:給定一個文檔集合和query,以及query與文檔之間的相似性,然后假定一個表達式,采用這個樣本來計算各種系數
二:出現頻率的權重計算
1. 在這種模型下,文檔被認為是詞的集合,詞的出現位置和順序都不重要,重要的是詞的出現次數,同樣地query也做這樣的處理,因此“我比你好”和“你比我好” 是一樣的
1. term在某一篇文檔中的頻率tf, 在一個文檔集合內的頻率cf,在文檔集合內包含該term的文檔數df
2. 如果只用tf,則語氣詞等的權重會最大,或者是專業文章內,例如自動化的文章中自動化會出現很多次,因此用自動化就不能區分開這些文章,因此要借助于cf或者df
3. 由于df比cf具有更好的作用來區分不同詞與文檔的相關性,因此采用df配合tf來決定term在文檔里的權重
4. 定義idf = log(N / df), N是文檔總數
5. term的權重 = tf * idf
6. 因此,定義query與文檔的權重關系為:score(q,d) = for t in q :? sum += tf(t,d) * idf(t)
7. 因此,將文檔表示為一個term以及term權重的向量,V = (t1, t2, ..., tn), 因此計算V1 與 V2的相似性可以如下的公式:
sim(V1, V2) = V1 * V2 / (|V1| * | V2|), 分子是向量的點乘,分母是向量長度的乘積,如果將V1, V2表示為有方向的直線,這實際是在計算這兩條線夾角的cos值
8. 將query也看成是term的向量集合,query中的term權重可以簡單地設定為相等
三. 對tf,df的一些變化
1. 一般不會說如果詞在文檔內出現20次,則記為20,因此必須采用公式來計算tf,一般是tf = 1 + log(出現次數)
2. 上面計算出來的tf會在很大的范圍內,差別很大,因此需要將其范圍變小,同時引入平滑因子來降低不同值之間的差距,縮小范圍是因為tf需要在不同的文檔間計算,否則一篇很長的文章內的詞會具有很大的tf值,這樣會降低其他文章的權重,會影響相關性。
?
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/tianqio/archive/2009/05/24/4212434.aspx
轉載于:https://www.cnblogs.com/Myhsg/archive/2010/01/07/1641018.html
總結
- 上一篇: ZZ:Business Analysis
- 下一篇: MasterPage事件使用