首页 > 代码库 > Hadoop的改进实验(中文分词词频统计及英文词频统计)(3/4)

Hadoop的改进实验(中文分词词频统计及英文词频统计)(3/4)

 

声明:

 

  1)本文由我bitpeach原创撰写,转载时请注明出处,侵权必究。

 

    2)本小实验工作环境为Windows系统下的百度云(联网),和Ubuntu系统的hadoop1-2-1(自己提前配好)。如不清楚配置可看《Hadoop之词频统计小实验初步配置》

 

    3)本文由于过长,无法一次性上传。其相邻相关的博文,可参见《Hadoop的改进实验(中文分词词频统计及英文词频统计) 博文目录结构》,以阅览其余三篇剩余内容文档。

 

(四)单机Hadoop伪分布的中文分词统计词频(续)

    中文分词词频统计实验-Java程序

  • 单机伪分布对中文分词并统计词频

    1)实验准备

根据国内新闻时事,从新浪选择选择亚信峰会的领导人发言内容。保存在文本中, 并转换为UTF8文本。

使用IK分词jar包,为什么选择它?两个原因考虑:第一,其理解较为简单,故分词效果不是很好,但是适合初学者学习。第二,它提供开源的java接口,方便hadoop使用。

2)实验过程

    如上图所示,将新闻样本放入分布式目录内,然后执行中文分词的IK包,在这里已经将词频统计和IK分词的功能做了合并打包,故直接调用合并的jar包即可,在这里文件名是chinesewordcount.jar。

    通过指令执行后,得到结果。此部分不再赘述,对于执行指令的机械性而言,已经很是单调了,但是研究中文分词IK包很有意思。图片部分示意词频如下:

    文字内容结果如下:

 

12个    1

14个    1

20  1

21世纪  3

21日    1

47个    1

5月 1

67  1

一个 1

一体化   1

一己之私 5

一损俱损 3

一条 1

一步一个脚印    1

一荣俱荣 3

一贯 1

一道 3

一部分   1

三分之一 1

三股 2

上  1

上午 2

上海 5

不出 2

不利于   1

不同 4

不在 1

不安全   2

不懈努力 1

不断 2

不断扩大 3

不能 2

与  22

世  2

世界 6

世界上   1

世界各国 1

世界和平 2

世界经济 2

东盟 3

丝绸之路 2

中  5

中华人民共和国    2

中华民族 2

中国 15

中国人民 2

中心 3

中方 9

为  15

主席 1

主席国   4

主旨 2

主权 2

主流 2

主要 2

主题 2

举行 1

之  6

之地 1

之路 1

之际 2

也  2

也是 5

领导人(本词条为主席,被屏蔽) 30

了  3

争端 8

事  1

事业 2

事件 1

事务 5

事情 1

事端 5

互  3

互不干涉内政    1

互信 2

互利 4

互动 1

亚  4

亚太 3

亚太地区 8

亚洲 47

亚洲人   2

亚洲国家 3

亚洲金融危机    1

交流 4

交融 2

亲  3

人口 1

人民 3

人民网   1

人类 3

今天 4

今日 2

从低 3

他  1

代  2

代表 3

以  17

以邻为壑 5

们  2

任何 1

众多 1

伙伴 2

会  3

会于 1

伟大 2

传统 2

伴  1

但  1

体已 2

作  2

作和 1

作用 2

使  2

使用 5

依托 1

 

依然是   1

侵害 1

促  5

促进 7

俄罗斯   3

保障 1

信  4

信任 3

倍加 1

倡导 3

倡导者   1

倡议 11

值得 1

值此 2

做  4

停留在   2

像  2

先生们   3

入手 3

全  5

全世界   1

全局 1

全是 1

全都 4

六方会谈 1

共  8

共享 1

共同 12

共同体   3

共同努力 2

共同发展 4

共同生活 1

共同进步 3

共商 1

共建 2

共谋 4

关切 1

关系 1

关键 1

其  2

其他国家 1

其他地区 1

内涵 1

军事同盟 1

冷战 2

准则 1

减少 1

出了 2

出新 2

分歧 2

分裂主义 1

刚才 2

创新 4

利益 5

别人 2

别国 1

制  1

前任 2

前进 2

前途 1

力使 1

力度 1

力量 2

加大 1

加强 6

加快 1

动力 1

