文档章节

用 Python 做文本挖掘的流程

locusxt
 locusxt
发布于 2015/04/04 13:18
字数 895
阅读 134
收藏 2

  • 收集数据
    • 数据集。如果是已经被人做成数据集了,这就省去了很多麻烦事
    • 抓取。这个是 Python 做得最好的事情,优秀的包有很多,比如 scrapybeautifulsoup 等等。
  • 预处理(对这里的高质量讨论结果的修改,下面的顺序仅限英文
  1. 去掉抓来的数据中不需要的部分,比如 HTML TAG,只保留文本。结合 beautifulsoup 和正则表达式就可以了。pattern.web 也有相关功能。
  2. 处理编码问题。没错,即使是英文也需要处理编码问题!由于 Python2 的历史原因,不得不在编程的时候自己处理。英文也存在 unicode 和 utf-8 转换的问题,中文以及其他语言就更不用提了。这里有一个讨论,可以参考,当然网上也有很多方案,找到一个适用于自己的最好。
  3. 将文档分割成句子。
  4. 将句子分割成词。专业的叫法是 tokenize。
  5. 拼写错误纠正。pyenchant 可以帮你!(中文就没有这么些破事!)
  6. POS Tagging。nltk 是不二选择,还可以使用 pattern
  7. 去掉标点符号。使用正则表达式就可以。
  8. 去掉长度过小的单词。len<3 的是通常选择。
  9. 去掉 non-alpha 词。同样,可以用正则表达式完成 \W 就可以。
  10. 转换成小写。
  11. 去掉停用词。Matthew L. Jockers 提供了一份比机器学习和自然语言处理中常用的停词表更长的停词表中文的停词表 可以参考这个。
  12. lemmatization/stemming。nltk 里面提供了好多种方式,推荐用 wordnet 的方式,这样不会出现把词过分精简,导致词丢掉原型的结果,如果实在不行,也用 snowball 吧,别用 porter,porter 的结果我个人太难接受了,弄出结果之后都根本不知道是啥词了。MBSP 也有相关功能。
  13. 重新去掉长度过小的词。是的,再来一遍。
  14. 重新去停词。上面这两部完全是为了更干净。
  15. 到这里拿到的基本上是非常干净的文本了。如果还有进一步需求,还可以根据 POS 的结果继续选择某一种或者几种词性的词。

----------更新分割线 2013.12.06 --------------

说明:在预处理部分仅仅针对英文的情况,由于中英文在分词上是不同的机制,所以在处理中文的时候需要根据情况进行,个人经验是在去停词之前分词。这部分有待完善。

-------------------------------------------------------------------------------------
如果你觉得我的答案对你有帮助,可以考虑向我付费:

本文转载自:http://zhuanlan.zhihu.com/textmining-experience/19630762

locusxt
粉丝 27
博文 140
码字总数 90989
作品 0
海淀
程序员
私信 提问
Python爬虫与文本挖掘核心技术、会议研修通知

Python作为一门脚本语言,它灵活、易用、易学、适用场景多,实现程序快捷便利,早已经成为程序员们的一门编程利器。Python这门编程语言包罗万象,可以说掌握了python,除了一些特殊环境和高度...

python深度学习
07/29
6
0
“Python爬虫与文本挖掘核心技术”会议通知

“Python爬虫与文本挖掘核心技术”会议通知 随着互联网的发展,网络信息呈现指数式增长,要在短时间内获取大量信息,网络爬虫无疑是一种最适合的方法。通过爬虫获取的海量信息,我们可以对其...

sdxx1021
07/24
14
0
2018Python网络爬虫与文本挖掘技术培训班

各科研院所单位: 随着互联网的发展,网络信息呈现指数式增长,要在短时间内获取大量信息,网络爬虫无疑是一种最适合的方法。通过爬虫获取的海量信息,我们可以对其进行进一步的分析:市场预...

朱苗
2018/06/07
311
0
2018年6月份Python网络爬虫与文本挖掘

各科研院所单位: 随着互联网的发展,网络信息呈现指数式增长,要在短时间内获取大量信息,网络爬虫无疑是一种最适合的方法。通过爬虫获取的海量信息,我们可以对其进行进一步的分析:市场预...

博宏科睿
2018/05/31
123
0
“Python爬虫与文本实例技术与应用”培训班通知

各科研院所单位: 随着互联网的发展,网络信息呈现指数式增长,要在短时间内获取大量信息,网络爬虫无疑是一种最适合的方法。通过爬虫获取的海量信息,我们可以对其进行进一步的分析:市场预...

会务组周恒
2018/06/07
127
0

没有更多内容

加载失败,请刷新页面

加载更多

前端面试题汇总

一. HTML常见的兼容性 1.HTML5 标签在低版本浏览器不兼容 解决办法:使用html5shiv库,引入下列语句 <!--[if lte IE 8]> <script src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></sc......

蓝小驴
31分钟前
7
0
OSChina 周四乱弹 —— 我气的脸都黑了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐《Red Battle》- 高橋李依 / 豊崎愛生 《Red Battle》- 高橋李依 / 豊崎愛生 手机党少年们想听歌,请使劲儿戳(这里) @丶Lion ...

小小编辑
44分钟前
598
22
找OSG教程, B站就有

https://www.bilibili.com/video/av64849038?from=search&seid=11632913960900279653

洛克人杰洛
今天
5
0
学习记录(day07-Vue组件、自定义属性、自定义事件)

[TOC] 1.1.1什么是组件 一个vue文件就是一个组件 组件将html标签/css样式/对应JS打包成一个整体,也可以理解钻进一个具有样式和特效的自定义标签。 一、编写组件(提供方)<template> <di...

庭前云落
今天
5
0
使用Prometheus监控SpringBoot应用

通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用。(本文以SpringBoot 2.1.9.RELEASE 作为监控目标) 编码 添加依赖 使...

JAVA日知录
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部