1. 程式人生 > >利用資訊熵提取文章關鍵詞

利用資訊熵提取文章關鍵詞

目前,對於文章中提取關鍵詞最常用的方法莫過於TF-IDF,但是這樣提取出來的關鍵詞並不一定準確。

舉個最簡單的例子來說,在新聞中最前面出現“記者李元芳報道”,分詞後的結果是“記者、李元芳、報道”,對於這三個詞,“記者”和“報道”的經常出現,idf值一般來說可能會很低,而“李元芳”這個剛出道不久名不見經傳的無名小輩可能對google免疫,造成的結果是idf值極高。儘管“李元芳”在文章中僅出現這一次,但足以奠定它是關鍵詞老大的地位。

顯然如果把“李元芳”作為文章關鍵詞是錯誤的,至少也不應該排在前五位。於是有人想到可以用詞頻的方法來幹掉“李元芳”,文中出現一次的統統不考慮,這樣的方法在一些情況下有效,但是當文章很短,幾乎每個詞都僅出現一次的時候就提取不到任何關鍵詞了。另一種方法是幹掉idf

值很高的,但是值多高才是高這又是一個問題。

細細分析來看,之所以出現這樣的局面完全是idf在作怪。其實在求解idf的時候,需要得到每個詞詞頻,而這又需要語料來統計。顯然,語料是越多越好,無奈現實中我們得不到這麼多的語料,所以只能從特殊到一般,這雖然有道理,但是不是很準確就難說了。

為了徹底解決這個問題,應該要做到不需要使用詞頻進行關鍵詞提取。於是,聰明人士引入了資訊熵的概念,具體可以看這裡:

前面都是鋪墊,下面就說說如何在文章中利用資訊熵提取關鍵詞:

首先我們需要明確一點,一個詞之所以能稱為關鍵詞,原因就在於這個詞左右能搭配的詞很豐富,於是我們可以定義一個詞的資訊熵:

 

W代表該詞,

p代表該詞左右出現的不同詞的數目。

比如現在某篇文章中出現了兩次 A W C, 一次B W D

那麼W的左側資訊熵為:

 

2/3表示片語A3次中出現了2次,B只出現了一次,故為1/3.

W右側的資訊熵也是一樣的。如果是A W C, B W C

那麼W右側就是0,因為是 -1log(1)

對所有的詞計算左右資訊熵,如果某個詞的左右資訊熵都很大,那這個詞就很可能是關鍵詞。

拿文章一開始提到的反例來說,“李元芳”只在開頭出現了一次,於是資訊熵為0,肯定不會是關鍵詞了。

最後考慮一種特殊情況,如果某個詞左側的資訊熵很大,右側資訊熵很小,而他右側的詞左側資訊熵很小,右側資訊熵很大。形象描述為 X B C Y

BC經常一同出現,但是XY經常變化,於是可以把BC組合起來當成一個關鍵詞,我們常常見到“智慧手機”作為一個關鍵詞出現就是這個道理。這也涉及到NLP中另一個很有意思的研究方向-新詞發現。

最後感謝曉陽童鞋解釋

相關推薦

利用資訊提取文章關鍵詞

目前,對於文章中提取關鍵詞最常用的方法莫過於TF-IDF,但是這樣提取出來的關鍵詞並不一定準確。 舉個最簡單的例子來說,在新聞中最前面出現“記者李元芳報道”,分詞後的結果是“記者、李元芳、報道”,對於這三個詞,“記者”和“報道”的經常出現,idf值一般來說可能會很低,

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

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

設置WordPress文章關鍵詞自動獲取,文章所屬分類名稱,描述自動獲取文章內容,給文章的圖片自動加上AlT標簽

是否 字符 emp als all 文件中 ext 結構 lar 最近在優化網站,SEO優化標準:每一篇文章都要有關鍵詞,關鍵詞的個數為3到6個。每一篇文章都要有描述,描述的字數為漢字在70~80之間,在160個字符之間。每一篇文章的圖片都要有Alt標簽,自動給圖片加上Al

通俗講清楚為什麼使用資訊增益比而不是資訊增益?

來舉個簡單的例子: 資料集D(出去玩是標籤) A代表屬性,A=心情、天氣 心情 天氣 出去玩 好 晴朗 玩 不好 下雨 不玩 不好 颳風 不玩 好了 ,現在建立決策樹,根節點是啥? 第一種方式(資訊熵增益): 令A=天氣 總熵S(D)=

Python計算資訊程式碼

#coding=utf-8 import pandas as pd import numpy as np import math data = pd.read_csv('useriddayu1.csv') df=data.loc[()] data.shape #(34250, 8) df.sha

影象資訊計算的OpenCV程式碼

// calculate entropy of an image double Entropy(Mat img) {  // 將輸入的矩陣為影象  double temp[256];  // 清零  for(int i=0;i<256;i++) &nbs

、資訊量、資訊、交叉-個人小結

