《Text Mining and Analytics》学习笔记——第一周

课程链接:https://www.coursera.org/learn/text-mining
主讲:伊利诺伊大学香槟分校 ChengXiang Zhai教授

NLP领域有哪些神一样的人物:知乎链接

前言

1.什么是文本数据?

《Text Mining and Analytics》学习笔记——第一周

首先数据是感知器在感知真实世界后的一个反馈。

当温度计,地理传感器等设备感知到的是非文本数据,而对于如果将人类最为一个传感器的话,那么人类感知到的数据就称为文本。

ps:
不管是文本数据还是非文本数据都是数据,所以文本挖掘也属于数据挖掘的一部分,文本挖掘也不一定只用到文本数据,常常会结合非文本数据一起分析。

2.文本挖掘是做什么的呢?

现实世界中有大量的文本数据,面对这些数据我们能做什么呢?
正如下图显示的一样,目前主流的技术有文本检索(Text Retrieval)和文本挖掘(Text Mining),它们之间的关系可由下面的图中看出来。
《Text Mining and Analytics》学习笔记——第一周

可以看出文本检索(Text Retrieval)和文本挖掘(Text Mining)的关系:

  • 文本检索(Text Retrieval)是文本挖掘(Text Mining)的前提和预处理器。(文本检索将大量的文本数据转化为一些相关的数据)
  • 文本检索(Text Retrieval)是知识的来源。

而对于文本挖掘(Text Mining)而言,还有另一种叫法:文本分析(Text Analytics),它们做的事情都是:将文本数据转化为高质量的信息(hign-quality information)或可用的知识(actionable knowledge)。

  • 高质量的信息:关于主题的简化后的信息(摘要)–>帮助人们理解信息
  • 可用的知识:帮助人们决策(某种条件下,哪种选择更好)

下面这张图就可以展示自然语言处理的大框架:
《Text Mining and Analytics》学习笔记——第一周

其中包括了:

  • 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(一只狗在操场上追一个男孩)
《Text Mining and Analytics》学习笔记——第一周
当我们看这样一个句子我们不需要思考 来理解它的意思 但当一个计算机需要理解这个句子时 这个计算机必须完成许多步骤 :

  • 1.句法分类:如何在英文里分类这些文字 当然这很容易,我们只需要看空格 之后计算机需要知道这些文字的分类

  • 2.词法分析(Lexical analysis):狗是一个名词,追是一个动词,男孩是另一个名词等等,分类完需要进行词性标注 :其是按照句法分类给这些单词打上标签

  • 3.句法解析(Syntactic analysis):将短语连接成句子,计算机也需要找出 这些单词之间的关系 ,所以“一个”和“狗”能组成一个名词短语 “在操场上”是一个介词,等等 ,并且有一个明确的方法使它们连接在一起 来创造含义 ,有些其他的组合可能不合理

  • 4.语义分析(Semantic analysis):理解语句的意思,对于计算机来说,它必须用符号来代表这些实质含义 所以对于“狗”,D1代表狗 ,“男孩”,b1代表男孩等等, 同时”追赶”作为一个谓语 这里“追赶“是一个谓语 以及三个主题: d1, b1, p1 p1指操场 所以按照正式的语义学来说 一旦我们达到这种理解我们甚至可以进行推断 ,举个栗子,假设有这样一个规则,如果某人被追赶, 这个人可能会被吓到 然后我们可以推断这个小男孩可能会被吓到 。

  • 5.实务分析(Pragmatic analysis):我们可能更进一步推断 这个句子在说明的内容 或者为什么句子里说这个的这个人是这个句子的主语 因此 这和这个句子的目的有关联 ,这就是被称作说话动作分析或者 实务分析, 这是使用语言的第一步 ,在这个情况下一个人这么说可能会提醒另一个人带回他的狗

自然语言处理的难点

自然语言读取困难的主要原因是 :它是为了人类高效沟通设计的,所以只有在拥有大量常识的情况下才能使都通变得有效。

然而对于计算机这将会比较困难,因为一台计算机没有人类所有的常识, 因此计算机会很困惑(比如说有歧义等)

2.文本表示

