文本建模
来源:互联网 发布:明泰科技 建站 编辑:程序博客网 时间:2024/06/05 07:18
我们日常生活中总是产生大量的文本,如果每一个文本存储为一篇文档,那每篇文档从人的观察来说就是有序的词的序列
包含
统计文本建模的目的就是追问这些观察到语料库中的的词序列是如何生成的。统计学被人们描述为猜测上帝的游戏,人类产生的所有的语料文本我们都可以看成是一个伟大的上帝在天堂中抛掷骰子生成的,我们观察到的只是上帝玩这个游戏的结果 —— 词序列构成的语料,而上帝玩这个游戏的过程对我们是个黑盒子。所以在统计文本建模中,我们希望猜测出上帝是如何玩这个游戏的,具体一点,最核心的两个问题是
- 上帝都有什么样的骰子;
- 上帝是如何抛掷这些骰子的;
第一个问题就是表示模型中都有哪些参数,骰子的每一个面的概率都对应于模型中的参数;第二个问题就表示游戏规则是什么,上帝可能有各种不同类型的骰子,上帝可以按照一定的规则抛掷这些骰子从而产生词序列。
上帝掷骰子
4.1 Unigram Model
假设我们的词典中一共有
上帝的这个唯一的骰子各个面的概率记为
上帝投掷
对于一篇文档
而文档和文档之间我们认为是独立的, 所以如果语料中有多篇文档
在 Unigram Model 中, 我们假设了文档之间是独立可交换的,而文档中的词也是独立可交换的,所以一篇文档相当于一个袋子,里面装了一些词,而词的顺序信息就无关紧要了,这样的模型也称为词袋模型(Bag-of-words)。
假设语料中总的词频是
此时, 语料的概率是
当然,我们很重要的一个任务就是估计模型中的参数
对于以上模型,贝叶斯统计学派的统计学家会有不同意见,他们会很挑剔的批评只假设上帝拥有唯一一个固定的骰子是不合理的。在贝叶斯学派看来,一切参数都是随机变量,以上模型中的骰子
上帝的这个坛子里面,骰子可以是无穷多个,有些类型的骰子数量多,有些类型的骰子少,所以从概率分布的角度看,坛子里面的骰子
贝叶斯观点下的 Unigram Model
以上贝叶斯学派的游戏规则的假设之下,语料
在贝叶斯分析的框架下,此处先验分布
实际上是在计算一个多项分布的概率,所以对先验分布的一个比较好的选择就是多项分布对应的共轭分布,即 Dirichlet 分布
此处,
Dirichlet 先验下的 Unigram Model
Unigram Model的概率图模型
回顾前一个小节介绍的 Drichlet 分布的一些知识,其中很重要的一点就是
Dirichlet 先验 + 多项分布的数据
于是,在给定了参数
在贝叶斯的框架下,参数
也就是说对每一个
考虑到
进一步,我们可以计算出文本语料的产生概率为
4.2 Topic Model 和 PLSA
以上 Unigram Model 是一个很简单的模型,模型中的假设看起来过于简单,和人类写文章产生每一个词的过程差距比较大,有没有更好的模型呢?
我们可以看看日常生活中人是如何构思文章的。如果我们要写一篇文章,往往是先确定要写哪几个主题。譬如构思一篇自然语言处理相关的文章,可能 40\% 会谈论语言学、30\% 谈论概率统计、20\% 谈论计算机、还有10\%谈论其它的主题:
- 说到语言学,我们容易想到的词包括:语法、句子、乔姆斯基、句法分析、主语…;
- 谈论概率统计,我们容易想到以下一些词: 概率、模型、均值、方差、证明、独立、马尔科夫链、…;
- 谈论计算机,我们容易想到的词是: 内存、硬盘、编程、二进制、对象、算法、复杂度…;
我们之所以能马上想到这些词,是因为这些词在对应的主题下出现的概率很高。我们可以很自然的看到,一篇文章通常是由多个主题构成的、而每一个主题大概可以用与该主题相关的频率最高的一些词来描述。
以上这种直观的想法由Hoffman 于 1999 年给出的PLSA(Probabilistic Latent Semantic Analysis) 模型中首先进行了明确的数学化。Hoffman 认为一篇文档(Document) 可以由多个主题(Topic) 混合而成, 而每个Topic 都是词汇上的概率分布,文章中的每个词都是由一个固定的 Topic 生成的。下图是英语中几个Topic 的例子。
Topic 就是Vocab 上的概率分布
所有人类思考和写文章的行为都可以认为是上帝的行为,我们继续回到上帝的假设中,那么在 PLSA 模型中,Hoffman 认为上帝是按照如下的游戏规则来生成文本的。
以上PLSA 模型的文档生成的过程可以图形化的表示为
PLSA 模型的文档生成过程
我们可以发现在以上的游戏规则下,文档和文档之间是独立可交换的,同一个文档内的词也是独立可交换的,还是一个 bag-of-words 模型。游戏中的
所以整篇文档的生成概率为
由于文档之间相互独立,我们也容易写出整个语料的生成概率。求解PLSA 这个 Topic Model 的过程汇总,模型参数并容易求解,可以使用著名的 EM 算法进行求得局部最优解,由于该模型的求解并不是本文的介绍要点,有兴趣的同学参考 Hoffman 的原始论文,此处略去不讲。
本文链接转载自:[LDA数学八卦-4]文本建模 来源:火光摇曳!
- 文本建模
- LDA文本建模
- 初识文本建模
- 文本建模系列之一:LSA
- 文本建模常用的预处理方法
- 文本建模系列之二:pLSA
- 用主题建模识别文本模式
- MCMC,LDA,文本建模,来点干货(一)
- FM里建模出现文本Blob类型的办法
- LDA文本建模(1)——数学基础
- spark中文文本分析建模(2.0.1)
- 用gensim.doc2vec 建模、利用相似度做文本分类
- 建模
- 建模
- 建模
- 建模
- 建模
- 建模
- 语义分析的一些方法(下篇)
- android经典DEMO
- 自定义Chechbox样式
- 剑指offer 替换空格
- UITableView中没有数据时,让其不显示下划线的两种方法
- 文本建模
- 开源业务规则引擎JBoss Drools入门介绍 Demo示例
- Solr之缓存篇
- hdoj Task Schedule 3572 (最大流变型判断是否满流)
- 黑马王子讲座:黄金十字架战法
- IE11兼容性问题
- Automatic Property Synthesis With Xcode 4.4
- 桶排序算法之Java实现
- java厚积薄发之String常用方法