手把手教你做文本挖掘
来源:互联网 发布:fanuc pmc编程手册 编辑:程序博客网 时间:2024/06/05 15:39
文| 刘顺祥
文章开篇之前先来点福利:慧都学院4月三场免费公开课,场场经典不容错过,点击文字即可报名。
1.基于图的数据分析之neo4j产品概述——挖掘大数据关系网络
2.机器学习算法之水煮SVM
3.葡萄城系列公开课——手把手教你玩转报表
一、文本挖掘定义
文本挖掘指的是从文本数据中获取有价值的信息和知识,它是数据挖掘中的一种方法。文本挖掘中最重要最基本的应用是实现文本的分类和聚类,前者是有监督的挖掘算法,后者是无监督的挖掘算法。
二、文本挖掘步骤
1)读取数据库或本地外部文本文件
2)文本分词
2.1)自定义字典
2.2)自定义停止词
2.3)分词
2.4)文字云检索哪些词切的不准确、哪些词没有意义,需要循环2.1、2.2和 2.3步骤
3)构建文档-词条矩阵并转换为数据框
4)对数据框建立统计、挖掘模型
5)结果反馈
三、文本挖掘所需工具
本次文本挖掘将使用R语言实现,除此还需加载几个R包,它们是tm包、tmcn包、Rwordseg包和wordcloud包。其中tmcn包和Rwordseg包无法在CRAN镜像中下载到,有关这两个包的下载方法。
四、实战
本文所用数据集来自于sougou实验室数据,具体可至链接下载>>>
本文对该数据集做了整合,将各个主题下的新闻汇总到一张csv表格中,数据格式如下图所示:
具体数据可至文章后面的链接。
接下来需要对新闻内容进行分词,在分词之前需要导入一些自定义字典,目的是提高切词的准确性。由于文本中涉及到军事、医疗、财经、体育等方面的内容,故需要将搜狗字典插入到本次分析的字典集中。
如果需要卸载某些已导入字典的话,可以使用uninstallDict()函数。
分词前将中文中的英文字母统统去掉。
图中圈出来的词对后续的分析并没有什么实际意义,故需要将其剔除,即删除停止词。
停止词创建好后,该如何删除76条新闻中实际意义的词呢?下面通过自定义删除停止词的函数加以实现。
相比与之前的分词结果,这里瘦身了很多,剔除了诸如“是”、“的”、“到”、“这”等无意义的次。 判别分词结果的好坏,最快捷的方法是绘制文字云,可以清晰的查看哪些词不该出现或哪些词分割的不准确。
仍然存在一些无意义的词(如说、日、个、去等)和分割不准确的词语(如黄金周切割为黄金,医药切割为药等),这里限于篇幅的原因,就不进行再次添加自定义词汇和停止词。
此时语料库中存放了76条新闻的分词结果。
从图中可知,文档-词条矩阵包含了76行和7939列,行代表76条新闻,列代表7939个词;该矩阵实际上为稀疏矩阵,其中矩阵中非0元素有11655个,而0元素有591709,稀疏率达到98%;最后,这7939个词中,最频繁的一个词出现在了49条新闻中。
由于稀疏矩阵的稀疏率过高,这里将剔除一些出现频次极地的词语。
这样一来,矩阵中列大幅减少,当前矩阵只包含了116列,即116个词语。
为了便于进一步的统计建模,需要将矩阵转换为数据框格式。
总结
所以在实际的文本挖掘过程中,最为困难和耗费时间的就是分词部分,既要准确分词,又要剔除无意义的词语,这对文本挖掘者是一种挑战。 文中数据和脚本可至如下链接下载:http://yunpan.cn/cupyBj9xTkHe7访问密码 a88b
- 手把手教你做文本挖掘
- 文本挖掘:手把手教你分析携程网评论数据
- 手把手系列之四十八—手把手教你做寿司
- 手把手教你做键盘记录器
- 手把手教你做游戏外挂
- 手把手教你用枫叶做玫瑰
- 手把手教你做java远程控制
- 手把手教你做背单词软件
- 手把手教你做背单词软件
- 手把手教你做android widget
- 手把手 教你如何做网线接头
- 手把手教你做android widget
- 手把手教你做iOS推送
- 手把手教你做iOS推送
- 手把手教你做iOS推送
- 手把手教你做iOS推送
- 手把手教你做“迷你浏览器”
- 手把手教你怎么做java高手!
- String与StringBuffer的区别
- 第一章 Web MVC简介
- 455. Assign Cookies
- java,android更改,设置系统时间
- c#操作Excel模板,替换命名单元格或关键字形成报表
- 手把手教你做文本挖掘
- JavaMail-收发邮件
- ifnull嵌套查询练习
- Xcode8.3.1 iPhone 10.3的模拟器跑不起来,macOS Serra 系统 打开不了我们下载的应用程序
- dos常用命令内部命令
- Codeforces Round #395 (Div. 2)
- ThinkPHP查询方式
- android_将其他的项目导入到自己项目中 module
- 用信息分类画页面布局