文本挖掘

  • 對語料庫分詞顿膨,并統(tǒng)計詞頻(去掉common-words)建椰。輸入目標詞語計算出相關度高的前十文本唆途,并考慮算法耗時問題料饥。數(shù)據(jù)在下面連接父目錄下(cranfield.tar.gz為語料庫需要解壓):
    代碼

module

  1. os
    獲取解壓的所有文件名稱
  2. nltk
    用到textobject,創(chuàng)建一個自己的textObject宜狐,并用該對象的內(nèi)置方法統(tǒng)計每個word的頻次势告。
  3. re
    nltk模塊分詞并不完全符合要求,利用re的正則匹配方法進一步提取word抚恒。
  4. pandas
    創(chuàng)建時間序列的數(shù)據(jù)咱台,并用Series類的方法,整理結(jié)果數(shù)據(jù)俭驮。
  5. time
    計算運行時間
  6. matplotlib
    作圖module
  7. numpy
    數(shù)值計算模塊回溺,用到均值、求和以及隨機抽樣函數(shù)

function

  1. wordCountDict
    建立2層嵌套的字典混萝,最外層key為提取的word對應的value是一個字典遗遵,該字典的key為文件名稱,value為該文件出現(xiàn)最外層key對應的word的頻數(shù)(>=1)逸嘀。統(tǒng)計僅僅由數(shù)值和字母構成的word且不包括stopwords车要,結(jié)果用于下面函數(shù)。

  2. searchRelativePaper
    給處幾個關鍵單詞崭倘,統(tǒng)計出現(xiàn)這些單詞的在每篇文章中出現(xiàn)的頻數(shù)之和翼岁,降序排列結(jié)果,給出前10的文章文件夾名稱司光。

  3. statQueryTime
    統(tǒng)計不同查詢關鍵字個數(shù)與查詢時間花費之間關系琅坡,采取又放回的10次隨機抽樣期望代替目標值。

love & life為例查詢top10-DOC

1 cranfield0640 4
2 cranfield0768 3
3 cranfield0727 2
4 cranfield0865 1
5 cranfield0482 1
6 cranfield0724 1
7 cranfield0844 1
8 cranfield0658 1
9 cranfield0909 1
10 cranfield1352 1

后10 應該均為0沒有統(tǒng)計意義

bottom 10 & top 10

bottom count top count
ob 1.0 flow 1732
nullify 1.0 pressure 1120
inadmissable 1.0 number 964
lina 1.0 results 885
806 1.0 boundary 880
608 1.0 mach 813
shallower 1.0 theory 777
cracking 1.0 layer 720
objectionable 1.0 method 674
428 1.0 surface 554.0

不僅僅這10個出現(xiàn)一次残家,因此這10個word不是唯一的答案榆俺。

words在campus出現(xiàn)頻數(shù)統(tǒng)計histogram

Figure_1.png

word出現(xiàn)頻率最高的為1750次,幾乎所有word頻都小于250次跪削,因此進一步考慮去值小于250的直方圖如下:

Figure_2.png

數(shù)據(jù)明顯還是集中在50谴仙,因此進一步看小于50樣本頻數(shù)直方圖:

Figure_3.png

總結(jié):絕大部分部分word頻數(shù)小于5次,很少一部分部分頻數(shù)取值在[50,250],極少大于250碾盐,單詞最大頻數(shù)為1732。

統(tǒng)計查詢時間與查詢詞語個數(shù)之間關系

統(tǒng)查詢結(jié)果最大值為0(沒有)揩局、極少(出現(xiàn)次數(shù)之和 x : 0 < x <= 1 * n , n為給處關鍵字的個數(shù))毫玖, 多( x > 3 * n)

num of words empty little many
1 0.00110281 0.00227954 0.00209611
2 0.0009027 0.00309847 0.003008
3 0.000802159 0.00382876 0.00483092
Figure_5.png
  1. empty(沒有)、little(極少)、many(很多)這三者查詢時間呈現(xiàn)一個遞增關系付枫。
  2. 當總查詢結(jié)果為empty時, 查詢時間和輸入關鍵字個數(shù)影響關系可以忽略烹玉。另外兩種情況,都會隨著查詢關鍵字個數(shù)的提升阐滩,查詢時間明顯增加二打。

余弦相似度計算相似性

