前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python机器学习】文本数据分析简介

【Python机器学习】文本数据分析简介

作者头像
量化投资与机器学习微信公众号
发布2018-01-29 15:08:49
1.3K0
发布2018-01-29 15:08:49
举报

文本类型数据是数据挖掘分析中重要的一部分。以证券市场分析为例,与一般的“价、量、宏观经济数字......”等相比,以新闻为代表的文本类数据揭示了市场信息不同纬度,往往更加即时、更贴近市场。

今天就文本数据分析做简单的介绍。

1数据的获取

依旧以对证券市场分析为例,常用到的数据有“财经新闻、上市公司公告、股吧网友讨论等”。我们希望从这些数据源中能得到有价值的信息,可能是一段时间的新闻热点、可能是网友对不同事件的正负面情绪、或者其他一些。 第一步就是获取数据,新闻相关的有新浪财经、华尔街见闻等;上市公司公告有巨潮资讯网、交易所官网;股吧有东方财富网、雪球等。 一般选用的方法就是爬虫了,根据各网站的不同,爬取难易程度不一 。大规模爬虫可以选用:scrapy 分布式爬取,而一般简单的爬虫可以用: lxml、BeautifulSoup、 Requests、Selenium等。具体操作过程中,有些网站有比较强的反爬虫机制,需要加ip代理池等操作。 举个简单例子 —— 爬取中国证券报网站上近一周的所有公司新闻。 简单过程就是: a. 找到目标网页的URL。 b. 在目标页面URL中找到目标内容并保存。 一般可以通过lxml.etree用xpath定位实现、或者用BeautifulSoup根据CSS定位实现。

至于数据的储存,各种数据库就依个人喜好了,例子中直接保存到txt里了。多说一句,例子中取的数据不牵涉到动态加载内容,如有需要最简单是selenium模拟,另外方法是Chrome F12 network,分析Ajax内容,构造请求。具体今天就先略去了。

2文本初步处理

取得数据之后下一步就是简单的处理了,对中文来说,就是分词,去停用词这些,可用的工具有: Jieba 、PyNlpir等。具体选哪个还是去试一下看哪个合适,自己选吧。 对于要让程序到practical的程度,分词还是很重要的,因为很多专业术语,所以自定义字典userdict比较重要。上面提到的两个包都可以导入自定义字典,要达到令人满意的结果,这userdict就看个人了。去停用词就是删除一些没什么实际意义的形容词、助词等。 分词程序:

分词结果:

3提取关键词

下一步是把每个文本提取关键词,用关键词向量代表每个文本。 一般用的方法是有TF-IDF,具体细节可以wiki一下。很简单,主要意思就是一个词在文档中出现频率越高,对文档而言更重要; 同时一个词要是在所有文档中都出现,比如“的”,那就重要性减弱。于是抽象出 "TF : termfrequency" 和 "IDF: inverse documentary frequency"。以“国企改革”为例,“TF”算的是“国企改革”在文章中出现的频率,“IDF”算“国企改革”在所有文档中出现频率。 一般采用log(...) * log(...)的形式,不过这个也可以变,没有一个规定。

scikit-learn中有直接封装好的TF-IDF程序,在这里我贴出一个自己写的: 关键词提取程序:

关键词提取结果:

好了,今天先介绍到这里。大家有兴趣的话可以和 royxroy@163.com 联系,欢迎讨论问题:)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量化投资与机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档