相似文檔的判定方法和裝置與流程
2023-06-04 23:35:31 3

本發明涉及數據挖掘技術領域,尤其涉及一種相似文檔的判定方法和裝置。
背景技術:
隨著網際網路的發展和應用,各類文檔已經被上傳至網際網路中,進行文檔信息的分享和交流,網際網路中具有巨大的文檔信息庫。用戶查看文檔的時候,經常需要找到與當前文檔相似文檔,從而查看哪些平臺或網站對文檔進行了轉載,進行文檔信息的溯源。從而需要判斷各個文檔之間的相似程度,進行文檔相似度的判定。
現有技術中,主要基於文檔中的關鍵詞,或者基於文檔中的句子進行文檔的相似度的判定;兩篇文檔中相同的關鍵詞越多,則判定兩篇文檔的相似度較高;兩篇文檔中相同的句子越多,則判定兩篇文檔的相似度較高。
然而現有技術中,歸屬於同一領域的文檔具有該領域的專業詞語,從而歸屬於同一領域的文檔中必然具有較多相同的專業詞語,基於關鍵詞判定文檔的相似度的方式,並不準確;同時,各文檔中意思相同的句子,句子的句式可能不同,例如主動語態、被動語態下句子,為意思相同的句子,但是並不是相同的句子,從而會導致基於句子判定文檔的相似度的方式,也不準確。從而現有技術中無法較為準確的判斷各文檔是否相似,無法準確的判定出文檔的相似度。
技術實現要素:
本發明提供一種相似文檔的判定方法和裝置,用以解決現有技術中無法較為準確的判斷各文檔是否相似,無法準確的判定出文檔的相似度的問題。
本發明的一方面是提供一種相似文檔的判定方法,包括:
對各文檔進行分詞處理,分別獲取各文檔中的各個關鍵詞;
統計各文檔中的各關鍵詞在所歸屬的文檔中的詞頻,根據各文檔中各關鍵詞的詞頻,確定各文檔中的各關鍵詞的權重;
根據各文檔中的各關鍵詞的權重,確定各文檔中的各句子的權重;
確定各文檔中的各句子的哈希值;
根據各文檔中的各句子的權重和各句子的哈希值,確定各文檔的向量空間;
根據各文檔的向量空間,確定各文檔與所有文檔中的其他文檔之間的夾角餘弦值;
根據各文檔與所有文檔中的其他文檔之間的夾角餘弦值,確定各文檔之間的相似度。
如上所述的方法中,所述對各文檔進行分詞處理,分別獲取各文檔中的各個關鍵詞,包括:
對各文檔進行分詞處理,並對分詞處理後得到的詞進行詞性標註,以獲取各文檔中的各個關鍵詞,其中,所述關鍵詞為文檔中的名詞和動詞。
如上所述的方法中,所述統計各文檔中的各關鍵詞在所歸屬的文檔中的詞頻,根據各文檔中各關鍵詞的詞頻,確定各文檔中的各關鍵詞的權重,包括:
統計各文檔中的各關鍵詞在所歸屬的文檔中的詞頻;
確定各關鍵詞在所歸屬的文檔中的第一出現位置信息;
根據各文檔中各關鍵詞的第一出現位置信息,確定與第一出現位置信息對應的第一調整值;
根據各文檔中的各關鍵詞的第一調整值,調整各文檔中各關鍵詞的詞頻;
根據各文檔中各關鍵詞調整後的詞頻,以及預設的各關鍵詞反文檔頻率(inversedocumentfrequency,簡稱idf)值,確定各文檔中的各關鍵詞的權重;
對各文檔中的各關鍵詞的權重進行歸一化處理,得到各文檔中各關鍵詞歸一化處理後的權重。
如上所述的方法中,所述根據各文檔中的各關鍵詞的權重,確定各文檔中的各句子的權重,包括:
根據各文檔中各關鍵詞在所屬句子中的出現次數,以及各關鍵詞的權重, 確定各文檔中各句子的權重;
確定各關鍵詞所屬的句子,在句子所歸屬的文檔中的第二出現位置信息;
根據各關鍵詞所屬的句子的第二出現位置信息,確定與第二出現位置信息對應的第二調整值;
根據各文檔中的各句子的第二調整值,調整各文檔中的各句子的權重;
對各文檔中各句子調整後的權重,進行歸一化處理,得到各文檔中的各句子歸一化處理後的權重。
如上所述的方法中,所述根據各文檔中的各句子的權重和各句子的哈希值,確定各文檔的向量空間,包括:
將具有相同哈希值的句子確定為相同的句子,將相同的句子的權重累加;
將各文檔中各句子累加後的權重,映射至各文檔中各句子的哈希值的向量空間中,得到各文檔的向量空間。
本發明的另一方面是提供一種相似文檔的判定裝置,包括:
獲取模塊,用於對各文檔進行分詞處理,分別獲取各文檔中的各個關鍵詞;
第一權重確定模塊,用於統計各文檔中的各關鍵詞在所歸屬的文檔中的詞頻,根據各文檔中各關鍵詞的詞頻,確定各文檔中的各關鍵詞的權重;
第二權重確定模塊,用於根據各文檔中的各關鍵詞的權重,確定各文檔中的各句子的權重;
哈希值確定模塊,用於確定各文檔中的各句子的哈希值;
向量確定模塊,用於根據各文檔中的各句子的權重和各句子的哈希值,確定各文檔的向量空間;
計算模塊,用於根據各文檔的向量空間,確定各文檔與所有文檔中的其他文檔之間的夾角餘弦值;
判定模塊,用於根據各文檔與所有文檔中的其他文檔之間的夾角餘弦值,確定各文檔之間的相似度。
如上所述的裝置中,所述獲取模塊,具體用於:
對各文檔進行分詞處理,並對分詞處理後得到的詞進行詞性標註,以獲取各文檔中的各個關鍵詞,其中,所述關鍵詞為文檔中的名詞和動詞。
如上所述的裝置中,所述第一權重確定模塊,包括:
統計子模塊,用於統計各文檔中的各關鍵詞在所歸屬的文檔中的詞頻;
第一位置確定子模塊,用於確定各關鍵詞在所歸屬的文檔中的第一出現位置信息;
第一調整值確定子模塊,用於根據各文檔中各關鍵詞的第一出現位置信息,確定與第一出現位置信息對應的第一調整值;
第一調整子模塊,用於根據各文檔中的各關鍵詞的第一調整值,調整各文檔中各關鍵詞的詞頻;
第一權重確定子模塊,用於根據各文檔中各關鍵詞調整後的詞頻,以及預設的各關鍵詞idf值,確定各文檔中的各關鍵詞的權重;
第一歸一化子模塊,用於對各文檔中的各關鍵詞的權重進行歸一化處理,得到各文檔中各關鍵詞歸一化處理後的權重。
如上所述的裝置中,所述第二權重確定模塊,包括:
第二權重確定子模塊,用於根據各文檔中各關鍵詞在所屬句子中的出現次數,以及各關鍵詞的權重,確定各文檔中各句子的權重;
第二位置確定子模塊,用於確定各關鍵詞所屬的句子,在句子所歸屬的文檔中的第二出現位置信息;
第二調整值確定子模塊,用於根據各關鍵詞所屬的句子的第二出現位置信息,確定與第二出現位置信息對應的第二調整值;
第二調整子模塊,用於根據各文檔中的各句子的第二調整值,調整各文檔中的各句子的權重;
第二歸一化子模塊,用於對各文檔中各句子調整後的權重,進行歸一化處理,得到各文檔中的各句子歸一化處理後的權重。
如上所述的裝置中,所述向量確定模塊,具體用於:
將具有相同哈希值的句子確定為相同的句子,將相同的句子的權重累加;
將各文檔中各句子累加後的權重,映射至各文檔中各句子的哈希值的向量空間中,得到各文檔的向量空間。
本實施例通過獲取各文檔中的各個關鍵詞,通過統計各文檔中各關鍵詞的詞頻,可以確定各文檔中的各關鍵詞的權重;然後根據各文檔中的各關鍵詞的權重,確定出各文檔中的各句子的權重;根據各文檔中的各句子的權重,以及計算出的各文檔的各句子的哈希值,去確定各文檔的向量空間;對於所 有文檔中的兩兩文檔進行向量空間的夾角餘弦值的計算,進而確定出各文檔與所有文檔中的其他文檔之間的夾角餘弦值;當兩兩文檔之間的夾角餘弦值越大時,兩篇文檔的相似度越大,進而確定出各文檔之間的相似度。從而基於文檔中的各詞語的權重、以及文檔中的各句子的權重,綜合考量各文檔是否相似;根據各文檔的向量空間,計算兩兩文檔之間的夾角餘弦值;當兩篇文檔的夾角餘弦值大於等於預設夾角餘弦值時,則確定兩篇文檔之間是相似的,當夾角餘弦值越大,兩篇文檔的相似度越高;進而可以較為準確的判斷各文檔是否相似,準確的判定出文檔的相似度。
附圖說明
圖1為本發明實施例一提供的相似文檔的判定方法的流程圖;
圖2為本發明實施例二提供的相似文檔的判定方法的流程圖;
圖3為本發明實施例三提供的相似文檔的判定裝置的結構示意圖;
圖4為本發明實施例四提供的相似文檔的判定裝置的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
圖1為本發明實施例一提供的相似文檔的判定方法的流程圖,如圖1所示,本實施例的方法包括:
步驟101、對各文檔進行分詞處理,分別獲取各文檔中的各個關鍵詞。
在本實施例中,具體的,獲取到各文檔之後,對各文檔分別進行分詞處理,從而得到各文檔中的詞語。然後確定出各文檔中的各個關鍵詞,具體來說,可以按照預設的標準確定文檔中哪些詞或哪種詞為關鍵詞,或者可以確定文檔中的名詞、動詞和形容詞為文檔的關鍵詞。
舉例來說,對於一篇文檔,文檔中具有多個句子,不同數量的句子構成了各個段落,一個句子中具有多次詞語;對文檔進行分詞處理之後,可以獲 取該文檔的關鍵詞「聚類」、「圖像」、「處理」、「閾值」等等。
步驟102、統計各文檔中的各關鍵詞在所歸屬的文檔中的詞頻,根據各文檔中各關鍵詞的詞頻,確定各文檔中的各關鍵詞的權重。
在本實施例中,具體的,統計出一篇文檔中的各關鍵詞在該文檔中的出現次數,關鍵詞的出現次數為關鍵詞的詞頻,對各文檔分別進行關鍵詞的詞頻統計,進而計算出各文檔中的各關鍵詞的詞頻。
然後根據各文檔中的各關鍵詞的詞頻,計算出各文檔中的各關鍵詞的權重;具體來說,可以將關鍵詞的詞頻,作為關鍵詞的權重;也可以將關鍵詞的詞頻進行歸一化處理之後,將歸一化處理之後的詞頻作為關鍵詞的權重;也可以對關鍵詞的詞頻,進行預設算法的處理之後,將處理後的詞頻作為關鍵詞的權重。
舉例來說,對於一篇文檔,該文檔的關鍵詞「聚類」、「圖像」、「處理」、「閾值」;「聚類」的出現次數為50次,則「聚類」的詞頻為50,「聚類」的權重為0.2;「圖像」的出現次數為100次,則「圖像」的詞頻為100,「圖像」的權重為0.5;「處理」的出現次數為30次,則「處理」的詞頻為30,「處理」的權重為0.1;「閾值」的出現次數為80次,則「閾值」的詞頻為80,「閾值」的權重為0.3。
步驟103、根據各文檔中的各關鍵詞的權重,確定各文檔中的各句子的權重。
在本實施例中,具體的,各文檔的各句子中具有關鍵詞,不同的句子具有不同數量的關鍵詞。可以將各文檔中的各關鍵詞的權重,與各關鍵詞在所屬句子中的出現次數,進行相乘求和,從而計算出各文檔中的各句子的權重。
步驟104、確定各文檔中的各句子的哈希值。
在本實施例中,具體的,可以採用中文名為消息摘要算法第五版(messagedigestalgorithmmd5,簡稱md5)方法,或者採用murmurhash方法,計算出各文檔中各句子的哈希值,即hash值。
具體來說,可以採用md5或者採用murmurhash方法,對於每一篇文檔計算出一個各句子的哈希值的向量空間,從而每一篇文檔具有一個哈希值的向量空間,其大小是較大的,為n維度的向量空間,n是正整數,可以是26維度的向量空間;每一個句子都具有一個哈希值。
步驟105、根據各文檔中的各句子的權重和各句子的哈希值,確定各文 檔的向量空間。
在本實施例中,具體的,根據各文檔中的每個句子都具有一個權重,同時具有一個哈希值,句子的哈希值代表了句子在哈希值的向量空間中的位置。
將各文檔中的各句子的權重,根據各句子的哈希值,映射到各文檔的哈希值的向量空間中去,從而可以構成具有了具體值的各文檔的向量空間。各文檔的向量空間的維度相同。
舉例來說,文檔中有5個句子,計算出各句子的哈希值,從而可以得到該文檔的哈希值的向量空間[0,0,0,0,0],5個句子分別對應了該向量空間中的5個維度的位置;5個句子的權重為0.5、0.3、0.2、0.08、0.02,將5個句子的權重映射到該向量空間中,可以得到該文檔的向量空間[0.5,0.3,0.2,0.08,0.02]。
步驟106、根據各文檔的向量空間,確定各文檔與所有文檔中的其他文檔之間的夾角餘弦值。
在本實施例中,具體的,在得到了各文檔的向量空間之後,對兩兩文檔分別進行夾角餘弦值的計算,從而可以得到一篇文檔與所有文檔中其他文檔之間的夾角餘弦值,進而確定出各文檔與所有文檔中的其他文檔之間的夾角餘弦值。
舉例來說,對於某兩篇文檔,一篇文檔的向量空間為(x1,x2,…xk,…xn),另一篇文檔的向量空間為(y1,y2,…yk,…yn),從而可以計算出兩篇文檔的夾角餘弦值為其中,k、n都是正整數。
步驟107、根據各文檔與所有文檔中的其他文檔之間的夾角餘弦值,確定各文檔之間的相似度。
在本實施例中,具體的,各文檔與所有文檔中的其他文檔之間的夾角餘弦值,為各文檔與所有文檔中的其他文檔之間相似度,即一篇文檔d1與另一篇文檔d2之間的夾角餘弦值cosθ,為兩篇文檔之間的相似度sim(d1,d2)。
具體來說,對於兩篇文檔,可以計算出兩篇文檔之間的夾角餘弦值,當夾角餘弦值越大,兩篇文檔的相似度越高;當夾角餘弦值越小,兩篇文檔的相似度越低。可以設定一個預設夾角餘弦值,當兩篇文檔的夾角餘弦值大於等於預設夾角餘弦值時,則確定兩篇文檔之間是相似的。依次類推,可以根 據各文檔與所有文檔中的其他文檔之間的夾角餘弦值,確定出各文檔之間的相似度,確定各文檔之間是否相似。
本實施例通過獲取各文檔中的各個關鍵詞,通過統計各文檔中各關鍵詞的詞頻,可以確定各文檔中的各關鍵詞的權重;然後根據各文檔中的各關鍵詞的權重,確定出各文檔中的各句子的權重;根據各文檔中的各句子的權重,以及計算出的各文檔的各句子的哈希值,去確定各文檔的向量空間;對於所有文檔中的兩兩文檔進行向量空間的夾角餘弦值的計算,進而確定出各文檔與所有文檔中的其他文檔之間的夾角餘弦值;當兩兩文檔之間的夾角餘弦值越大時,兩篇文檔的相似度越大,進而確定出各文檔之間的相似度。從而基於文檔中的各詞語的權重、以及文檔中的各句子的權重,綜合考量各文檔是否相似;根據各文檔的向量空間,計算兩兩文檔之間的夾角餘弦值;當兩篇文檔的夾角餘弦值大於等於預設夾角餘弦值時,則確定兩篇文檔之間是相似的,當夾角餘弦值越大,兩篇文檔的相似度越高;進而可以較為準確的判斷各文檔是否相似,準確的判定出文檔的相似度。
圖2為本發明實施例二提供的相似文檔的判定方法的流程圖,如圖2所示,在實施例一的基礎上,本實施例的方法中,步驟101,具體包括:
對各文檔進行分詞處理,並對分詞處理後得到的詞進行詞性標註,以獲取各文檔中的各個關鍵詞,其中,關鍵詞為文檔中的名詞和動詞。
在本實施例中,具體的,各獲取到的各文檔進行分詞處理,可以獲取各位文檔中的各個詞;將對得到的各文檔中的各個詞進行詞性識別和詞性標註。對於一篇文檔而言,文檔中具有動詞、名詞、形容詞、數詞、代詞、助詞、連詞、介詞等等,對文檔中的詞進行詞性標註。
形容詞、代詞、助詞、連詞、介詞等等這些詞性的詞,對於判定文檔的相似度不具有較大判定價值和判定意義,從而可以將各文檔中的名詞、動詞,或者將各文檔中的名詞、動詞、數詞,作為各文檔的關鍵詞。進而對各文檔中的詞進行篩選,將各文檔中的名詞、動詞,或者將各文檔中的名詞、動詞、數詞,作為各文檔的各關鍵詞。
步驟102,包括:
步驟1021、統計各文檔中的各關鍵詞在所歸屬的文檔中的詞頻。
在本實施例中,具體的,計算出各文檔中的各關鍵詞,在各自歸屬的文 檔中的出現次數,關鍵詞的出現次數為關鍵詞的詞頻。對各文檔分別進行關鍵詞的詞頻統計,進而計算出各文檔中的各關鍵詞的詞頻。
步驟1022、確定各關鍵詞在所歸屬的文檔中的第一出現位置信息。
在本實施例中,具體的,對於各文檔來說,確定各文檔的各關鍵詞在所歸屬的文檔中的第一出現位置信息。第一出現位置信息包括了句首、句中、句尾,或者第一出現位置信息包括了段首、段中、段尾等等。
舉例來說,對於一篇文檔,文檔具有關鍵詞a,可以確定關鍵詞a是出現在文檔中的段首,或者確定出關鍵詞a出現在所屬句子的句中。
步驟1023、根據各文檔中各關鍵詞的第一出現位置信息,確定與第一出現位置信息對應的第一調整值。
在本實施例中,具體的,對於各關鍵詞的第一出現位置信息,設置與第一出現位置信息對應的第一調整值。
舉例來說,第一出現位置信息為句首,第一調整值為累加2;第一出現位置信息為句中,第一調整值為累加1;第一出現位置信息為句尾,第一調整值為累加0;第一出現位置信息為段首,第一調整值為累加3;第一出現位置信息為段中,第一調整值為累加2;第一出現位置信息為段尾,第一調整值為累加0。
步驟1024、根據各文檔中的各關鍵詞的第一調整值,調整各文檔中各關鍵詞的詞頻。
在本實施例中,具體的,根據步驟1023中設置的各關鍵詞的第一調整值,調整各文檔中各關鍵詞的詞頻,從而使得各文檔中各關鍵詞的詞頻為關鍵詞的出現次數與第一調整值的綜合值。
舉例來說,某一個關鍵詞a,關鍵詞a的詞頻為b,b為正整數,第一出現位置信息為句首,第一調整值為累加2,從而關鍵詞a調整後的詞頻為b+2;第一出現位置信息為句中,第一調整值為累加1,從而關鍵詞a調整後的詞頻為b+1;第一出現位置信息為句尾,第一調整值為累加0,從而關鍵詞a調整後的詞頻為b。或者,某一個關鍵詞a,關鍵詞a的詞頻為b,第一出現位置信息為段首,第一調整值為累加3,從而關鍵詞a調整後的詞頻為b+3;第一出現位置信息為段中,第一調整值為累加2,從而關鍵詞a調整後的詞頻為b+2;第一出現位置信息為段尾,第一調整值為累加0,從而 關鍵詞a調整後的詞頻為b。
步驟1025、根據各文檔中各關鍵詞調整後的詞頻,以及預設的各關鍵詞idf值,確定各文檔中的各關鍵詞的權重。
在本實施例中,具體的,對於各關鍵詞,都統一設置了idf值。對於較為常見的詞來說,它的idf值較低;對於不常見的詞來說,它的idf值較高。
將各文檔中各關鍵詞調整後的詞頻,對應的乘以各關鍵詞的idf值,可以得到各文檔中的各關鍵詞的權重。
舉例來說,某一個關鍵詞a,關鍵詞a的詞頻為b,關鍵詞a為一個常見詞,從而它的idf值c較小,可以計算得到關鍵詞a的權重為b*c。
步驟1026、對各文檔中的各關鍵詞的權重進行歸一化處理,得到各文檔中各關鍵詞歸一化處理後的權重。
在本實施例中,具體的,然後對於所有文檔的各關鍵詞的權重進行歸一化處理,從而將所有關鍵詞的權重設定在一個範圍值內。進而得到各文檔中各關鍵詞歸一化處理後的權重。
舉例來說,將關鍵詞的權重的值,歸一化在0~1以內,或者歸一化在0~100以內。
步驟103,包括:
步驟1031、根據各文檔中各關鍵詞在所屬句子中的出現次數,以及各關鍵詞的權重,確定各文檔中各句子的權重。
在本實施例中,具體的,統計出各文檔中的各關鍵詞在所屬句子中的出現次數;然後將各文檔中的各關鍵詞的權重,與各關鍵詞在所屬句子中的出現次數,進行相乘求和,從而計算出各文檔中的各句子的權重。
對於一個句子來說,各關鍵詞的數量越多,各關鍵詞的權重之和越大,進而句子的權重也就越大。
舉例來說,對於一個句子e,具有關鍵詞a1、a2、a3,各關鍵詞在該句子e中的出現次數為3次、2次、1次,從而可以得到該句子e的權重為a1×3+a2×2+a3×1。
步驟1032、確定各關鍵詞所屬的句子,在句子所歸屬的文檔中的第二出現位置信息。
在本實施例中,具體的,確定出各文檔中的各關鍵詞的句子,在各自歸 屬的文檔中的第二出現位置信息。第二出現位置信息包括了段首、段中、段尾;即句子出現在文檔的段首、句子出現在文檔的段中、句子出現在文檔的段尾。或者,第二出現位置信息包括了文檔開始、文檔中部、文檔結尾;即句子出現在文檔的開始、句子出現在文檔的中部、句子出現在文檔的結尾。
舉例來說,對於一篇文檔中某一個句子e,可以確定句子e是出現在文檔中的段首。
步驟1033、根據各關鍵詞所屬的句子的第二出現位置信息,確定與第二出現位置信息對應的第二調整值。
在本實施例中,具體的,對於各關鍵詞所屬的句子的第二出現位置信息,設置與第二出現位置信息對應的第二調整值。
舉例來說,第二出現位置信息為段首,第二調整值為1.5;第二出現位置信息為段中,第二調整值為1.2;第二出現位置信息為段尾,第二調整值為0.8;第二出現位置信息為文檔開始,第二調整值為累加3;第二出現位置信息為文檔中部,第二調整值為累加2;第二出現位置信息為文檔結尾,第二調整值為累加0。
步驟1034、根據各文檔中的各句子的第二調整值,調整各文檔中的各句子的權重。
在本實施例中,具體的,根據步驟1033中設置的各句子的第二調整值,調整各文檔中各句子的權重,從而得到各文檔中各句子調整後的權重,句子調整後的權重為步驟1031中確定的句子的權重與第二調整值的綜合值。
舉例來說,某一個句子e,句子e的權重為f,第二出現位置信息為段首,第二調整值為1.5,句子e調整後的權重為f*1.5;第二出現位置信息為段中,第二調整值為1.2,句子e調整後的權重為f*1.2;第二出現位置信息為段尾,第二調整值為0.8,句子e調整後的權重為f*0.8;第二出現位置信息為文檔開始,第二調整值為累加3,句子e調整後的權重為f+3;第二出現位置信息為文檔中部,第二調整值為累加2,句子e調整後的權重為f+2;第二出現位置信息為文檔結尾,第二調整值為累加0,句子e調整後的權重依然為f。
步驟1035、對各文檔中各句子調整後的權重,進行歸一化處理,得到各文檔中的各句子歸一化處理後的權重。
在本實施例中,具體的,然後對於所有文檔的各句子調整後的權重進行歸一化處理,從而將所有句子調整後的權重設定在一個範圍值內。進而得到各文檔中的各句子歸一化處理後的權重。
舉例來說,將句子調整後的權重的值,歸一化在0~1以內,或者歸一化在0~100以內。
本實施例通過將各文檔中的名詞、動詞等作為關鍵詞,進行關鍵詞的詞頻的統計,從而保證去除掉那些意義較小的詞性的詞,進而提升計算方法的速度以及準確性;通過各文檔中的各關鍵詞的詞頻、各關鍵詞的出現位置、各關鍵詞的idf值,得到各文檔中的各關鍵詞的權重,對關鍵詞進行了綜合考量;並通過各文檔中各關鍵詞在所屬句子中的出現次數,各關鍵詞的權重,以及各句子的出現位置,確定各文檔中的各句子的權重,也對各句子進行了綜合考量。從而基於各關鍵詞的詞頻、出現位置、idf值,綜合得到各關鍵詞的權重,基於各關鍵詞在各句子中的出現次數、各關鍵詞的權重、各句子的出現位置,綜合得到各句子的權重,進而基於文檔中的各詞語的權重、以及文檔中的各句子的權重,綜合考量各文檔是否相似,得到各文檔向量空間;根據各文檔的向量空間,計算兩兩文檔之間的夾角餘弦值;當兩篇文檔的夾角餘弦值大於等於預設夾角餘弦值時,則確定兩篇文檔之間是相似的,當夾角餘弦值越大,兩篇文檔的相似度越高;進而可以較為準確的判斷各文檔是否相似,準確的判定出文檔的相似度。
進一步的,在上述實施例的基礎上,步驟105的具體實施方式,包括:
將具有相同哈希值的句子確定為相同的句子,將相同的句子的權重累加;
將各文檔中各句子累加後的權重,映射至各文檔中各句子的哈希值的向量空間中,得到各文檔的向量空間。
在本實施方式中,具體的,各文檔中的每個句子都具有一個權重,同時具有一個哈希值。句子的哈希值相同,則確定這些句子為相同的句子;然後將相同的句子的權重累加。同時,句子的哈希值還代表了句子在哈希值的向量空間中的位置。
將各文檔中的各句子累加後的權重,根據各句子的哈希值,映射到各文檔的哈希值的向量空間中去,從而可以構成具有了具體值的各文檔的向量空間;各文檔的向量空間的維度相同。
舉例來說,文檔中有5個句子,計算出各句子的哈希值,5個句子的哈希值分別為h1、h2、h3、h4、h5,並得到該文檔的哈希值的向量空間[0,0,0,0,0],5個句子分別對應了該向量空間中的5個維度的位置;5個句子的權重為0.5、0.3、0.2、0.08、0.02;第一個句子的哈希值h1與第二句子的哈希值h2相同,則第一個句子與第二句子為相同句子,將第二句子的權重累加到第一句子的權重上,然後將5個句子的權重映射到該向量空間中,可以得到該文檔的向量空間[0.8,0,0.2,0.08,0.02]。
本實施方式通過根據各句子的哈希值,確定具有相同哈希值的句子確定為相同的句子,然後將相同的句子的權重累加;從而可以準確的得到各文檔中句子的權重,準確的得到各文檔的向量空間。
圖3為本發明實施例三提供的相似文檔的判定裝置的結構示意圖,如圖3所示,本實施例提供的裝置,包括:
獲取模塊31,用於對各文檔進行分詞處理,分別獲取各文檔中的各個關鍵詞;
第一權重確定模塊32,用於統計各文檔中的各關鍵詞在所歸屬的文檔中的詞頻,根據各文檔中各關鍵詞的詞頻,確定各文檔中的各關鍵詞的權重;
第二權重確定模塊33,用於根據各文檔中的各關鍵詞的權重,確定各文檔中的各句子的權重;
哈希值確定模塊34,用於確定各文檔中的各句子的哈希值;
向量確定模塊35,用於根據各文檔中的各句子的權重和各句子的哈希值,確定各文檔的向量空間;
計算模塊36,用於根據各文檔的向量空間,確定各文檔與所有文檔中的其他文檔之間的夾角餘弦值;
判定模塊37,用於根據各文檔與所有文檔中的其他文檔之間的夾角餘弦值,確定各文檔之間的相似度。
本實施例的相似文檔的判定裝置可執行本發明實施例一提供的相似文檔的判定方法,其實現原理相類似,此處不再贅述。
本實施例通過獲取各文檔中的各個關鍵詞,通過統計各文檔中各關鍵詞的詞頻,可以確定各文檔中的各關鍵詞的權重;然後根據各文檔中的各關鍵詞的權重,確定出各文檔中的各句子的權重;根據各文檔中的各句子的權重, 以及計算出的各文檔的各句子的哈希值,去確定各文檔的向量空間;對於所有文檔中的兩兩文檔進行向量空間的夾角餘弦值的計算,進而確定出各文檔與所有文檔中的其他文檔之間的夾角餘弦值;當兩兩文檔之間的夾角餘弦值越大時,兩篇文檔的相似度越大,進而確定出各文檔之間的相似度。從而基於文檔中的各詞語的權重、以及文檔中的各句子的權重,綜合考量各文檔是否相似;根據各文檔的向量空間,計算兩兩文檔之間的夾角餘弦值;當兩篇文檔的夾角餘弦值大於等於預設夾角餘弦值時,則確定兩篇文檔之間是相似的,當夾角餘弦值越大,兩篇文檔的相似度越高;進而可以較為準確的判斷各文檔是否相似,準確的判定出文檔的相似度。
圖4為本發明實施例四提供的相似文檔的判定裝置的結構示意圖,在實施例三的基礎上,如圖4所示,本實施例提供的裝置中,獲取模塊31,具體用於:
對各文檔進行分詞處理,並對分詞處理後得到的詞進行詞性標註,以獲取各文檔中的各個關鍵詞,其中,關鍵詞為文檔中的名詞和動詞。
第一權重確定模塊32,包括:
統計子模塊321,用於統計各文檔中的各關鍵詞在所歸屬的文檔中的詞頻;
第一位置確定子模塊322,用於確定各關鍵詞在所歸屬的文檔中的第一出現位置信息;
第一調整值確定子模塊323,用於根據各文檔中各關鍵詞的第一出現位置信息,確定與第一出現位置信息對應的第一調整值;
第一調整子模塊324,用於根據各文檔中的各關鍵詞的第一調整值,調整各文檔中各關鍵詞的詞頻;
第一權重確定子模塊325,用於根據各文檔中各關鍵詞調整後的詞頻,以及預設的各關鍵詞idf值,確定各文檔中的各關鍵詞的權重;
第一歸一化子模塊326,用於對各文檔中的各關鍵詞的權重進行歸一化處理,得到各文檔中各關鍵詞歸一化處理後的權重。
第二權重確定模塊33,包括:
第二權重確定子模塊331,用於根據各文檔中各關鍵詞在所屬句子中的出現次數,以及各關鍵詞的權重,確定各文檔中各句子的權重;
第二位置確定子模塊332,用於確定各關鍵詞所屬的句子,在句子所歸屬的文檔中的第二出現位置信息;
第二調整值確定子模塊333,用於根據各關鍵詞所屬的句子的第二出現位置信息,確定與第二出現位置信息對應的第二調整值;
第二調整子模塊334,用於根據各文檔中的各句子的第二調整值,調整各文檔中的各句子的權重;
第二歸一化子模塊335,用於對各文檔中各句子調整後的權重,進行歸一化處理,得到各文檔中的各句子歸一化處理後的權重。
向量確定模塊35,具體用於:
將具有相同哈希值的句子確定為相同的句子,將相同的句子的權重累加;
將各文檔中各句子累加後的權重,映射至各文檔中各句子的哈希值的向量空間中,得到各文檔的向量空間。
本實施例的相似文檔的判定裝置可執行本發明實施例二以及上述實施方式中提供的相似文檔的判定方法,其實現原理相類似,此處不再贅述。
本實施例通過將各文檔中的名詞、動詞等作為關鍵詞,進行關鍵詞的詞頻的統計,從而保證去除掉那些意義較小的詞性的詞,進而提升計算方法的速度以及準確性;通過各文檔中的各關鍵詞的詞頻、各關鍵詞的出現位置、各關鍵詞的idf值,得到各文檔中的各關鍵詞的權重,對關鍵詞進行了綜合考量;並通過各文檔中各關鍵詞在所屬句子中的出現次數,各關鍵詞的權重,以及各句子的出現位置,確定各文檔中的各句子的權重,也對各句子進行了綜合考量。從而基於各關鍵詞的詞頻、出現位置、idf值,綜合得到各關鍵詞的權重,基於各關鍵詞在各句子中的出現次數、各關鍵詞的權重、各句子的出現位置,綜合得到各句子的權重,進而基於文檔中的各詞語的權重、以及文檔中的各句子的權重,綜合考量各文檔是否相似;通過根據各句子的哈希值,確定具有相同哈希值的句子確定為相同的句子,然後將相同的句子的權重累加,從而可以準確的得到各文檔中句子的權重,準確的得到各文檔的向量空間;根據各文檔的向量空間,計算兩兩文檔之間的夾角餘弦值;當兩篇文檔的夾角餘弦值大於等於預設夾角餘弦值時,則確定兩篇文檔之間是相似的,當夾角餘弦值越大,兩篇文檔的相似度越高;進而可以較為準確的判斷各文檔是否相似,準確的判定出文檔的相似度。
本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成。前述的程序可以存儲於一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:rom、ram、磁碟或者光碟等各種可以存儲程序代碼的介質。
最後應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。