课程链接: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(Windows8(“Cat”),Windows8(“Dog”))Sim(“Cat”,”Dog”)=Sim(Left1(“Cat”),Left1(“Dog”))+Sim(Right1(“Cat”),Right1(“Dog”))+···+Sim(Windows8(“Cat”),Windows8(“Dog”))Sim(“Cat”,”Dog”)=Sim(Left1(“Cat”),Left1(“Dog”)) +Sim(Right1(“Cat”),Right1(“Dog”))+···+Sim(Windows8(“Cat”),Windows8(“Dog”))

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

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

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

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

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

所以相似度为:
Sim(d1,d2)=d1⋅d2=x1y2+⋯+xNyN=∑ni=1xiyiSim(d1,d2)=d1⋅d2=x1y2+⋯+xNyN=∑i=1nxiyiSim(d1,d2)=d1\cdot d2=x_{1}y_{2}+\cdots+x_{N}y_{N}=\sum _{i=1}^{n} x_{i}y_{i}

EOWC词期望存在的问题

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

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

提升EOWC的方法

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

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

1.计算词频(TF):
词频=某个词在文章中出现的次数该文章总词数词频=某个词在文章中出现的次数该文章总词数词频=\frac{某个词在文章中出现的次数}{该文章总词数}

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

2.计算逆文档频率(IDF)
逆文档频率=log语料库文档总数包含改词的文档数逆文档频率=log语料库文档总数包含改词的文档数逆文档频率=log \frac{语料库文档总数}{包含改词的文档数}

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

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

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

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

《Text Mining and Analytics》学习笔记——第一周相关推荐

  1. WDK学习笔记第一周

    文章目录 摘要 一.对PM2.5预测的论文的总结 1.1 背景 1.2 PM2.5 1.3 综述 1.4 对桂林空气质量文章的总结 1.4.1 空气质量变化 1.4.2 污染物扩散的影响因素 二.LS ...

  2. 2022李宏毅机器学习深度学习学习笔记--第一周

    文章目录 摘要 机器学习的基本概念 机器学习 不同的函式类别 gradient descent 深度学习(Deep learning) Case study 摘要 本文主要介绍什么是机器学习,机器学习 ...

  3. 小吴的《机器学习 周志华》学习笔记 第一章 绪论

    小吴的<机器学习 周志华>学习笔记 第一章 绪论 近一年时间接触到不少机器学习的知识,虽然断断续续学了一些,总感觉还没有入门(只学会了疯狂调包).因此,最近开始系统学习Machine Le ...

  4. 《Go语言圣经》学习笔记 第一章 Go语言入门

    Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...

  5. 吴恩达机器学习笔记第一周

    第一周 吴恩达机器学习笔记第一周 一. 引言(Introduction) 1.1 欢迎 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学习 二.单变量线性回归(Linear Regress ...

  6. 机器学习笔记 (第一周)

    机器学习笔记 (第一周) 目录 机器学习笔记 (第一周) 引言(Introduction) 1.1 什么是机器学习,机器学习能做些什么事情 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学 ...

  7. 编译原理(龙书)学习笔记 第一章

    编译原理(龙书)学习笔记 第一章 1.1语言处理器 解释器(interpreter) : 编译器(compiler): 一个语言处理系统 练习 1.1.1:编译器和解释器之间的区别 1.1.2:相对优 ...

  8. 惯性导航系统学习笔记——第一讲

    惯性导航系统学习笔记 第一讲 惯性导航系统概述 一.惯性导航基本概念 二.惯性导航基本原理 三.惯性导航应用与发展 四.小结 第一讲 惯性导航系统概述 本文为学习朱家海教授<惯性导航系统> ...

  9. python学习日记(第一周)

    python学习日记(第一周) 前言: 无论出于什么目的,学个程序语言吧.之前学过一点点基础语法,然后就搁置了两年,日记仅作为个人记录,有问题还望不吝赐教 其实这玩意儿应该每次学一部分记录一部分的,好 ...

最新文章

  1. Linux的mount命令简介
  2. 怎么让jsp中的按钮置灰不能使用_UI设计中的按钮设计规范
  3. python编程自学能学会吗-自学Python会有什么困难?老男孩自学python编程
  4. 家电换新就现在 国美发放“年中惠民消费大补贴”
  5. html打开显示脚本错误,IE浏览器显示脚本错误怎么解决?IE浏览器脚本错误解决方法图文教程介绍...
  6. UI完美配色专辑|色彩是影响设计使用者情绪和行为行为的最重要因素之一
  7. 从Element ui看开发公共组件的三种方式
  8. SpringBoot异步任务, 以及带返回值的异步任务(@Async 不起作用的原因)
  9. 使用javascript实现在页面打印的效果的三种方式
  10. jquery 的模块化
  11. 室内空气流动原理图_空气流动基本原理
  12. 拥有“中国诺贝尔奖”的未来论坛,会告诉我们怎样的未来? | 未来论坛 2017...
  13. Java命令行开关_java命令行操作
  14. k2ttl救砖_无线路由救砖 ttl刷机教程
  15. 天池竞赛-地表建筑物识别 语义分割
  16. 大数据下的用户与价值分析
  17. Tableau 符号地图、连续面积图、圆视图、仪表板
  18. 约瑟夫环——递推公式详解(leetcode 1823. 找出游戏的获胜者)
  19. C语言实现Base64编码转码
  20. 计算机考研三百多分很难吗,考研考300分很难吗?

热门文章

  1. 数仓经典案例-各个视频平均完播率、平均播放进度
  2. 图书管理系统 jsp + servlet + mysql (2023)
  3. 【机器人轨迹规划】ur16e机器人三维模型+轨迹规划+画五角星轨迹
  4. 由左右眼图片合成红蓝/红青立体图
  5. Unity编辑器扩展: 程序化打图集工具
  6. 2018-2019 ACM-ICPC沈阳(C,J)
  7. php blog 博客程序那个好
  8. 赛宁网安-r3kapig联合战队冲击DEF CON CTF 2022总决赛
  9. 【微信小程序】不支持使用本地图片设置背景图片解决方法
  10. project-clean的作用