课程链接:https://www.coursera.org/learn/text-mining
主讲:伊利诺伊大学香槟分校 ChengXiang Zhai教授NLP领域有哪些神一样的人物:知乎链接
前言
1.什么是文本数据?
首先数据是感知器在感知真实世界后的一个反馈。
当温度计,地理传感器等设备感知到的是非文本数据,而对于如果将人类最为一个传感器的话,那么人类感知到的数据就称为文本。
ps:
不管是文本数据还是非文本数据都是数据,所以文本挖掘也属于数据挖掘的一部分,文本挖掘也不一定只用到文本数据,常常会结合非文本数据一起分析。
2.文本挖掘是做什么的呢?
现实世界中有大量的文本数据,面对这些数据我们能做什么呢?
正如下图显示的一样,目前主流的技术有文本检索(Text Retrieval)和文本挖掘(Text Mining),它们之间的关系可由下面的图中看出来。
可以看出文本检索(Text Retrieval)和文本挖掘(Text Mining)的关系:
- 文本检索(Text Retrieval)是文本挖掘(Text Mining)的前提和预处理器。(文本检索将大量的文本数据转化为一些相关的数据)
- 文本检索(Text Retrieval)是知识的来源。
而对于文本挖掘(Text Mining)而言,还有另一种叫法:文本分析(Text Analytics),它们做的事情都是:将文本数据转化为高质量的信息(hign-quality information)或可用的知识(actionable knowledge)。
- 高质量的信息:关于主题的简化后的信息(摘要)–>帮助人们理解信息
- 可用的知识:帮助人们决策(某种条件下,哪种选择更好)
下面这张图就可以展示自然语言处理的大框架:
其中包括了:
- 1.语言分析:可以分析某种语言(比如English)的语言特性
- 2.内容挖掘:得到文本想要表达的内容或高质量的信息
- 3.情感分析:因为文本常带有主观情绪,可由此分析作者感情
- 4.预测分析:由文本推测真实世界的情况
注:
文本挖掘不一定只用到文本数据,常常会结合非文本的数据来协助分析,也会经常加入环境变量来分析。
这门课会讲什么?
但是在做各种分析之前,需要先进行对文本的处理,所以这门课主要会讲:
- 1.自然语言处理(NLP)&文本表示(text representation)
- 2.词义分析(word associate mining and analysis)
- 3.主题挖掘(Topic mining)
- 4.情感分析(sentiment analysis)
- 5.基于文本的预测(Text-based prediction)
一、自然语言处理&文本表示
1.自然语言处理
自然语言处理是文本挖掘的基础,我们更好地理解文本数据, 我们就能更好地进行文本挖掘
有一个简单的例子:A dog is chasing a boy on the playground(一只狗在操场上追一个男孩)
当我们看这样一个句子我们不需要思考 来理解它的意思 但当一个计算机需要理解这个句子时 这个计算机必须完成许多步骤 :
1.句法分类:如何在英文里分类这些文字 当然这很容易,我们只需要看空格 之后计算机需要知道这些文字的分类
2.词法分析(Lexical analysis):狗是一个名词,追是一个动词,男孩是另一个名词等等,分类完需要进行词性标注 :其是按照句法分类给这些单词打上标签
3.句法解析(Syntactic analysis):将短语连接成句子,计算机也需要找出 这些单词之间的关系 ,所以“一个”和“狗”能组成一个名词短语 “在操场上”是一个介词,等等 ,并且有一个明确的方法使它们连接在一起 来创造含义 ,有些其他的组合可能不合理
4.语义分析(Semantic analysis):理解语句的意思,对于计算机来说,它必须用符号来代表这些实质含义 所以对于“狗”,D1代表狗 ,“男孩”,b1代表男孩等等, 同时”追赶”作为一个谓语 这里“追赶“是一个谓语 以及三个主题: d1, b1, p1 p1指操场 所以按照正式的语义学来说 一旦我们达到这种理解我们甚至可以进行推断 ,举个栗子,假设有这样一个规则,如果某人被追赶, 这个人可能会被吓到 然后我们可以推断这个小男孩可能会被吓到 。
5.实务分析(Pragmatic analysis):我们可能更进一步推断 这个句子在说明的内容 或者为什么句子里说这个的这个人是这个句子的主语 因此 这和这个句子的目的有关联 ,这就是被称作说话动作分析或者 实务分析, 这是使用语言的第一步 ,在这个情况下一个人这么说可能会提醒另一个人带回他的狗
自然语言处理的难点:
自然语言读取困难的主要原因是 :它是为了人类高效沟通设计的,所以只有在拥有大量常识的情况下才能使都通变得有效。
然而对于计算机这将会比较困难,因为一台计算机没有人类所有的常识, 因此计算机会很困惑(比如说有歧义等)
2.文本表示
一图胜千言:
从上往下看,我们既可以直接用一个字符串来表达文本,也可以用一个单词的序列来表达一个文本,也可以用一个带标签的单词的序列来表达一个文本,还可以给这个序列加上语法的结构,······,甚至可以给文本加上可能产生的行为来表达文本
但是越往下,就越需要有人们标记大量的数据,分析人类语言,越往下错误的可能也越大,但文本的表达与接近人类的认知。
这门课是基于单词的文本表示。
二、词义分析(word associate mining and analysis)
两种基本的单词关系:
- 聚合(Paradigmatic Relation):两个词属于同一个类别(如“猫”和“狗”,“星期一”和“星期四”)
- 找到关键词的语境
- 计算语境的相似度
- 如果语境相似度高,则单词为聚合关系
- 组合(Syntagmatic Relation):两个单词可以连接成一个短语(如“猫”和“坐”,“车”和“驾驶”)
- 计算两个单词再一次出现的次数
- 比较一起出现和单独出现情况
- 在一起出现的次数多说明应该是组合关系
发现聚合关系
我们如何以数学方式表现语境,然后定义相似度函数 ?
将空的左边视为Left1(“cat”),右边一个单词视为Right1(“cat”),整句话视为Windows8(“cat”),则它们相似度为:
Sim(“Cat”,”Dog”)=Sim(Left1(“Cat”),Left1(“Dog”))+Sim(Right1(“Cat”),Right1(“Dog”))+⋅⋅⋅+Sim(W