10.呈现和挖掘文本
基本概念:构建易于挖掘数据呈现的重要性;为了数据挖掘的文本呈现
主要技巧:词袋呈现;TFIDF计算;N-grams;填充;命名的实体抽取;主题模型
为什么文本重要
为什么文本困难
呈现
词袋
词组频率
测量稀疏性:逆向文件频率
组合它们:TFIDF
例子:爵士音乐家
*IDF和熵的关系
词袋之外
N-gram 序列
命名的实体抽取
主题模型
例子:挖掘新闻故事预测股票变动
任务
数据
数据预处理
结果
总结
第十章 呈现和挖掘文本
**
我预感这章对我来说是难啃的骨头,因为我对文本挖掘一无所知。无知让我恐惧。
**
基本概念:构建易于挖掘的数据表达的重要性;为了数据挖掘的文本的呈现
主要技巧:词袋呈现;TFIDF计算;N-grams;填充;命名的实体抽取;主题模型
现实世界的数据对挖掘工具并不友好,要想适用所有的挖掘工具,我们要么处理数据要么你开发针对数据的工具。一流的数据科学家应用这两种方案。通常,处理数据更容易一些。
原则上,文本是另一种数据,文本处理只是数据处理的一种。但是因为文本处理本身需要很多的专业知识,所以我们这里只是管中窥豹。
为什么文本重要?
文本无处不在。要想处理海量的文本数据,需要先把它转换成有意义的形式。
搜索引擎之下是大量的文本导向数据科学。
在商务中,理解客户反馈需要理解文本。
如何进行文本初级规则化?
1.去掉大小写
2.提取词干(stemming)
3.去掉停用词(如and,of, the等)
这部分可参考我CSDN的文章:https://blog.csdn.net/zs15321583801/article/details/84061198
稀疏性的测量
IDFDF
除了在词频中引入最低最高频率限制,许多系统考虑词语在整个文集上的分布。一个术语出现的文档越少,它属于出现的文档的重要性就越大。
这种关于术语稀疏性的度量叫做逆文档频率
词语在整个文集中出现的相对次数越少,它对所出现的文档的重要性就越高(也就是更能表现这篇文档的特征)
关于文本数据的挖掘,本质上就是语义理解。
文本呈现很流行的一种方式就是用词频×逆文本频率
TFIDF本质上就是抽取文本中的重要特征。
这个值表明了某个词对某篇文档的重要性(对文档的表征性,说明性)。
这样,每个文档就变成了一个数值型特征向量,文集就是这个特征向量集。这个集就可以用于分类算法,聚类或检索。
如果说用词袋方法挖掘文本,那就是说他们把每一个单词当做特征。它们的值应该是二分的,正则化或未正则化的词频或是TFIDF(该词对文档的重要性),
数据科学家对如何最好的解决给定文本有直观的认识,但他们通常会用不同的文本表现方式来试验,看看哪个产生最好的结果。
这部分参考我CSDN的文章:https://blog.csdn.net/zs15321583801/article/details/84061348
例子:
呈现爵士音乐家个人传记文本(为可供算法使用的格式)
词干提取或许不完美,比如将“famous”提取为“famou”,但是只要它在所有文档中都一致就行。
**
其实就是将含有多个文档的文集通过TFIDF方法转变为特征变量是文集中出现的单词,而特征值是对应文档对应特征的TFIDF值的一个数据框。然后通过COSINE方法(通常用来计算文本相似性)计算他们的相似性进行比较,进而分组(聚类)。
昨天看到这里让我有些灰心了,其实也没那么难。
**
*IDF和熵的关系
略过
词袋之外其它的方法
词袋方法在很多情况下表现不错,但是还有一些它不好用的情况,有其他的方法。
略过。
例子:挖掘新闻故事预测股票价格变动
用新闻故事来预测股票波动,粗略地说,预测股票市场。
任务
每天股票市场上都有活动。公司制定和公布决定——合并,新产品,赢得项目,等等这些。——然后金融新闻行业报道这些新闻。投资者读这些故事,可能改变他们关于公司前景的看法,以及进行相应的股票交易。这导致股票价格变动。比如,关于合并,赢得项目,常规变化等等都可以影响股价,它们可能直接的影响了潜在收益或是他影响股民对其它股民可能会投资这支股票的情况
**
短线交易或许可能让人有巨大收益,但是我觉得不应该做这种浮嚣的行当和事情。
但是这个任务也告诉了我:要了解业务动向,要知道它的关键点,在这里,股价的变动主要是由于人们接到了各种各样的信息。那么,我们就要将信息,当做数据,进行分析,辅导我们的决策。
人们根据什么进行决策?信息。
**
这对金融市场是一个简单的观点,但是,他足够展开我们的任务了。
理想情况下,我们想预测——提前和精确地——公司股价随着信息流的变化。
现实中,股价变动受很多复杂因素的影响,其中很多都没有从新闻中传达出来。
所以,我们会为了一个更为谦逊的目的挖掘新闻,就是新闻推荐。从这点上看,有大量的市场信息涌入——有些有用,有些没用。我们想预测我们应该关注的那些信息。什么事有趣的故事?我们把它定义为可能造成股价变化的信息。
我们得进一步简化问题让他更易处理(事实上,这个是人是问题构建一个很好的案例)。这里是一些问题和一些简化猜想。
首先得好好定义问题,在简化问题和提取信息方面找到一个平衡——一个难点。
了解问题背景:
1.很难非常提前预测,因为股票信息多是及时的。
我们用当天的新闻预测当天的股票价格变动。
2.很难精准预测股票价格。而是我们预测趋势——变或不变——来决定该新闻是否有用。
3.很难预测小变动,事实上任何新闻都可能带来小变动,我们需要大变动。忽略给股价小变动的新闻。
4.很难将一条新闻和股价变化联系起来。原则上,任何新闻都可能影响任何股价。如果我们接受这种影响,就有大问题:如何决定成千上万条新闻中哪些是有关的?我们需要缩窄“因果半径”
我们会假定只有提及了特定股票的新闻会影响股价。这是不准确的,显然——公司会被他们的竞争者、消费者和客户影响,一个新闻提及所有这些是很少见的。
我们将变化大于±5%的,我们才认为是波动。简化问题!!!
数据
我们用的数据包含两个时间序列:新闻流和相应的日股价。互联网上有很多金融数据,如谷歌财经和雅虎财经。
比如,我们要找到关于苹果公司的新闻,可以在雅虎财经页面上看到:https://finance.yahoo.com/quote/AAPL?ltr=1
其中聚集了院子各处的新闻。历史股价可以从很多资源找到,比如谷歌财经。
**
找数据也是一件重要的事情
**
这一部分让我加深了把文本当做数据看待的思维。为本就是数据,确确实实可以被可以等加成数据。