當前位置:首頁 » 操作系統 » 提取關鍵詞的演算法

提取關鍵詞的演算法

發布時間: 2024-09-26 20:58:59

❶ TF-IDF 演算法

有一篇很長的文章,用計算機提取它的關鍵詞(Automatic Keyphrase extraction),完全不加以人工干預,請問怎樣才能正確做到?

"智能問答"、"企業"、"問答庫"這三個詞的出現次數一樣多。這是不是意味著,作為關鍵詞,它們的重要性是一樣的?

「企業」是很常見的詞,相對而言「智能問答」和「問答庫」不那麼常見。如果這三個詞在一篇文章的出現次數一樣多,我們有理由可以認為,「智能問答」和「問答庫」的重要程度要大於「企業」,也就是說,在關鍵詞排序方面,「智能問答「和」問答庫「應該排在」企業「前面。

需要一個重要性調整系數,衡量一個詞是不是常見詞。如果某個詞比較少見,但是它在這篇文章中多次出現,那麼它很可能就反映了這篇文章的特性,正是我們所需要的關鍵詞。

用統計學語言表達,就是在詞頻的基礎上,要對每個詞分配一個"重要性"權重。

這個權重叫做"逆文檔頻率"(Inverse Document Frequency,縮寫為IDF),它的大小與一個詞的常見程度成反比。

知道了"詞頻"(TF)和"逆文檔頻率"(IDF)以後,將這兩個值相乘,就得到了一個詞的TF-IDF值。某個詞對文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的幾個詞,就是這篇文章的關鍵詞。

需要一個語料庫(corpus),用來模擬語言的使用環境。
逆文檔頻率(IDF)= log(語料庫的文檔總數/包含該詞的文檔數+1)
如果一個詞越常見,那麼分母就越大,逆文檔頻率就越小越接近0。分母之所以要加1,是為了避免分母為0(即所有文檔都不包含該詞)。log表示對得到的值取對數。

TF-IDF=詞頻(TF)*逆文檔頻率(IDF)

TF-IDF與一個詞在文檔中的出現次數成正比,與該詞在整個語言中的出現次數成反比。所以,自動提取關鍵詞的演算法就很清楚了,就是計算出文檔的每個詞的TF-IDF值,然後按降序排列,取排在最前面的幾個詞。

自動提取關鍵詞,TF-IDF演算法還可以用於許多別的地方。比如,信息檢索時,對於每個文檔,都可以分別計算一組搜索詞("中國"、"蜜蜂"、"養殖")的TF-IDF,將它們相加,就可以得到整個文檔的TF-IDF。這個值最高的文檔就是與搜索詞最相關的文檔。

希望找到與原文章相似的其他文章,為了找出相似的文章,需要用到"餘弦相似性"(cosine similiarity)。下面,我舉一個例子來說明,什麼是"餘弦相似性"。

句子A:我喜歡吃蘋果,不喜歡吃香蕉
句子B:我不喜歡吃蘋果,也不喜歡吃香蕉
請問怎樣才能計算上面兩句話的相似程度?

基本思路是:如果這兩句話的用詞越相似,它們的內容就應該越相似。因此,可以從詞頻入手,計算它們的相似程度。

問題就變成了如何計算這兩個向量的相似程度。
我們可以把它們想像成空間中的兩條線段,都是從原點([0, 0, ...])出發,指向不同的方向。兩條線段之間形成一個夾角,如果夾角為0度,意味著方向相同、線段重合;如果夾角為90度,意味著形成直角,方向完全不相似;如果夾角為180度,意味著方向正好相反。因此,我們可以通過夾角的大小,來判斷向量的相似程度。夾角越小,就代表越相似。
以二維空間為例,上圖的a和b是兩個向量,我們要計算它們的夾角θ。餘弦定理告訴我們,可以用下面的公式求得:

coso=a_2+b_2-c_2/2ab
假定a向量是[x1, y1],b向量是[x2, y2],那麼可以將餘弦定理改寫成下面的形式:

coso=x_1x_2+y_1+y_2/sqrt()
餘弦值越接近1,就表明夾角越接近0度,也就是兩個向量越相似,這就叫"餘弦相似性"。所以,上面的句子A和句子B是很相似的,事實上它們的夾角大約為20.3度。

由此,我們就得到了"找出相似文章"的一種演算法:

如果能從3000字的文章,提煉出150字的摘要,就可以為讀者節省大量閱讀時間。由人完成的摘要叫"人工摘要",由機器完成的就叫"自動摘要"。

文章的信息都包含在句子中,有些句子包含的信息多,有些句子包含的信息少。"自動摘要"就是要找出那些包含信息最多的句子。

句子的信息量用"關鍵詞"來衡量。如果包含的關鍵詞越多,就說明這個句子越重要。Luhn提出用"簇"(cluster)表示關鍵詞的聚集。所謂"簇"就是包含多個關鍵詞的句子片段。

熱點內容
什麼是設置伺服器怎麼弄 發布:2024-11-24 14:01:59 瀏覽:333
u盤加密啟動電腦 發布:2024-11-24 13:30:44 瀏覽:906
宣片腳本詞 發布:2024-11-24 13:30:33 瀏覽:494
pythonforif一行 發布:2024-11-24 13:28:19 瀏覽:394
伺服器集群怎麼實現 發布:2024-11-24 13:26:51 瀏覽:599
秒評源碼 發布:2024-11-24 13:24:30 瀏覽:126
聯想筆記本e450c怎麼看配置 發布:2024-11-24 13:22:23 瀏覽:87
c語言如何運行程序 發布:2024-11-24 13:20:03 瀏覽:449
訪問oracle其他用戶 發布:2024-11-24 13:18:32 瀏覽:69
年青人的游戲密碼一般是什麼 發布:2024-11-24 13:17:01 瀏覽:786