首页 > 代码库 > 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指令寻找关键词在文本中,返回寻找的关键词的次数。