本文为学习笔记,供自己复习回顾,分享,交流,如果专家们发现谬误之处欢迎批评与修正。
----------------------------------------------------------------------------------------------------------------------------
这门课是我个人认为属于NLP的分支,是我们的选修课,和斯坦福的manning的课一样极为火爆,第一堂课,教师里都坐不下了,足以证明NLP是现在一个非常热门的话题。
关于这门课,我们的上课节奏是上午理论部分,下午实践部分,也就是说,上午讲讲课,下午跑跑代码,我觉得对于刚入门的同学来说还是挺有用的,所以我也按照这样分类。
----------------------------------------------------------------------------------------------------------------------------
1.什么是文本挖掘(Text Mining)?
文本也是一种数据,所以我们先看下什么是数据挖掘。
1.数据挖掘过程(Process)
数据挖掘过程的总体目标是从数据集中提取信息并且把它转换成容易理解的结构,以便后期使用。
实际上,数据挖掘的任务是对大规模数据进行自动或半自动分析以提取先前并没发现的有用的模式,例如,发现数据成群分布(聚类分析),不正常的数据(异常分析),依赖关系(关联规则挖掘)等。
2.数据挖掘产出(Outcome)
从商业角度来看,数据挖掘是将结构化数据转换成解决商业问题的答案。
商业背景:如果没有商业背景,我们的数据挖掘就是一次学术研究。
商业问题:如何没有商业问题,我们的数据挖掘就没啥意义,浪费时间。
数据: 如果没有足够的数据,我们的数据挖掘可能很简单,但是没有意义。
所以,在商业方面的数据挖掘,这三样缺一不可。
所以,文本数据挖掘也就是将非结构化的文本数据转换成解决商业问题的答案。
3.文本挖掘
文本数据挖掘(Text Mining)是指从文本数据中抽取有价值的信息和知识的计算机处理技术。
文本挖掘是指从大量文本数据中抽取事先未知的、可理解的、最终可用的知识的过程,同时运用这些知识更好地组织信息以便将来参考。
文本挖掘是将非结构化的文本数据转换为结构化的数字数据。
如下图,将非结构化的评论信息转换成多行容易处理的数字数据。
4.文本挖掘过程(Process)
文本挖掘的过程相似于又区别于数据挖掘。
文本挖掘基本流程
图片来自https://www.jianshu.com/p/3d767cb5db59
2.为什么文本挖掘这么费劲?
1.特征提取困难性: 对于特称的提取,我们需要很强的背景知识和资源,我们需要了解不同领域的不同业务,这是很困难的。
2.文档表示困难性: 就像上图我们看见的一样,文档文本需要很多特征去表述,这很容易造成我们的数据的变量过多,不易建 模,而有些特征不是那么的直观发现,导致我们初次表述时出现错误。
3.模式拟合差异性:文档一般都不相同,有些文档包含的信息过于突出,很容易建模,这样就导致模型拟合时出现偏差。
4.模式量级差异性:有很多文档,就会造成模式的数量巨大,这对于我们分析来说是极为困难的。
3.为什么要文本挖掘呢?
既然文本挖掘这么费劲,我们为啥还要文本挖掘呢,为啥不直接用结构化数据呢。
1.我们现实生活中,大部分信息存储并不是结构化的,而且这些信息是有用的我们需要将其提取。
2.现在,文本正在数字化,并且容易获取,网站,邮件,社交媒体等媒介可以提供有用的信息。
3.分析文本并结合其他数据,这样可以为商业决策提供更好的结果。
4.文本挖掘能干啥?
有5个基本用例供大家参考:
1. 从非结构化文本中提取信息。
2. 自动文本分类
3.提升预测建模或非监督学习的准确性
4.定位指定或者相关文档
5.从文本中提取指定信息
1.从非结构化文本中提取信息
从人类肉眼不可操作的大量文本语料库或文档中提取答案,
a. 进行情感分析:
1.我的客户都讨论我啥呢?
2.我的目标群体关注点在哪?
3.分析调察问卷中的开放问题。
b. 进行文本流的趋势主题研究:
1.保险索赔趋势
2.保修申请分析
c. 进行文本总结:
1.网站文本的主题主旨
2.自动关键词提取
来源于: http://www.youtube.com/watch?v=PSq7hZ0shLs
2.自动文本分类
1.为后续处理,事先定义文本文档分类类别
2.基于不同类别采取自动的行动,比如,垃圾邮件的筛选,新闻的筛选等
3.基于文本描述进行异常值检测,比如欺诈检测等
来源于: http://www.youtube.com/watch?v=Q5K3gyQJkC0
3.提升预测建模或非监督学习的准确性
1.使用文本挖掘提升数据挖掘结果
2.将文本转换为数字并进行数据挖掘
a.基于词频建立数据矩阵
b.基于矩阵计算不同索引
c.合并索引,并入结构化数据进行挖掘
3.从申请处理笔记中预测骗保行为
4.使用字典控制词汇量,减少偏差
来源于: http://www.youtube.com/watch?v=OlQpm8qTog4
4.定位指定或者相关文档
1.文档搜索,给定指定文档,进行相似相关文档搜索
2.建立相关文档池用于分析
3.网站搜索
来源于:https://www.youtube.com/watch?v=evLDjHQzMRU
5.从文本中提取指定信息
1.抽象层面上,答疑(Question Answering),对指定问题进行回答。
2.更基本层面,对文档与语料库进行定位并提取实体。
3.更高级一点就是,自 动QA
4.命名实体提取就是提取一些相关信息。
来源于: http://www.youtube.com/watch?v=d_yXV22O6n4
参考:
• Chris Manning & Hinrich Schutze, Foundations of Statistical Natural Language Processing, MIT Press, 1999
• NLP resources: http://nlp.stanford.edu/links/statnlp.html
• Christopher Potts (Stanford University), Sentiment Symposium Tutorial,
http://sentiment.christopherpotts.net/index.html
• John Elder, Gary Miner, Bob Nisbet. Practical Text Mining and Statistical Analysis for non-Structured Text Data Applications, Academic Press, 2012
• Roger Bilisoly. Practical Text Mining with PERL, John Wiley
& Sons, 2008