一、理解熵 1、首先看到這個詞會產疑問,熵是什麼?誰定義的?用來幹什麼的?為什麼機器學習會用到熵? 有了這些疑問後慢慢的開始探索~ 複製程式碼 熵,熱力學中表徵物質狀態的參量之一,用符號S表示,其物理意義是體系混亂程度的度量。 克勞修斯(T.Clausius) 於1854年提出熵(entropie)的概念

機器學習-9(資訊的簡單介紹)

這一節介紹一下資訊熵,這個跟熱力學的熵是有區別的,所以現在讓我們忘記熱力學第二定律,我們不需要去聯想。在這裡我將按0基礎的思維來討論資訊熵到底是什麼 我們先把基礎公式摘出來 H(X)=−∑xεXP(x)logP(x)) 看公式,我們已經能感受到了,這是離散型的,每個特徵值是獨立

機器學習 資訊

位元化(Bits) 假設存在一組隨機變數X,各個值出現的概率關係如圖;現在有一組由X變數組成的序列: BACADDCBAC.....;如果現在希望將這個序列轉換為二進位制來進行網路傳輸,那麼我們得到一個得到一個這樣的序列:01001000111110010010....... 結論: 在這種情況下,我們可

資訊理論複習筆記(1):資訊、條件,聯合,互資訊、交叉,相對

文章目錄 1.1 資訊和資訊的測量 1.1.1 什麼是資訊 1.1.1 資訊怎麼表示 1.2 資訊熵 1.3 條件熵和聯合熵

西瓜書 課後習題4.3 基於資訊決策樹,連續和離散屬性,並驗證模型

import matplotlib.pyplot as plt import numpy as np from math import log import operator import csv def readDataset(filename): ''' 讀取資料 :

Matplotlib畫圖----資訊函式影象

最近在看GAN和VAE的過程中,發現資訊熵的概念多次出現,就又複習了一下。為了更形象的瞭解資訊熵,在網上找資訊熵函式影象的過程中,發現只有二元的資訊熵影象,出於好奇,畫了就畫了一下三元的。 E

基於資訊的無字典分詞演算法

這幾天在研究如何用統計方法來發現新詞,擴充自己的詞典。看到了幾篇很有想法的文章,作者闡述了一下思路。文章裡面的資料,我計算了一下,發現文有很多資料不夠嚴謹,最主要的問題,並沒有給出很詳細的理論方面的說明。結合作者的思路,我進行了如下數學模型的構建和演算法的實現。 一、概念介紹 1、詞語分

機器學習--資訊 資訊 資訊增益

資訊:   資訊這個概念的理解更應該把他認為是一用名稱,就比如‘雞‘(加引號意思是說這個是名稱)是用來修飾雞(沒加引號是說存在的動物即雞),‘狗’是用來修飾狗的,但是假如在雞還未被命名為'雞'的時候,雞被命名為‘狗’,狗未被命名為‘狗’的時候,狗被命名為'雞',那麼現在我們看到狗就會稱其為‘雞’,

【機器學習】資訊資訊資訊增益、增益率及基尼係數的概念總結

資訊、資訊熵、資訊增益、增益率及基尼係數的概念總結 資訊 資訊是用來消除隨機不確定性的東西。對於機器學習中的決策樹而言,如果待分類的事物集合可以劃分為多個類別當中,則第k類的資訊可以定義如下: 資訊熵 資訊熵是用來度量不確定性,當熵越大,k的不確定性越大,反之越小

基於itchat庫對微信好友資訊提取以及群發訊息

講解itchat庫對微信的處理 將對於itchat中一些方法進行講解 首先我們引入這個庫 import itchat itchat庫的下載可以百度檢視教程 首先用這個庫實現登陸,執行後會出現二維碼,掃碼即可,程式碼 itchat.auto_login(hotR

Python 資訊 條件資訊資訊資訊增益)的理解以及計算程式碼

好久沒更新部落格了,最近在學習python的貝葉斯網路構造,卡在k2演算法給無向圖打分這一步很久了,然後微微頭疼,決定把之前構造無向圖裡的自己寫的小功能函式放出來,記錄一下自己的成長過程,我比較菜,寫出來如果有錯誤希望有緣人看到能夠給出指正,如果沒有錯誤,希望給

java提取文章摘要內容

所用jar包Classifier4j,下載地址:https://download.csdn.net/download/dreamzuora/10853888 /** * */ package test; import net.sf.classifier4J.summarise

資訊相關知識總結

前言 學習決策樹時會接觸到一些資訊熵,條件熵和資訊增益的知識,此外還有互資訊,相對熵,交叉熵和互資訊,KL散度等等亂七八糟的知識和名字,我本人已經記得大腦混亂了,還沒有全部記住,所以在這裡記錄一下. 1.資訊熵:資訊的度量,資訊的不確定程度,是亂七八糟熵的基礎.吳軍大大的數學之美中用了猜球隊冠軍的方式引出

資訊資訊增益

本篇文章主要談一下資訊熵的直觀理解。首先資訊熵。可以看到函式影象如下,只需關注0-1區間(灰點座標()0.36, 0.1598) 我們經常提到資訊熵是資訊量大小的度量,是不確定性的度量。 什麼是資訊量,當我們提到“資訊量很大”這句話我們想說的是,這句話裡面的資訊有很多