1. 程式人生 > >TF-IDF演算法實現關鍵詞抽取

TF-IDF演算法實現關鍵詞抽取

    TF-IDF演算法是關鍵詞提取演算法中基礎,並且有效的一種演算法,實現簡單效果比較明顯,在使用中非常廣泛。假設現在有一批“短文字“,比如很多條一句話的新聞。現在需要提取這些一句話新聞的關鍵詞。我們可以採取tf-idf演算法來實現。TF-IDF(term frequency - inverse document frequency) 是一種統計方法。可以用來評估一個詞對於一個檔案集或一個語料庫中的其中一份檔案的重要程度。字詞的重要性隨著它在檔案中出現的次數呈正比增加,但同時也會隨著它在語料庫中出現的頻率呈反比下降。    TF-IDF的主要原理是:如果某個詞或短語在一篇文章中出現的頻率tf非常高,並在其他文章中出現的頻率很低,即idf低,那麼我們就認為這個詞或短語具有很好的類別區分能力。適合用來分類。那麼對於這篇文章來說,這個詞可以作為本篇文章的關鍵詞。TF-IDF具體演算法如下:TFIDFi,j = TFi,j * IDFi       其中TFIDFi,j 是指詞i 相對於文件j的重要性值。tfi,j 指的是某個給定的詞語在指定文件中出現的次數佔比。即給定的詞語在該文件中出現的頻率。這個數字是對term count的歸一化,防止它偏向長文件。計算公式為:tfi,j =ni,j / sum(nk,j)   其中ni,j 是這個詞在dj  中出現的次數。  sum(nk,j是在檔案d中所有的字詞出現的次數和。idf 是指詞 i 的你想檔案頻率。使用總文件資料除以包含指定詞語的文件的數目。 再降得到的商取對數。 這是一種度量詞語重要性的指標。 計算公式為:idfi
 = log( |D| / |{j: t屬於dj}| )    其中|D|為語料庫中的文件數。 |{j: t屬於dj}| 為包含詞語ti 的文件數目。    TF-IDF 演算法會傾向於選出某一特定文件內的高頻詞語,同時該詞語在整個文件集合中分佈是比較集中的。因此,TF-IDF傾向於過濾掉常見的詞語,保留“獨有”詞語。但是這也造成了tf-idf的缺陷。 因為IDF的主要思想是:如果包含詞條t的文件越少,也就是n越小,idf越大,則說明詞條t 具有很好的類別區分能力。如果某一文件C中包含詞條t的文件數為m, 而其他類包含t的文件總數為k,顯然所有包含t的文件數n = m + k, 當m大的時候,n也大,按照IDF公式得到的IDF的值會小,就說明該詞條t 類別區分能力不強。但實際上,如果一個詞條在一個類的文件中頻繁出現,則說明該詞條能夠很好地代表這個類的文字特徵,這樣的詞條應該給它們賦予較高的權重,並選來作為該類文字的特徵詞,以區別於其他類的文件。比如對於如下幾個短文字:1、鮮花多少錢?2、白百合多少錢?3、月季多少錢?4、香蕉多少錢?    如果按照TF-IDF演算法,鮮花、香蕉這些主體詞會成為關鍵詞,但是從這些語句的總體來看,他們又都屬於詢問價格的型別,所以“多少錢”應該成為關鍵詞。這就是IDF的不足之處。改進的方法可以通過改變文件結構,比如將上述短文字歸併為一個文件,這樣就可以在增加TF值的同時,也增加IDF值。但是這樣就會增加模型的計算成本,需要大量的人為經驗加入其中。

相關推薦

TF-IDF演算法實現關鍵詞抽取

    TF-IDF演算法是關鍵詞提取演算法中基礎,並且有效的一種演算法,實現簡單效果比較明顯,在使用中非常廣泛。假設現在有一批“短文字“,比如很多條一句話的新聞。現在需要提取這些一句話新聞的關鍵詞。我們可以採取tf-idf演算法來實現。TF-IDF(term frequen

python 基於TF-IDF演算法關鍵詞提取

import jiaba.analyse jieba.analyse.extract_tags(content, topK=20, withWeight=False, allowPOS=()) content:為輸入的文字 topK:為返回tf-itf權重最大的關鍵詞,預設值為20個詞 wit

第六章(1.3)自然語言處理實戰——使用tf-idf演算法實現簡單的文字聚類

一、原理 使用jieba切詞 用td-idf計算文字的詞頻和逆文件詞頻 排序選出最重要的2個或3個詞作為這段文字的id 具有相同id的文字被歸為一類 二、使用python實現簡單的文字聚類,其中使用了tf-idf演算法,jieba分詞,把相似的文字聚合在

【自然語言處理】TF-IDF演算法提取關鍵詞

自然語言處理——TF-IDF演算法提取關鍵詞 這個標題看上去好像很複雜,其實我要談的是一個很簡單的問題。 有一篇很長的文章,我要用計算機提取它的關鍵詞(Automatic Keyphrase extraction),完全不加以人工干預,請問怎樣才能正確做到? 這個問

自然語言處理——TF-IDF演算法提取關鍵詞

這個標題看上去好像很複雜,其實我要談的是一個很簡單的問題。有一篇很長的文章,我要用計算機提取它的關鍵詞(Automatic Keyphrase extraction),完全不加以人工干預,請問怎樣才能正確做到?這個問題涉及到資料探勘、文字處理、資訊檢索等很多計算機前沿領域,但是出乎意料的是,有一個非常簡單的經

TF-IDF演算法抽取中文內容的主題關鍵詞

db.ini # db [db] db_port = 3306 db_user = user db_host = localhost db_pass = pwd db_database = db main.py # -*-coding:utf-8-

關鍵詞提取演算法TF/IDF演算法

關鍵詞提取演算法一般可分為有監督學習和無監督學習兩類。 有監督的關鍵詞提取方法可以通過分類的方式進行,通過構建一個較為完善的詞表,然後判斷每個文件與詞表中的每個詞的匹配程度,以類似打標籤的方式,達到關鍵詞提取的效果。優點是可以獲得較高的精度,缺點是需要大批量的標註資料,並且要對詞表進行人

關鍵詞提取/關鍵字提取之TF-IDF演算法

TF-IDF(term frequency–inverse document frequency)是一種用於資訊檢索與資訊探勘的常用加權技術。TF的意思是詞頻(Term - frequency),  IDF的意思是逆向檔案頻率(inverse Document frequency)。TF-IDF是一

elasticsearch核心知識---52.倒排索引組成結構以及實現TF-IDF演算法

首先實現了採用java 簡易的實現TF-IDF演算法package matrixOnto.Ja_9_10_va; import com.google.common.base.Preconditions; import org.nutz.lang.Strings; impo

解析TF-IDF演算法原理:關鍵詞提取,自動摘要,文字相似度計算

Abstract:TF-IDF演算法是一種常用的詞頻統計方法,常被用於關鍵詞提取、文字摘要、文章相似度計算等。 TF-IDF的演算法思路 TF詞頻(Text Frequency):統計出現次數最多的詞 IDF逆文件頻率(Inverse Document Frequ

TF-IDF演算法自動提取關鍵詞

前言 關鍵詞提取可以是說是NLP中比較常見研究方向,這個涉及到資料探勘、文字處理、資訊檢索等很多計算機前沿領域。但今天我們就瞭解一個簡單的演算法來提取關鍵詞。 那麼我們該如何實現計算機自動提取關鍵詞呢? 讓我們從一個例項開始講起。假定現在有一篇長文《中國的

TF-IDF提取文章關鍵詞演算法

一、TF-IDF簡介 TF-IDF(terms frequency-inverse document frequency)是一種用於資訊檢索與文字挖掘的常用加權技術。TF-IDF是一種統計方法,用來評

基於TF-IDF演算法的短標題關鍵詞提取

                                         

TF-IDF演算法及其程式設計實現

我們很容易發現,如果一個關鍵詞只在很少的網頁中出現,我們通過它就容易鎖定搜尋目標,它的權重也就應該大。反之如果一個詞在大量網頁中出現,我們看到它仍然不很清楚要找什麼內容,因此它應該小。概括地講,假定一個關鍵詞 w 在 Dw 個網頁中出現過,那麼 Dw 越大,w的權重越小,反之亦然。在資訊檢索中,使用最多的

文字特徵選擇——TF-IDF演算法(Python3實現

1、TF-IDF演算法介紹        TF-IDF(term frequency–inverse document frequency,詞頻-逆向檔案頻率)是一種用於資訊檢索(information retrieval)與文字挖掘(text mining)的常用加權技術

TF-IDF演算法-Python實現(附原始碼)

一、背景         TF-IDF演算法全稱 termfrequency–inverse document frequency,是一種用於資訊檢索與資訊探勘的常用加權技術。它的演算法複雜度並不高,但能很好的滿足搜尋高相關度文件的需求。由於它的高效性,TF-IDF 模型在搜尋引擎等實際應用中被廣泛使用

Alink漫談(六) : TF-IDF演算法實現

# Alink漫談(六) : TF-IDF演算法的實現 [TOC] ## 0x00 摘要 Alink 是阿里巴巴基於實時計算引擎 Flink 研發的新一代機器學習演算法平臺,是業界首個同時支援批式演算法、流式演算法的機器學習平臺。TF-IDF(term frequency–inverse documen

《數學之美》第11章—如何確定網頁和查詢的相關性(TF-IDF演算法

文章目錄 如何查詢關於“原子能的應用”的網頁? 大致思路 問題描述 解決過程 一、使用“總詞頻” 二、加入IDF權重 三、IDF概念的理論支

ElasticSearch教程——lucene的相關度評分TF&IDF演算法以及向量空間模型演算法

1、boolean model 類似and這種邏輯操作符,先過濾出包含指定term的doc query "hello world" --> 過濾 --> hello / world / hello & world bool --> must/mu

MapReduce 應用:TF-IDF 分散式實現

概述 本文要說的 TF-IDF 分散式實現,運用了很多之前 MapReduce 的核心知識點。算是 MapReduce 的一個小應用吧。 版權說明 學前導讀 演算法框架 首先我們來看一下,分散式的 TF-IDF 的演算法