一图胜千言:
《Text Mining and Analytics》学习笔记——第一周
从上往下看,我们既可以直接用一个字符串来表达文本,也可以用一个单词的序列来表达一个文本,也可以用一个带标签的单词的序列来表达一个文本,还可以给这个序列加上语法的结构,······,甚至可以给文本加上可能产生的行为来表达文本

但是越往下,就越需要有人们标记大量的数据,分析人类语言,越往下错误的可能也越大,但文本的表达与接近人类的认知。

《Text Mining and Analytics》学习笔记——第一周

这门课是基于单词的文本表示。

二、词义分析(word associate mining and analysis)

两种基本的单词关系:

  • 聚合(Paradigmatic Relation):两个词属于同一个类别(如“猫”和“狗”,“星期一”和“星期四”)
    • 找到关键词的语境
    • 计算语境的相似度
    • 如果语境相似度高,则单词为聚合关系
  • 组合(Syntagmatic Relation):两个单词可以连接成一个短语(如“猫”和“坐”,“车”和“驾驶”)
    • 计算两个单词再一次出现的次数
    • 比较一起出现和单独出现情况
    • 在一起出现的次数多说明应该是组合关系

发现聚合关系

我们如何以数学方式表现语境,然后定义相似度函数 ?

《Text Mining and Analytics》学习笔记——第一周

将空的左边视为Left1(“cat”),右边一个单词视为Right1(“cat”),整句话视为Windows8(“cat”),则它们相似度为:
Sim(Cat,Dog)=Sim(Left1(Cat),Left1(Dog))+Sim(Right1(Cat),Right1(Dog))+···+Sim(Windows8(Cat),Windows8(Dog))

如果这个相似度高则说明是聚合关系。

具体的做法是把每个语境看作一个向量,在高维空间中计算两个向量的相似度来看语境的相似度(我们词库中有N个词,那么我们就有N个维度)。

《Text Mining and Analytics》学习笔记——第一周

d1表示cat这个词的语境,d2表示dog这个词的语境。

此时问题转化为了,怎么计算向量(即计算xi,yi),怎么计算相似度?

其中一个方法:EOWC词期望
d1=(x1,x2,xN)
d2=(y1,y2,yN)
其中:
xi=c(wi,d1)/|d1|
yi=c(wi,d2)/|d2|
c(wi,d1)为词wi出现在cat语境中的次数
c(wi,d2)为词wi出现在dog语境中的次数
|d1|为cat在词库中出现的次数
|d2|为dog在词库中出现的次数

所以相似度为:
Sim(d1,d2)=d1d2=x1y2++xNyN=i=1nxiyi

EOWC词期望存在的问题

第一个是它更倾向于匹配一个频繁的术语,而不是匹配更明确的术语。过分强调了一个术语的匹配。

第二个是对每个词都一样 ,所以如果我们匹配the这样的词 ,它的概率可能跟eats差不多, 但是直觉上我们知道 一个句子里有the 并不是多吃惊的事, the这个词哪里都会出现 ,所以相比匹配到像eats这样并不常出现的词, 匹配到了the并不算是很有力的证据。

提升EOWC的方法

针对第一个问题,使用词频次频率(Sublinear tansformation of Term Frequency)

针对第二个问题,使用加权逆文本频率指数(inverse document frequency term weighting,IDF term weighting)

1.计算词频(TF):
=

如果只使用词频,如果一句话是“原子能的应用”,拆分为“原子能”,“的”,“应用”。显然这句话中“的”字的频率最高了但对于实际应用却没有什么帮助,而我们根据直觉也能发现“原子能”比“应用”这个词要重要一些,所以就用该给单词加权重,衡量权重的方法就是计算逆文档频率(IDF)

2.计算逆文档频率(IDF)
=log

单词“的”如果在语料库中的每一个文档中都出现过,那么逆文档频率为0,相当于单词“的”对于区分效果的贡献为0

3.计算词频-逆文档频率(TF-IDF) :
=

将加权后的频率作为衡量标准就变得科学一些了

详细TF-IDF请查看笔记《数学之美》XI笔记——如何确定网页和查询的相关性