1. 程式人生 > >lucene排序演算法之向量空間模型(一)

lucene排序演算法之向量空間模型(一)

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

lucene排序演算法除了分析查詢關鍵詞與文件的匹配度之外還包括其它的排序因子,先著重討論通過向量空間模型分析查詢關鍵詞與文件的匹配度問題。

在向量空間模型中有兩種基本的距離度量方式即:歐式距離和餘弦距離,而求匹配度時採用的是餘弦距離而不是歐式距離,個人理解如下:

1、文件由句子構成、句子由詞和短語構成、短語由詞構成,且要真正理解一篇文件需要考慮句子與句子的順序、詞和短語的順序、詞和詞的順序等等,向量空間模型簡單的認為文件是由n個詞構成的,並且詞與詞之間是正交的(每個詞是個獨立的維度並且是語義無關的,儘管不符合實際,但為了便於建立數學模型就做了這樣的假設);

2、為了討論方便就假設文件和查詢短語由兩個詞構成,這樣文件和查詢短語就是二維平面上的向量;

3、詞的量化採用TF-IDF演算法計算而得(關於該演算法的理論依據會單獨寫一篇進行討論);

4、圖中D表示文件向量,q1、q2表示查詢向量,如果採用歐式距離q2比q1到D的距離更小從而相似度更高,實際上q1與D的相似度比q2的高,因為q2只包含一個詞