在上面統(tǒng)計詞頻的基礎上,利用前1000個高頻詞匯構建每篇文章的特征向量掂榔。然后利用余弦相似度計算query詞匯與每篇文章的相似度(tutorial-11assignment3.pdf在github pool目錄下继效,介紹了如何構建特征向量以及余弦相識度計算公式)。
代碼

下面分別用兩組代碼檢測:query: ['flow', 'number', 'layer']的結(jié)果:

結(jié)果now 余弦相似度 結(jié)果before 頻數(shù)
cranfield0050 0.281713 cranfield0329 22.0
cranfield0899 0.271514 cranfield1313 19.0
cranfield1302 0.256463 cranfield0189 16.0
cranfield0335 0.255768 cranfield0089 15.0
cranfield0343 0.254294 cranfield0310 14.0
cranfield0668 0.238295 cranfield0710 13.0
cranfield0192 0.235588 cranfield1351 13.0
cranfield0004 0.234459 cranfield0798 13.0
cranfield0310 0.231961 cranfield1244 13.0
cranfield0089 0.231217 cranfield0996 13.0
  • 耗時
    詞頻統(tǒng)計:0.005005836486816406
    余弦相似: 0.559490442276001
  • 結(jié)論
    兩者方法結(jié)果出入很大装获,且查詢時間后者是前者的100倍瑞信。但根據(jù)余弦相似度計算更科學,例如穴豫,A凡简,B兩篇文章都包含共同的查詢詞匯,但是A的詞匯量遠遠高于B精肃,那么A根據(jù)總體詞匯頻數(shù)統(tǒng)計大于B的可能很大秤涩,但是這并不是合理的,相反B與query詞匯的相似度才高司抱,利用余弦相似度很好解決了這點溉仑。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市状植,隨后出現(xiàn)的幾起案子浊竟,更是在濱河造成了極大的恐慌,老刑警劉巖津畸,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件振定,死亡現(xiàn)場離奇詭異,居然都是意外死亡肉拓,警方通過查閱死者的電腦和手機后频,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暖途,“玉大人卑惜,你說我怎么就攤上這事∽な郏” “怎么了露久?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長欺栗。 經(jīng)常有香客問我毫痕,道長征峦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任消请,我火速辦了婚禮栏笆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘臊泰。我一直安慰自己蛉加,他們只是感情好,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布缸逃。 她就那樣靜靜地躺著针饥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪察滑。 梳的紋絲不亂的頭發(fā)上打厘,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音贺辰,去河邊找鬼户盯。 笑死,一個胖子當著我的面吹牛饲化,可吹牛的內(nèi)容都是我干的莽鸭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼吃靠,長吁一口氣:“原來是場噩夢啊……” “哼硫眨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起巢块,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤礁阁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后族奢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姥闭,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年越走,在試婚紗的時候發(fā)現(xiàn)自己被綠了棚品。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡廊敌,死狀恐怖铜跑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情骡澈,我是刑警寧澤锅纺,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站秧廉,受9級特大地震影響伞广,放射性物質(zhì)發(fā)生泄漏拣帽。R本人自食惡果不足惜疼电,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一嚼锄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蔽豺,春花似錦区丑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至魄鸦,卻和暖如春宴杀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拾因。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工旺罢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绢记。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓扁达,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蠢熄。 傳聞我的和親對象是個殘疾皇子跪解,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

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

  • 1 初始文本挖掘 1.1 何為文本挖掘 文本挖掘是指從大量文本數(shù)據(jù)中抽取事先未知的、可理解的签孔、最終可用的知識的過程...
    whenif閱讀 19,707評論 19 78
  • 一. 概率知識回顧 聯(lián)合概率表示兩個事件共同發(fā)生的概率如果兩個事件相互獨立, 則P(x, y) = P(x) · ...
    陳碼工閱讀 2,654評論 2 5
  • 日復一日叉讥,經(jīng)由一種專注,在工作中可以歷練出一種美饥追。 這段日子是很郁悶图仓,很不舒服的狀態(tài)∨懈可能是身體不適引起的情緒糟糕...
    飛鳥逐溪閱讀 394評論 0 0
  • 濕衣服的水一滴一滴打在嬌弱的草芽兒上透绩,那是一群在枯草里的得以生存的精靈。 人們把草的開始生長看做了春的象征壁熄,夏天的...
    念癡閱讀 151評論 0 0
  • video標簽 作用: 播放視頻 格式1: video標簽的屬性: src: 告訴video標簽需要播放的視頻地址...
    Strive_12c4閱讀 512評論 0 0