第2章 统计语言模型
计算语言学是一个新兴的领域,广泛应用在分析、软件应用,以及人类与机器沟通的上下文等地方。我们将计算语言学定义为人工智能的一个分支。计算语言学的应用包括机器翻译、语音识别、智能Web搜索、信息检索和智能拼写检查。理解可以在自然语言文本上进行的预处理任务或计算,是很重要的。本章将讨论如何计算单词的频率、最大似然估计(MLE)模型、数据插值等。本章要介绍的各种话题如下。
- 单词频率(一元组、二元组和三元组)。
- 对给定文本进行最大似然估计。
- 在MLE模型上应用平滑。
- 为MLE指定回退机制。
- 运用数据插值获得混合和匹配。
- 使用困惑度评估语言模型。
- 在建模语言中应用梅特罗波利斯-黑斯廷斯算法。
- 在语言处理中应用吉布斯抽样。
2.1 单词频率
可以将搭配(collocation)定义为倾向于一起存在的两个或多个标记的集合。例如,美国(the United States),英国(the United Kingdom),苏维埃社会主义共和国联盟(Union of Soviet Socialist Republics),等等。
一元组表示一个标记。使用下面的代码,生成alpino语料库的一元组。
>>> import nltk
>>> from nltk.util import ngrams
>>> from nltk.corpus import alpino
>>> alpino.words()
['De', 'verzekeringsmaatschappijen', 'verhelen', ...]>>>
unigrams=ngrams(alpino.words(),1)
>>> for i in unigrams:
print(i)
思考用于从alpino语料库生成4元组的示例。 ...
Get Python和NLTK实现自然语言处理 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.