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

课程链接: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)) S i m ( “ C a t ” , ” D o g ” ) = S i m ( L e f t 1 ( “ C a t ” ) , L e f t 1 ( “ D o g ” ) ) + S i m ( R i g h t 1 ( “ C a t ” ) , R i g h t 1 ( “ D o g ” ) ) + · · · + S i m ( W i n d o w s 8 ( “ C a t ” ) , W i n d o w s 8 ( “ D o g ” ) )

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

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

这里写图片描述

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

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

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

所以相似度为:
Sim(d1,d2)=d1d2=x1y2++xNyN=ni=1xiyi S i m ( d 1 , d 2 ) = d 1 ⋅ d 2 = x 1 y 2 + ⋯ + x N y N = ∑ 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):
= 词 频 = 某 个 词 在 文 章 中 出 现 的 次 数 该 文 章 总 词 数

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

2.计算逆文档频率(IDF)
=log 逆 文 档 频 率 = l o g 语 料 库 文 档 总 数 包 含 改 词 的 文 档 数

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

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

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

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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mastering Text Mining with R English | 5 Jan. 2017 | ISBN: 178355181X | 258 Pages | AZW3/MOBI/EPUB/PDF (conv) | 24.8 MB Key Features Develop all the relevant skills for building text-mining apps with R with this easy-to-follow guide Gain in-depth understanding of the text mining process with lucid implementation in the R language Example-rich guide that lets you gain high-quality information from text data Book Description Text Mining (or text data mining or text analytics) is the process of extracting useful and high-quality information from text by devising patterns and trends. R provides an extensive ecosystem to mine text through its many frameworks and packages. Starting with basic information about the statistics concepts used in text mining, this book will teach you how to access, cleanse, and process text using the R language and will equip you with the tools and the associated knowledge about different tagging, chunking, and entailment approaches and their usage in natural language processing. Moving on, this book will teach you different dimensionality reduction techniques and their implementation in R. Next, we will cover pattern recognition in text data utilizing classification mechanisms, perform entity recognition, and develop an ontology learning framework. By the end of the book, you will develop a practical application from the concepts learned, and will understand how text mining can be leveraged to analyze the massively available data on social media. What you will learn Get acquainted with some of the highly efficient R packages such as OpenNLP and RWeka to perform various steps in the text mining process Access and manipulate data from different sources such as JSON and HTTP Process text using regular expressions Get to know the different approaches of tagging texts, such as POS tagging, to get started with text analysis Explore different dimensionality reduction techniques, such as Principal Component Analysis (PCA), and understand its implementation in R Discover the underlying themes or topics that are present in an unstructured collection of documents, using common topic models such as Latent Dirichlet Allocation (LDA) Build a baseline sentence completing application Perform entity extraction and named entity recognition using R About the Author Ashish Kumar is an IIM alumnus and an engineer at heart. He has extensive experience in data science, machine learning, and natural language processing having worked at organizations, such as McAfee-Intel, an ambitious data science startup Volt consulting), and presently associated to the software and research lab of a leading MNC. Apart from work, Ashish also participates in data science competitions at Kaggle in his spare time. Avinash Paul is a programming language enthusiast, loves exploring open sources technologies and programmer by choice. He has over nine years of programming experience. He has worked in Sabre Holdings , McAfee , Mindtree and has experience in data-driven product development, He was intrigued by data science and data mining while developing niche product in education space for a ambitious data science start-up. He believes data science can solve lot of societal challenges. In his spare time he loves to read technical books and teach underprivileged children back home. Table of Contents Statistical Linguistics with R Processing Text Categorizing and Tagging Text Dimensionality Reduction Text Summarization and Clustering Text Classification Entity Recognition

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值