语言建模和文本生成是当下自然语言处理领域非常火热的两个研究课题。而早在百年以前,科学巨匠马尔科夫和香农就对此进行了初步的探索......

选自towardsdatascience,作者:Raimi Karim,机器之心编译,参与:王子嘉、Geek AI。

1913 年,俄国数学家安德烈·安德烈耶维奇·马尔科夫(Andrey Andreyevich Markov)坐在他圣彼得堡的书房里,手里拿着当时的文学巨著——普希金(Alexander Pushkin)在 19 世纪创作的诗歌小说《尤金·奥涅金》(Eugene Onegin)。

但是马尔科夫并没有真的在读这篇著名的文章,而是拿起了一支笔和一张草稿纸,去掉了这本书的前 2 万个字母中所有的标点符号和空格,记成了一长串字母。然后,他又把这些字母放进了 200 个网格中(每个网格有 10×10 个字符),并对每行每列中元音的数量进行统计,然后将这些结果进行了整理。

对于不知情的旁观者来说,马尔科夫的举止略显诡异。为什么有人会以这种方式解构一部文学天才的作品,而且是解构成这种无法被理解的形式?

事实是,马尔科夫读这本书并不是为了学习与生活和人性有关的知识,他是在寻找文本中更基本的数学结构。

之所以要分离元音和辅音,是因为马尔科夫正在测试他从 1909 年就一直在研究的概率论研究(https://www.americanscientist.org/article/first-links-in-the-markov-chain)。

在那之前,概率领域的研究大多局限于分析像轮盘赌或抛硬币这样的现象,在这些研究中先前事件的结果不会改变当前事件的概率。但马尔科夫认为,大多数事情的发生都是有一连串的因果关系的,并且依赖于之前的结果。他想要找到通过概率化的分析对这些事件进行建模的方法。

马尔科夫认为,语言就是这种系统的一个例子:过去出现的字符在一定程度上决定了现在的结果。为了确认这一点,他想证明在普希金小说这样的文本中,某个字母在文本中出现的几率在某种程度上是取决于之前出现的字母的。

因此才出现了本文开头马尔科夫统计「尤金·奥涅金」中元音的那一幕。通过这次统计,他发现 43% 的字母是元音,57% 是辅音。然后马尔科夫将这 2 万个字母分成元音和辅音组合:他发现有 1,104 对「元音-元音」,3,827 对「辅音-辅音」,15,069 对「元音-辅音」和「辅音-元音」组合。从统计学上讲,这表明普希金的文本中任何一个字母,如果是元音,下一个字母很可能是辅音,反之亦然。

马尔科夫用这个分析证明了普希金笔下的「尤金·奥涅金」不仅仅是字母的随机分布,还存在一些潜在的可以建模的统计特性。根据这份研究产出的高深论文「An Example of Statistical Investigation of the Text Eugene Onegin Concerning the Connection of Samples in Chains」在马尔科夫生前并没有被广泛引用,并且直到 2006 年才被翻译成英语。

但它的一些关于概率和语言的核心概念已经在全球范围内传播开来,并最终在克劳德·香农(Claude Shannon)1948 年发表的极具影响力的论文「A Mathematical Theory of Communication」中发现了对这些思想的重述。

马尔科夫论文:https://www.cambridge.org/core/journals/science-in-context/article/an-example-of-statistical-investigation-of-the-text-eugene-onegin-concerning-the-connection-of-samples-in-chains/EA1E005FA0BC4522399A4E9DA0304862

香农论文:http://www.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf

香农(Shannon)的论文概述了一种精确测量消息中信息量的方法,从而为定义数字时代的信息论奠定了基础。香农深深地被马尔科夫的观点所吸引:即在给定的文本中,可以估计出出现某个字母或单词的可能性。和马尔科夫一样,香农通过一些文本实验证明了这一点,这些文本实验除了建立语言的统计模型外,还尝试了使用该模型根据这些统计规则生成文本。

在最初的控制实验中,他先从包含 27 个符号的字母表(26 个字母,加上一个空格)中随机抽取字母以生成句子,并获得以下输出:

XFOML RXKHRJFFJUJ ZLPWCFWKCYJ FFJEYVKCQSGHYD QPAAMKBZAACIBZLHJQD

香农说,这句话是毫无意义的噪声,因为当我们交流时,我们不会以相同的概率选取字母。正如马尔可夫所证明的,辅音比元音更有可能出现。但是在更高的粒度级别上,E 比 S 更为常见,S 比 Q 更为常见。为了解决这个问题,Shannon 修改了他的原始字母表,使得这个模型更精确地对英语的概率进行建模——他从字母表中提取出 E 的可能性比 Q 的可能性高 11%。当他再次从经过重新校准的语料库中随机抽取字母时,生成的句子开始跟英语有点接近了:

OCRO HLI RGWR NMIELWIS EU LL NBNESEBYA THEI EEI ALHENHTTPA OOBTTVA NAH BRL。

在随后的一系列实验中,香农证明了,当你把统计模型变得更复杂时,你得到的结果会越来越容易理解。香农通过马尔可夫的理念揭示了英语的统计框架,并表明通过对该框架建模(通过分析字母和单词相互组合出现的相关概率),这些模型可以生成真正意义上的语言。

给定文本的统计模型越复杂,语言生成就越准确——或如香农所说,「与普通英语文本的相似性」越大。在最后的实验中,香农从语料库中提取单词,而不是字母,并得到如下结果:

THE HEAD AND IN FRONTAL ATTACK ON AN ENGLISH WRITER THAT THE CHARACTER OF THIS POINT IS THEREFORE ANOTHER METHOD FOR THE LETTERS THAT THE TIME OF WHO EVER TOLD THE PROBLEM FOR AN UNEXPECTED.

对于香农和马尔科夫来说,「语言的统计特性可以被建模」这个观点为他们重新思考他们正在研究的更广泛的问题提供了一个思路。

对于马尔科夫来说,它将随机性的研究扩展到相互独立的事件之外,为概率论的新时代铺平了道路。对香农来说,这帮助他发现了一种精确的测量方式以及编码消息中的信息单元,这个发现彻底改变了电子信息以及现在的数字通信行业。他们在语言建模和生成方面的统计方法也开创了自然语言处理的新时代,这一时代一直延续到今天。

原文链接:https://spectrum.ieee.org/tech-talk/robotics/artificial-intelligence/andrey-markov-and-claude-shannon-built-the-first-language-generation-models

自然语言处理起源:马尔科夫和香农的语言建模实验相关推荐

  1. 【机器学习】--隐含马尔科夫模型从初识到应用

    一.前述 马尔可夫(1856~1922),苏联数学家.切比雪夫的学生.在概率论.数论.函数逼近论和微分方程等方面卓有成就.     马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语 ...

  2. 【ML算法】马尔科夫链

    文档介绍:https://download.csdn.net/download/liudongdong19/10420151 一.马尔可夫链 1.马尔可夫链 设XtXt表示随机变量XX在离散时间tt时 ...

  3. 深入浅出的马尔科夫入门文章

    http://blog.csdn.net/pipisorry/article/details/46618991 生成模式(Generating Patterns) 1.确定性模式(Determinis ...

  4. 【有限马尔科夫链状态分解+Kosaraju 算法】基于Kosaraju 算法和可达矩阵的有限马尔科夫链状态分解

    有限马尔科夫链状态分解+Kosaraju 算法 1 实验内容 2 理论基础 3 题目分析 4 按常返性和互通性对状态空间进行分解算法流程 4.1 强连通性和强连通分量 4.2 基于有向图 Kosara ...

  5. 隐马尔科夫模型 HMM 与 语音识别 speech recognition (1):名词解释

    0.引言 想在 CSDN 上看一下隐马尔科夫模型,简称HMM(Hidden Markov Model)的例子,找了几篇博文,却发现大部分都是转载的,转载的还没有出处,文中的表述与逻辑也看的人晕头转向, ...

  6. 机器学习十大算法---10. 马尔科夫

    3.生成模式(Generating Patterns) 3.1.确定性模式(Deterministic Patterns):确定性系统 考虑一套交通信号灯,灯的颜色变化序列依次是红色-红色/黄色-绿色 ...

  7. 隐马尔科夫模型matlab工具箱说明

    转自 http://blog.csdn.net/whiteinblue/article/details/40625291 隐马尔可夫模型(HiddenMarkov Model,HMM)是统计模型,它用 ...

  8. hmm 求隐藏序列_自然语言处理(3)隐马尔科夫模型 HMM

    1 前言 隐马尔科夫模型(Hidden Markov Model,以下简称 HMM)是比较经典的机器学习模型了,它在语音识别,自然语言处理,模式识别等领域得到广泛的应用.隐马尔科夫模型继承了马尔科夫链 ...

  9. 计算机语音处理包括,关于用于计算机语音识别的隐马尔科夫模型和自然语言的计算机处理...

    简单介绍HMM:hidden Markov model 用于计算机语音识别的隐马尔科夫模型. 它可以清楚地描述语音信号的产生过程--双重随机过程 人类的语音信号的产生过程是一个随机过程.也就是说,人在 ...

最新文章

  1. php接收表单图片,如何在PHP中获取表单图片数据
  2. 将给出的整数x翻转_每日一题:1.罗马数字转整数
  3. jquery/css实现步骤条
  4. 升级php_wamp怎么升级php版本
  5. WebAssembly + Dapr = 下一代云原生运行时?
  6. 集群、负载均衡、分布式
  7. BZOJ 2844 | HYSBZ - 2844albus就是要第一个出场——线性基
  8. wireshark-win64-3.4.0安装_轴承安装规范
  9. mongo 多条件筛选_excel成本统计:如何进行区域筛选,多条件求和?
  10. sklearn 随机森林
  11. php post修改字段,单个{customposttype}.php中的函数wp_insert_post()清除自定义字段
  12. 如何在VScode 中 调试 ts 文件 Unit test
  13. CSP202009-1 称检测点查询(100分)【数学】
  14. 层次分析法原理和matlab代码
  15. 字节跳动python面试题校招_字节跳动校招----编程题(Python)
  16. 期权定价 - BS模型 - 维纳过程和伊藤引理
  17. 新疆旅游攻略-可可托海
  18. 2020亚太数学建模竞赛A题翻译
  19. Python爬虫:爬取喜马拉雅音频数据详解
  20. 【DirectX 2D游戏编程基础】DirectX精灵的创建

热门文章

  1. 随机访问类(RandomAccessFile)
  2. JDBC连接数据库过程
  3. Linux下安装redis并使用RedisDesktopManager连接
  4. 到底有多火?三家单位争抢发布,谷歌、清华、牛津同时提超越注意力的新机制...
  5. 入门深度学习的必备数学知识
  6. 一个二维码能装10T电影?看样子我也能改变世界了
  7. 中国雪糕红黑榜,谁才是Top 1
  8. 干货 | “青年AI自强计划项目”首节讲座视频、课件分享
  9. THE世界大学排名发布:牛津大学蝉联榜首,清华大学亚洲第一
  10. Leetcode: 112. Path Sum