Categories

Calendar

September 2017
M T W T F S S
« Jun    
 123
45678910
11121314151617
18192021222324
252627282930  

漫谈 Language Model (2): 实践篇

本文是“漫谈 Language Model 系列”中的第 2 篇,参见本系列的其他文章。在上一次的原理篇中,我们介绍了 Language Model 的基本原理,并大致讲了一下如何来构造一个 Language Model ,然而,在实践中还是会碰到不少问题的,本文将提出其中一部分问题并给出解决办法。

第一个问题是浮点数精度问题,不止是在 Language Model 中,几乎任何做概率计算的程序都会遇到这个问题:浮点数下溢,也就是需要表示的数字(绝对值)太小了,超出了浮点数所能表示的范围。通常情况下,一个双精度的浮点数在计算机里由 8 个字节来存储,按照 IEEE 754 的浮点数标准(这是目前绝大多数计算机采用的表示方法),一个双精度的浮点数的内存布局如下:

漫谈 Language Model (1): 原理篇

本文是“漫谈 Language Model 系列”中的第 1 篇,参见本系列的其他文章。原本只是想简单地谈一下 Lanugage Model ,而且之前的漫谈 Clustering 系列还没有写完,似乎又起一个系列不太好,但是在脑子里构思了一下,要说的东西好像也不少,放到一起似乎真的有点长了,而且一时半会估计也写不完,所以还是觉得做成一个系列吧。

Language Model 中文就叫做“语言模型”吧,这实际上是一个概率分布模型 ,对于语言里的每一个字符串 给出一个概率 。稍微正式一点的定义可以这样说:假设有一个符号的集合 ,我们不妨把每一个 称作一个“单词”,由零个或多个单词连接起来就组成了一个字符串 ,字符串可长可短,例如实际语言中的句子、段落或者文档都可以看作一个字符串。所有合法(例如,通过一些语法约束)的字符串的集合称作一个语言,而一个语言模型就是这个语言里的字符串的概率分布模型。