数据挖掘:基于TF-IDF算法的数据集选取优化
前言:
? 此前在做一個關于文本分類的小調研。本人使用的是基于樸素貝葉斯的文本分類算法,關于樸素貝葉斯的文本分類更多的內容,請參見《數據挖掘:基于樸素貝葉斯分類算法的文本分類實踐》.
? 不過在做樸素貝葉斯的時候,我遇到一個問題。因為貝葉斯的算法有一個階段是關于數據訓練的,這個用于訓練的數據集是一個比較頭疼的問題。要怎么選擇這些數據集呢?人工手打上去嗎?是不是有一點不太實際。下面,我就基于這一點來說明一下這個數據集要怎么取才最好。
?
版權說明
商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本文作者:Q-WHai
發表日期: 2015年11月17日
本文鏈接:https://qwhai.blog.csdn.net/article/details/49885913
來源:CSDN
更多內容:分類 >> 算法與數學
?
概述:
??TF-IDF是一種統計方法,用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。TF-IDF加權的各種形式常被搜索引擎應用,作為文件與用戶查詢之間相關程度的度量或評級。除了TF-IDF以外,因特網上的搜索引擎還會使用基于鏈接分析的評級方法,以確定文件在搜尋結果中出現的順序。
?
思路分析:
我的思路:
? 我們先撇開TF-IDF這個算法不談,單問你,如果是你你要怎么來選擇這個數據集呢?
? 當時我想到方法就是詞頻優先的方法。具體步驟如下:
? 1.選定一個分類(比如:體育);
? 2.從網上去抓取分類為選定分類的網頁
? 3.解析文本,獲取文本分詞集
? 4.把這些文本分詞按詞頻進行排序
? 5.選取這個特文本分詞集的前N項,把這些排名靠前的就當成選定分類的特征關鍵詞
? 對于上面的這個做法有一個比較不好的效果就是,如果一個詞在這個選定分類的分詞集中大量出現,比如“今天”在體育這個分類的分詞集中大量出現,但這個詞對于分類卻沒什么幫助。因為它也有可能在其他分類中大量出現。
TF-IDF原理:
? 雖然上面的做法達不過很好效果,不過如果從樂觀人的角度來看,倒也是做對了一半。因為我們只考慮到了這個關鍵詞對某一個分類的影響,卻沒有想過這個關鍵詞對其他分類的影響,這個是不合理的。
? 我們這樣試想一下,分類的特征應該具有這樣的效果,這個特征字詞最具代表這個分類。如何讓被選擇的字詞最具代表性呢?我們要讓這個字詞在這個分類中出現的頻率越大的情況下,在其他分類中出現的頻率要越小才好。
? TF-IDF就是結合了這兩點對文本的特征進行選取。其中"TF"代表詞頻(term frequency, TF),"IDF"代表逆向文件頻率 (inverse document frequency, IDF).
? TF:是指某一個字詞在某一個分類(或是文章)中出現的頻率。這里為避免長文章中某一個字詞出現的次數自然會比較多的問題,對其進行歸一化,即讓其除上總個分類(或文章)中的總詞數。這里又要做一個小處理,是因為對于長文章中某一個詞可能很少出現,或只出現一次的,這樣得到的TF值可能就會為0,所以這里我讓某一個字詞出現的次數去除以分類(文章)中出現次數最多的那個詞。
? IDF:是訓練文檔中所有文件數去除以包含了這個關鍵字詞的文件數(為了讓除數不可能為0,這里進行+1處理).
TF-IDF算法計算公式:
TF:
??
IDF:
??
TF-IDF:
??
?
? 上面的公式已經很清楚地表現了分類特征字詞的選取,這里就不用代碼來說明了。當然我在我的分類器中使用了這個TF-IDF算法的確是增加了分類的準確性。
?
結果展示:
? 基于上面的TF-IDF算法,我們對41個分類訓練文本中進行訓練數據特征選取,結果如下(這里只展示3個分類的特征選取):
?
農林牧漁 養殖 養殖場 種植 飼料 飼養 苗木 除草劑 繁育 生豬 養殖網 仔豬 致富 畜牧 繁殖 修剪 農業網 豆粕 養雞 批發 肉牛 獸藥 苗木網 肉雞 行情 養豬 苗 合作社 市場行情 畜 禽 票務查詢 車次 預售期 單程 列車時刻表 往返 票價 機票 火車時刻表 時刻表 車票 站站 預訂 常平 訂票 景點 代售 郵輪 簽證 到達 出發 余票 程旅游 售票 卡訂單 退票 訂 航線 火車站 火車票 飛機票 歷史 歷史網 夏朝 秦朝 歷史人物 商朝 元朝 南北朝 春秋戰國 清朝 近代 朱元璋 野史 中國歷史 朝代 周朝 隋朝 女媧 中國歷史網 漢朝 雍正 劉邦 開國 唐代 傳統文化 文史 宋朝 明朝 民國 唐朝 年號?
?
?
?
?
總結
以上是生活随笔為你收集整理的数据挖掘:基于TF-IDF算法的数据集选取优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java连接FTP服务器并且实现对其文件
- 下一篇: 数据结构:关于重建二叉树的三种思路