網頁去重(三)之特徵值的提取

2021-07-09 03:55:06 字數 3096 閱讀 3616

網頁去重(三)特徵值

一、      什麼是特徵值

tfidf

tf高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。

tfidf

實際上是:

tf *idf,tf

詞頻(termfrequency)

,idf

逆向檔案頻率

(inversedocument frequency)。tf

表示詞條在文件

d中出現的頻率。

idf的主要思想是:如果包含詞條

t的文件越少,也就是

n越小,

idf越大,則說明詞條

t具有很好的類別區分能力。如果某一類文件

c中包含詞條

t的文件數為

m,而其它類包含

t的文件總數為

k,顯然所有包含

t的文件數

n=m+k,當m

大的時候,

n也大,按照

idf公式得到的

idf的值會小,就說明該詞條

t類別區分能力不強。但是實際上,如果乙個詞條在乙個類的文件中頻繁出現,則說明該詞條能夠很好代表這個類的文字的特徵,這樣的詞條應該給它們賦予較高的權重,並選來作為該類文字的特徵詞以區別與其它類文件。這就是

idf的不足之處

. 在乙份給定的檔案裡,詞頻

term frequency,tf

)指的是某乙個給定的詞語在該檔案中出現的頻率。這個數字是對詞數(term count)

的歸一化,以防止它偏向長的檔案。(同乙個詞語在長檔案裡可能會比短檔案有更高的詞數,而不管該詞語重要與否。)對於在某一特定檔案裡的詞語來說,它的重要性可表示為:

·        

以上式子中分子是該詞在檔案中的出現次數,而分母則是在檔案中所有字詞的出現次數之和。

逆向檔案頻率

inverse document frequency

,idf

)是乙個詞語普遍重要性的度量。某一特定詞語的

idf,可以由總檔案數目除以包含該詞語之檔案的數目,再將得到的商取

對數得到:

·        

·            

|d|:語料庫中的檔案總數

·            

:包含詞語的檔案數目(即的檔案數目)如果該詞語不在語料庫中,就會導致分母為零,因此一般情況下使用

作為分母。

idf公式分母

然後再計算tf與

idf的乘積。

·        

某一特定檔案內的高詞語頻率,以及該詞語在整個檔案集合中的低檔案頻率,可以產生出高權重的

tf-idf

。因此,

tf-idf

傾向於過濾掉常見的詞語,保留重要的詞語。

[2]例1

有很多不同的數學公式可以用來計算

tf-idf

。這邊的例子以上述的

數學公式

來計算。詞頻

(tf)

是一詞語出現的次數除以該檔案的總詞語數。假如一篇檔案的總詞語數是

100個,而詞語「母牛

」出現了

3次,那麼「母牛

」一詞在該檔案中的詞頻就是

3/100=0.03

。乙個計算檔案頻率

(idf)

的方法是測定有多少份檔案出現過「母牛

」一詞,然後除以檔案集裡包含的檔案總數。所以,如果「母牛

」一詞在

1,000

份檔案出現過,而檔案總數是

10,000,000

份的話,其逆向檔案頻率就是

log(10,000,000 / 1,000)=4

。最後的

tf-idf

的分數為

0.03* 4=0.12。

二、      演算法實現

2.1  獲取tf演算法並排序:

public static voidgettf(string inputfile, string outputfile)

stringutil.string2file(result,outputfile);

}*/ public static voidsortwords(string inputfile, string outputfile)

stringutil.string2file(result,outputfile);

}

截圖:

2.2獲取df演算法:

/**

* 獲取單個檔案的df

*@paraminputfilestr

*@paraminputpathall

*@paramoutputdirstr

*@throwsexception */

public

static

voidgetdf(string inputfilestr,string inputpathall,string outputdirstr)throwsexception//for

result += temp+""+df+constantstring.win_nextline

;stringutil.string2file(result,outputfilestr);

}catch(exception e)catch(exception e) {

e.printstacktrace();

原文:

特徵值之積等於矩陣行列式 特徵值之和等於矩陣的跡

對於 n 階方陣 a 我們可以解 lambda 的 n 次方程 a lambda e 0 來求 a 的特徵值。又因為在複數域內,a 一定存在 n 個特徵值 lambda 1,lambda 2.lambda n 使上式成立。因此作為 lambda 的 n 次多項式,a lambda e 可以寫成 be...

20171029機器學習之特徵值選擇

在我們對於有很多特徵值資料處理時,往往需要找到特徵值對於結果y權重最大的幾個,便於做降維。於是我們可以用以下這段 github coding utf 8 import numpy as np import matplotlib.pyplot as plt import matplotlib as m...

搜尋引擎手記(三)之網頁的去重

015 年4月1日 星期二 晴 南風 今天是愚人節,我們給同事過愚人節,爬蟲也讓我們技術部過了愚人節。通過對抓取資料的分析,發現有20 的資料都是重複資料。開會討論,原來有兩個問題,乙個爬蟲引擎有重大bug 另外乙個問題,竟然對網頁沒有做去重處理。啊!my god!通過和群裡進行技術交流,大概明白了...