动辄 5

努  1

努力 2

努力实现 3

势  1

势力 2

包容 1

包括 1

化  1

化为 1

区域 2

区域合作 2

区域经济 1

医  2

千差万别 1

协  1

协作 4

协商 2

协调 2

南盟 3

博  2

博弈 5

卢  2

印度 1

历史 2

参与 3

又有 1

又要 1

及  1

友好 1

友好合作 1

双赢 1

反对 15

发  1

发展 21

发挥 12

发言 6

发起 1

取向 2

取长补短 3

变  1

句  1

另一 1

召开 1

可  3

可持续发展   1

各  1

各位 2

各国 12

各国人民 2

各方 3

各种 1

各自 2

 

合  1

合作 52

合理 1

同  14

同事 1

同化 1

同时 3

否则 1

启动 1

吹灭 2

命运 4

和  46

和平 29

和平共处五项原则 2

和睦相处 1

哈萨克斯坦    4

商同 1

善  1

因  1

团  1

园里 1

围绕 1

固  1

国  4

国中 1

国家 13

国家和地区    1

国家安全 3

国是 1

国际 2

国际关系 1

国际社会 1

国际组织 2

土  2

土耳其   4

在  14

在内 1

地  1

地上 2

地位 1

地区 27

坚定 3

坚定不移 1

坚持 2

坚持以   5

坦诚 1

垄断 1

培育 3

基本准则 2

基础 1

基础上   1

基础设施 2

增多 1

增进 1

增长 2

处在 1

处理 4

复兴 2

复杂 1

外延 1

多  1

多样性   2

多种多样 1

多管齐下 1

大会 1

大厦 1

大多数   1

大好局面 1

大家 4

大小 1

大树 1

大计 1

夯实 1

头  1

头疼 1

奉行 1

奥  2

女士们   3

好  3

始于 1

始终不渝 1

始终是   3

威胁 3

安  6

安全 68

安全观   7

安全问题 6

安危与共 1

安宁 1

宗教 3

实现 6

实践者   1

客人 1

家和 2

容  1

容忍 1

富  1

对  13

对话 6

将  3

将同 1

尊重 4

就不能   2

就会 1

就应该   1

就是 6

尽早 1

局面 1

山积 1

峰  1

峰会 1

崇高 2

巩固 8

差异性   1

已经 1

带来 1

帮助 2

常态 1

平  2

平等 6

并  1

并重 1

幸  1

幸福生活 1

应对 6

应急 1

应有 2

应该 4

应该是   3

建立 2

建设 1

建设性   1

建造 1

开放 2

异  1

强化 1

强弱 1

归根结底 3

当前 1

形势 3

形成 1

影响 4

彻底解决 1

很不 1

必  2

必须 1

态度 1

思维 2

总  2

总统 2

恐怖主义 2

恪守 1

息息相关 1

惠  1

惠及 1

意义 4

意识 3

感谢 4

愿意 3

成  1

成为 3

成员国   1

我  3

我们 2

或以 5

战略 3

所谓 1

打击 2

执法 2

承前启后 1

把  1

投资银行 2

担任 2

拓展 1

拥有 1

持久 1

持久和平 2

持续 3

指导 1

挑战 5

挑起 5

挥着 1

振兴 1

损人利己 5

探讨 2

推动 5

推进 3

提出 3

提升 1

搭建 1

支持 8

改善 1

政策 2

敏感 4

文化传统 1

文明 5

新  4

新亚洲   1

方为 1

方兴未艾 1

方式 12

施  1

既有 1

既要 1

日益 2

日至 1

旧时代   5

时代 4

时而 1

明  1

是  5

普遍 1

智慧 1

更  1

更加 3

更大 2

更好 2

最具 1

最大 2

有  2

有关 2

朋友们   5

望  2

木  1

本地区   2

机制 2

权利 1

条件 1

来  3

来之不易 1

来宾 1

来说 1

极为 1

极端主义 1

架构 1

根基 1

根本 1

梦  4

梦想 2

欢迎 1

欲  1

正  1

正在 3

正当权益 1

步伐 2

武  2

武力 10

每一个   1

民办 1

民族 1

民族宗教 1

民有 1

民生 1

求  2

汇聚 1

沟通 1

治理 1

泽  1

洲  1

活力 2

活跃 1

流  1

浚  1

海上 1

