第2章 统计语言建模
计算语言学是一个广泛应用于分析、软件应用程序和人机交互上下文的新兴领域。我们可以认为其是人工智能的一个子领域。计算语言学的应用范围包括机器翻译、语音识别、智能Web搜索、信息检索和智能拼写检查等。理解各种可以在自然语言文本上执行的预处理任务或者计算是至关重要的。在以下章节中,我们将会讨论一些计算单词频率、最大似然估计(Maximum Likelihood Estimation,MLE)模型、数据插值等的方法。但是首先让我们来看看本章将会涉及的各个主题,具体如下:
- 计算单词频率(1-gram,2-gram,3-gram)。
- 为给定的文本开发MLE。
- 在MLE模型上应用平滑。
- 为MLE开发一个回退机制。
- 应用数据插值以获得混合搭配。
- 通过复杂度来评估语言模型。
- 在语言建模中应用Metropolis-Hastings算法。
- 在语言处理中应用Gibbs采样法。
2.1 理解单词频率
词的搭配可以被定义为倾向于并存的两个或多个标识符的集合。例如: the United States, the United Kingdom, Union of Soviet Socialist Republics等。
Unigram(一元语法)代表单个标识符。以下代码用于为Alpino语料库生成unigrams
:
>>> import nltk >>> from nltk.util import ngrams >>> from nltk.corpus import alpino >>> alpino.words() ['De', 'verzekeringsmaatschappijen', 'verhelen', ...]>>> unigrams=ngrams(alpino.words(),1) ...
Get 精通Python自然语言处理 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.