矢量空間模型

矢量空間模型是一個把文本檔案表示為標識符(比如索引)向量的代數模型。它套用於信息過濾信息檢索索引以及相關排序。

基本介紹

  • 中文名:向量空間模型
  • 屬性:代數模型
定義,套用,優點,局限,基於及擴展了向量空間模型的模型,以向量空間模型為工具的軟體,免費開放的軟體資源,

定義

文檔和查詢都用向量來表示。
每一維都對應於一個個別的詞組。如果某個詞組出現在了文檔中,那它在向量中的值就非零。已經發展出了不少的方法來計算這些值,這些值叫做(詞組)權重。其中一種最為知名的方式是tf-idf權重(見下面的例子)。
詞組的定義按不同套用而定。典型的詞組就是一個單一的詞、關鍵字、或者較長的短語。如果將詞語選為詞組,那么向量的維數就是辭彙表中的詞語個數(出現在語料庫中的不同詞語的個數)。
通過向量運算,可以對各文檔和各查詢作比較。

套用

據文檔相似度理論的假設,如要在一次關鍵字查詢中計算各文檔間的相關排序,只需比較每個文檔向量和原先查詢向量(跟文檔向量的類型是相同的)之間的角度偏差。
實際上,計算向量之間夾角的餘弦比直接計算夾角本身要簡單。
其中
是文檔向量和查詢向量的點乘。
是向量d2的模,而
是向量q的模。向量的模通過下面的公式來計算:
由於這個模型所考慮的所有向量都是每個元素嚴格非負的,因此如果餘弦值為零,則表示查詢向量和文檔向量是正交的,即不符合(換句話說,就是檢索項在文檔中沒有找到)。如果要了解詳細的信息可以查看餘弦相似性這條目。

優點

相對於標準布爾模型(Standard Boolean model),向量空間模型具有如下優點:
  1. 基於線性代數的簡單模型
  2. 詞組的權重不是二元的
  3. 文檔和查詢之間的相似度取值是連續的
  4. 允許根據文檔間可能的相關性來進行排序
  5. 允許局部匹配

局限

向量空間模型有如下局限:
  1. 不適用於較長的文檔,因為它的相似值不理想(過小的內積和過高的維數)。
  2. 檢索詞組必須與文檔中出現的詞組精確匹配;詞語子字串可能會導致“假陽性”匹配。
  3. 語義敏感度不佳;具有相同的語境但使用不同的詞組的文檔不能被關聯起來,導致“假陰性匹配”。
  4. 詞組在文檔中出現的順序在向量形式中無法表示出來。
  5. 假定詞組在統計上是獨立的。
  6. 權重是直觀上獲得的而不夠正式。
然而,這些局限中的多數能夠通過集合各種方法來解決,包括數學上的技術(比如奇異值分解)和辭彙資料庫(比如WordNet)。

基於及擴展了向量空間模型的模型

基於及擴展了向量空間模型的模型包括:
  • 廣義向量空間模型
  • (增強的)基於主題的向量空間模型
  • DSIR模型
  • 辭彙鑑別(Term Discrimination)
  • Rocchio分類

以向量空間模型為工具的軟體

使用向量空間模型做實驗或者想基於它們實現研究服務的人或許會對以下的這些軟體包感興趣。

免費開放的軟體資源

  • Apache Lucene.這是一個高性能的軟體,用java寫的功能全面的文本搜尋引擎。
  • SemanticVectors.語義向量索引,將隨機投影算法(類似於潛在的語義分析)套用於Apache Lucene構建的文本詞組矩陣。
  • Gensim是一個Python+NumPy的向量空間模型的框架。它包含對Tf–idf、潛在的語義索引、隨機投影和潛在的狄利克雷邊界的增值算法(有效利用記憶體空間)。
  • Antonio Gulli開發的Compressed vector space in C++
  • Text to Matrix Generator (TMG)用於一系列特殊文本挖掘的matlab工具箱。(1)指標化(2)檢索(3)降維(4)聚類(5)分類。大多數的TMG都是用matlab編寫的,小部分是用Perl編寫的。它包括了LSI的實現和聚類、NMF以及其他方法。
  • SenseClusters,通過潛在的語義分析和單詞的同現矩陣來進行文本和詞組聚類的一個公開軟體包。
  • S-Space Package,通過“統計語義”實現的的檢索程式集成。

相關詞條

熱門詞條

聯絡我們