海洋权益 1

深入 3

深化 1

深远 4

源泉 1

潜力 1

潜在 1

激化矛盾 5

火中 1

灯  2

烧掉 2

热点 1

热点问题 1

烽  1

照顾 1

特  2

特别 2

特别是   2

特点 1

牺牲 1

犯罪 1

独立 1

猜疑 1

环境 1

现在 1

现实状况 1

珍惜 1

理念 2

生  1

疼  1

的  101

盛举 4

相互 1

相互交织 1

相互促进 5

相互信任 1

相同 1

相威胁   5

相得益彰 5

相聚 1

看法 2

着力 1

着眼 3

睦邻 1

矛盾 1

知者 1

硕果 1

社会制度 2

祥和 1

福  3

积  1

积极 7

积极作用 3

积极参与 1

积累 1

稳定 12

突出 2

突发 1

立了 1

第三方   1

第四次   1

等  4

策  1

繁荣 4

组织 1

经得起   1

经济合作 1

经济带   1

经济总量 1

结  1

结上 1

绝对 1

统筹 2

维护 13

综合 3

缅甸 1

缩小 1

网络安全 1

美好 2

考验 1

者  1

而  7

而其 1

而在 1

聚焦 1

胡子 2

胳膊 1

能力 1

能在 1

能源 1

脑袋 2

脚  2

自主 1

 

 

自己 2

自然灾害 1

自身 3

致力于   2

良好 1

良性 1

良策 4

虽然 1

表示 2

表达 2

衷心 2

襄  4

要  16

要靠 3

观察员   1

解决 9

计划 1

论坛 1

诉求 1

诚  1

说得好   1

说的 2

谈判 3

谋  5

谋划 1

谋求 2

谚语 3

谢谢 1

谨  2

贡献 4

责任 1

贫富 1

贫富差距 1

贫瘠 1

资源 1

赢  5

走  1

走出 1

越来越重要    1

跟上 2

跨国 1

践行 1

身  2

转  1

边界问题 1

迎难而上 1

近  1

还  2

这  1

这一 1

这个 1

进一步   1

进入 2

进步 2

进程 5

远者 1

连天 1

选择 1

通盘考虑 1

通过 9

造福 1

道路 2

避免 1

那样 2

邻  7

部分 1

都  1

都不 1

都在 1

都有 2

采取 1

重大 6

重建 1

重要作用 8

金融危机 1

鉴  3

针对 1

钥匙 2

长  4

长治久安 4

长者 1

问题 2

间  1

阐述 2

阶段 1

阿富汗   1

阿盟 3

陆地 1

随  1

零  6

非传统   2

面临 1

领土 1

领土完整 1

领域 8

领导人   1

风险 1

风雨 1

高  1

齐头并进 1

 

 

    经过验证,上述新闻的报道词频均正确。

    但IK分词包在超过几万字的小说进行分析时,却没有精确的数字。如分析明清传奇小说《红楼梦》,"贾宝玉"的次数明显没有达到十万次。作为配角出场的"刘姥姥"竟然比"黛玉"出现的频率还要高?显然是不对的。这是数据在撒谎,至于如何解决,本实验后续修正会继续进行。

    说明IK分词的词数量范围不能达到万字的数量级,且说明IK分词包的效果并不是很好。

Liunx命令处理文本结果

  • Linux处理排序文本结果

    1)sort指令和awk指令

    sort指令和awk指令用于对中文词频高低进行排序。

    指令格式可以如下:

    #cat result.txt | sort –r -n –k 2,2

    格式大概意思为:

    竖立线左侧,为捕获待处理排序的文本。

    竖立线右侧,为sort命令。

    sort –r指降序排列。

    sort -n指按数值型排序(有时10比2的小,因为字符型,可能1比2小,导致比较结果不符合个人需要。)

    sort -k指对文本域操作,-k一般有域起点和域终点。咱们统计词频大概格式是"word numbers",所以word是第一列,即第一域,numbers是第二域。

    -k 2,2指对第2域开始,第2域结束。即对第2域处理。假设样本是英文的单词,如"Hello 5",我们如果对第二个字母排序,则设置为-k 1.2,1.2即可。

2)grep指令

    为

    #grep -o ‘keywords‘ [filename] | wc -l

    grep指令寻找关键词在文本中,返回寻找的关键词的次数。