關(guān)鍵詞提取-TFIDF(一)

系列文章

? 詞向量
?Adam,sgd
? 梯度消失和梯度爆炸
?初始化的方法
? 過(guò)擬合&欠擬合
? 評(píng)價(jià)&損失函數(shù)的說(shuō)明
? 深度學(xué)習(xí)模型及常用任務(wù)說(shuō)明
? RNN的時(shí)間復(fù)雜度
? neo4j圖數(shù)據(jù)庫(kù)

分詞霉赡、詞向量

關(guān)鍵詞提取-TFIDF

TfidfVectorizer

基本介紹

  • TF-IDF是一種統(tǒng)計(jì)方法穴亏,用以評(píng)估一字詞對(duì)于一個(gè)文件集或一個(gè)語(yǔ)料庫(kù)中的其中一份文件的重要程度重挑。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加谬哀,但同時(shí)會(huì)隨著它在語(yǔ)料庫(kù)中出現(xiàn)的頻率成反比下降。
  • 比如:為了獲得一篇文檔的關(guān)鍵詞谦屑,我們可以如下進(jìn)行
  • 對(duì)給定文檔篇梭,我們進(jìn)行"詞頻"(Term Frequency,縮寫為TF)
  • 給每個(gè)詞計(jì)算一個(gè)權(quán)重悍手,這個(gè)權(quán)重叫做"逆文檔頻率"(Inverse Document Frequency,縮寫為IDF)竣付,它的大小與一個(gè)詞的常見(jiàn)程度成反比滞欠。

算法明細(xì)

  • 基本步驟
    • 1仑撞、計(jì)算詞頻⊥傲迹考慮到文章有長(zhǎng)短之分沮翔,為了便于不同文章的比較,進(jìn)行"詞頻"標(biāo)準(zhǔn)化疲牵。

      詞頻:TF = 文章中某詞出現(xiàn)的頻數(shù)

      詞頻標(biāo)準(zhǔn)化:
      tf-TFIDF_2
    • 2纲爸、計(jì)算逆文檔頻率妆够。如果一個(gè)詞越常見(jiàn)神妹,那么分母就越大,逆文檔頻率就越小越接近0冕茅。

      逆文檔頻率:
      關(guān)鍵詞提取-TFIDF_3

      其中蛹找,語(yǔ)料庫(kù)(corpus)熄赡,是用來(lái)模擬語(yǔ)言的使用環(huán)境。
    • 3炊豪、計(jì)算TF-IDF∏2眨可以看到缺虐,TF-IDF與一個(gè)詞在文檔中的出現(xiàn)次數(shù)成正比高氮,與該詞在整個(gè)語(yǔ)言中的出現(xiàn)次數(shù)成反比
      TF-IDF = TF * IDF

算法優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):
    • TF-IDF算法的優(yōu)點(diǎn)是簡(jiǎn)單快速,結(jié)果比較符合實(shí)際情況塞淹。
  • 缺點(diǎn)
    • 單純以"詞頻"衡量一個(gè)詞的重要性罪裹,不夠全面状共,有時(shí)重要的詞可能出現(xiàn)次數(shù)并不多。
    • 這種算法無(wú)法體現(xiàn)詞的位置信息冯袍,出現(xiàn)位置靠前的詞與出現(xiàn)位置靠后的詞鬓椭,都被視為重要性相同关划,這是不正確的贮折。
    • 對(duì)于文檔中出現(xiàn)次數(shù)較少的重要人名、地名信息提取效果不佳

應(yīng)用場(chǎng)景

  • 應(yīng)用場(chǎng)景簡(jiǎn)介
    • 1)搜索引擎踊赠;
    • 2)關(guān)鍵詞提让壳臁缤灵;
    • 3)文本相似性蓝晒;
    • 4)文本摘要

可執(zhí)行實(shí)例

