文本挖掘

  • 对语料库分词,并统计词频(去掉common-words)。输入目标词语计算出相关度高的前十文本,并考虑算法耗时问题。数据在下面连接父目录下(cranfield.tar.gz为语料库需要解压):
    代码

module

  1. os
    获取解压的所有文件名称
  2. nltk
    用到textobject,创建一个自己的textObject,并用该对象的内置方法统计每个word的频次。
  3. re
    nltk模块分词并不完全符合要求,利用re的正则匹配方法进一步提取word。
  4. pandas
    创建时间序列的数据,并用Series类的方法,整理结果数据。
  5. time
    计算运行时间
  6. matplotlib
    作图module
  7. numpy
    数值计算模块,用到均值、求和以及随机抽样函数

function

  1. wordCountDict
    建立2层嵌套的字典,最外层key为提取的word对应的value是一个字典,该字典的key为文件名称,value为该文件出现最外层key对应的word的频数(>=1)。统计仅仅由数值和字母构成的word且不包括stopwords,结果用于下面函数。

  2. searchRelativePaper
    给处几个关键单词,统计出现这些单词的在每篇文章中出现的频数之和,降序排列结果,给出前10的文章文件夹名称。

  3. statQueryTime
    统计不同查询关键字个数与查询时间花费之间关系,采取又放回的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没有统计意义

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个出现一次,因此这10个word不是唯一的答案。

words在campus出现频数统计histogram

Figure_1.png

word出现频率最高的为1750次,几乎所有word频都小于250次,因此进一步考虑去值小于250的直方图如下:

Figure_2.png

数据明显还是集中在50,因此进一步看小于50样本频数直方图:

Figure_3.png

总结:绝大部分部分word频数小于5次,很少一部分部分频数取值在[50,250],极少大于250,单词最大频数为1732。

统计查询时间与查询词语个数之间关系

统查询结果最大值为0(没有)、极少(出现次数之和 x : 0 < x <= 1 * n , n为给处关键字的个数), 多( 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(很多)这三者查询时间呈现一个递增关系。
  2. 当总查询结果为empty时, 查询时间和输入关键字个数影响关系可以忽略。另外两种情况,都会随着查询关键字个数的提升,查询时间明显增加。

余弦相似度计算相似性

在上面统计词频的基础上,利用前1000个高频词汇构建每篇文章的特征向量。然后利用余弦相似度计算query词汇与每篇文章的相似度(tutorial-11assignment3.pdf在github pool目录下,介绍了如何构建特征向量以及余弦相识度计算公式)。
代码

下面分别用两组代码检测:query: ['flow', 'number', 'layer']的结果:

结果now 余弦相似度 结果before 频数
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
  • 耗时
    词频统计:0.005005836486816406
    余弦相似: 0.559490442276001
  • 结论
    两者方法结果出入很大,且查询时间后者是前者的100倍。但根据余弦相似度计算更科学,例如,A,B两篇文章都包含共同的查询词汇,但是A的词汇量远远高于B,那么A根据总体词汇频数统计大于B的可能很大,但是这并不是合理的,相反B与query词汇的相似度才高,利用余弦相似度很好解决了这点。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 1 初始文本挖掘 1.1 何为文本挖掘 文本挖掘是指从大量文本数据中抽取事先未知的、可理解的、最终可用的知识的过程...
    whenif阅读 19,685评论 19 78
  • 一. 概率知识回顾 联合概率表示两个事件共同发生的概率如果两个事件相互独立, 则P(x, y) = P(x) · ...
    陈码工阅读 2,644评论 2 5
  • 日复一日,经由一种专注,在工作中可以历练出一种美。 这段日子是很郁闷,很不舒服的状态。可能是身体不适引起的情绪糟糕...
    飞鸟逐溪阅读 393评论 0 0
  • 湿衣服的水一滴一滴打在娇弱的草芽儿上,那是一群在枯草里的得以生存的精灵。 人们把草的开始生长看做了春的象征,夏天的...
    念痴阅读 150评论 0 0
  • video标签 作用: 播放视频 格式1: video标签的属性: src: 告诉video标签需要播放的视频地址...
    Strive_12c4阅读 512评论 0 0