日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TF-IDF

發(fā)布時間:2023/12/2 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TF-IDF 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 文本向量化特征的不足
    在將文本分詞并向量化后,我們可以得到詞匯表中每個詞在各個文本中形成的詞向量,比如在文本挖掘預(yù)處理之向量化與Hash Trick這篇文章中,我們將下面4個短文本做了詞頻統(tǒng)計:

corpus=["I come to China to travel",
"This is a car polupar in China",
"I love tea and Apple ",
"The work is to write some papers in science"]
    不考慮停用詞,處理后得到的詞向量如下:

[[0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 2 1 0 0]
[0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0]
[1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0]
[0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1]]
    如果我們直接將統(tǒng)計詞頻后的19維特征做為文本分類的輸入,會發(fā)現(xiàn)有一些問題。比如第一個文本,我們發(fā)現(xiàn)"come","China"和“Travel”各出現(xiàn)1次,而“to“出現(xiàn)了兩次。似乎看起來這個文本與”to“這個特征更關(guān)系緊密。但是實際上”to“是一個非常普遍的詞,幾乎所有的文本都會用到,因此雖然它的詞頻為2,但是重要性卻比詞頻為1的"China"和“Travel”要低的多。如果我們的向量化特征僅僅用詞頻表示就無法反應(yīng)這一點。因此我們需要進一步的預(yù)處理來反應(yīng)文本的這個特征,而這個預(yù)處理就是TF-IDF。

?

2.TF-IDF概述

TF-IDF是Term Frequency - ?Inverse Document Frequency的縮寫,即“詞頻-逆文本頻率”。它由兩部分組成,TF和IDF。

    前面的TF也就是我們前面說到的詞頻,我們之前做的向量化也就是做了文本中各個詞的出現(xiàn)頻率統(tǒng)計,并作為文本特征,這個很好理解。關(guān)鍵是后面的這個IDF,即“逆文本頻率”如何理解。在上一節(jié)中,我們講到幾乎所有文本都會出現(xiàn)的"to"其詞頻雖然高,但是重要性卻應(yīng)該比詞頻低的"China"和“Travel”要低。我們的IDF就是來幫助我們來反應(yīng)這個詞的重要性的,進而修正僅僅用詞頻表示的詞特征值。

    概括來講, IDF反應(yīng)了一個詞在所有文本中出現(xiàn)的頻率,如果一個詞在很多的文本中出現(xiàn),那么它的IDF值應(yīng)該低,比如上文中的“to”。而反過來如果一個詞在比較少的文本中出現(xiàn),那么它的IDF值應(yīng)該高。比如一些專業(yè)的名詞如“Machine Learning”。這樣的詞IDF值應(yīng)該高。一個極端的情況,如果一個詞在所有的文本中都出現(xiàn),那么它的IDF值應(yīng)該為0。

    上面是從定性上說明的IDF的作用,那么如何對一個詞的IDF進行定量分析呢?這里直接給出一個詞xx的IDF的基本公式如下:

??

?

其中,NN代表語料庫中文本的總數(shù),而N(x)N(x)代表語料庫中包含詞xx的文本總數(shù)。為什么IDF的基本公式應(yīng)該是是上面這樣的而不是像N/N(x)N/N(x)這樣的形式呢?這就涉及到信息論相關(guān)的一些知識了。感興趣的朋友建議閱讀吳軍博士的《數(shù)學之美》第11章。

    上面的IDF公式已經(jīng)可以使用了,但是在一些特殊的情況會有一些小問題,比如某一個生僻詞在語料庫中沒有,這樣我們的分母為0, IDF沒有意義了。所以常用的IDF我們需要做一些平滑,使語料庫中沒有出現(xiàn)的詞也可以得到一個合適的IDF值。平滑的方法有很多種,最常見的IDF平滑后的公式之一為:

?

?

    有了IDF的定義,我們就可以計算某一個詞的TF-IDF值了:

?

?

    其中TF(x)TF(x)指詞xx在當前文本中的詞頻。

?

代碼實現(xiàn):

?

import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizertrain = pd.read_csv('./data/train_set.csv', nrows=1000, index_col=None) tfidf_model = TfidfVectorizer(max_features=10, min_df=1).fit_transform(train['article']) print(tfidf_model.todense())

?

轉(zhuǎn)載于:https://www.cnblogs.com/yankang/p/10666214.html

總結(jié)

以上是生活随笔為你收集整理的TF-IDF的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。