# python:3.8
# sklearn:0.23.1
# 1芝薇、CountVectorizer 的作用是將文本文檔轉(zhuǎn)換為計(jì)數(shù)的稀疏矩陣
from sklearn.feature_extraction.text import CountVectorizer
corpus = [
    'This is the first document.',
    'This document is the second document.',
    'And this is the third one.',
    'Is this the first document?',
]
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(corpus)
# 查看每個(gè)單詞的位置
print(vectorizer.get_feature_names())
#['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this']
# 查看結(jié)果
print(X.toarray())
# [[0 1 1 1 0 0 1 0 1]
#  [0 2 0 1 0 1 1 0 1]
#  [1 0 0 1 1 0 1 1 1]
#  [0 1 1 1 0 0 1 0 1]]

# 2作儿、TfidfTransformer:使用計(jì)算 tf-idf
from sklearn.feature_extraction.text import TfidfTransformer
transform = TfidfTransformer()    
Y = transform.fit_transform(X)  
print(Y.toarray())                # 輸出tfidf的值
# [[0.         0.46979139 0.58028582 0.38408524 0.         0. 0.38408524 0.         0.38408524]
#  [0.         0.6876236  0.         0.28108867 0.         0.53864762 0.28108867 0.         0.28108867]
#  [0.51184851 0.         0.         0.26710379 0.51184851 0. 0.26710379 0.51184851 0.26710379]
#  [0.         0.46979139 0.58028582 0.38408524 0.         0. 0.38408524 0.         0.38408524]]

# 3攻锰、TfidfVectorizer:TfidfVectorizer 相當(dāng)于 CountVectorizer 和 TfidfTransformer 的結(jié)合使用
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
    'This is the first document.',
    'This document is the second document.',
    'And this is the third one.',
    'Is this the first document?',
]
vectorizer = TfidfVectorizer() #構(gòu)建一個(gè)計(jì)算詞頻(TF)
X = vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
# ['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this']
print(X.shape)
# (4, 9)

參數(shù)項(xiàng)說(shuō)明

  • CountVectorizer
關(guān)鍵詞提取-TFIDF_4
  • TfidfTransformer
關(guān)鍵詞提取-TFIDF_5
  • 從函數(shù)上來(lái)看变擒,咱也可以發(fā)現(xiàn)有TfidfVectorizer=CountVectorizer + TfidfTransformer
  • TfidfVectorizer
關(guān)鍵詞提取-TFIDF_6
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娇斑,一起剝皮案震驚了整個(gè)濱河市毫缆,隨后出現(xiàn)的幾起案子乐导,更是在濱河造成了極大的恐慌,老刑警劉巖旺拉,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛾狗,死亡現(xiàn)場(chǎng)離奇詭異仪媒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)留凭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門蔼夜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)压昼,“玉大人翠订,你說(shuō)我怎么就攤上這事尽超∥嗵桑” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵巩踏,是天一觀的道長(zhǎng)塞琼。 經(jīng)常有香客問(wèn)我禁舷,道長(zhǎng),這世上最難降的妖魔是什么派近? 我笑而不...
    開(kāi)封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任渴丸,我火速辦了婚禮另凌,結(jié)果婚禮上谱轨,老公的妹妹穿的比我還像新娘。我一直安慰自己吠谢,他們只是感情好土童,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著囊卜,像睡著了一般娜扇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栅组,一...
    開(kāi)封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音枢析,去河邊找鬼玉掸。 笑死醒叁,一個(gè)胖子當(dāng)著我的面吹牛司浪,可吹牛的內(nèi)容都是我干的泊业。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼啊易,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吁伺!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起租谈,我...
    開(kāi)封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤篮奄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后割去,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體窟却,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年呻逆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夸赫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咖城,死狀恐怖茬腿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宜雀,我是刑警寧澤滓彰,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站州袒,受9級(jí)特大地震影響揭绑,放射性物質(zhì)發(fā)生泄漏厉颤。R本人自食惡果不足惜贸典,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一哟冬、第九天 我趴在偏房一處隱蔽的房頂上張望鹦牛。 院中可真熱鬧代嗤,春花似錦新锈、人聲如沸字管。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)悼沈。三九已至,卻和暖如春姐扮,著一層夾襖步出監(jiān)牢的瞬間絮供,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工茶敏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留壤靶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓惊搏,卻偏偏與公主長(zhǎng)得像贮乳,于是被迫代替她去往敵國(guó)和親忧换。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容