一. 条件频率分布
条件频率分布:是频率分布的集合,每个频率分布都有一个不同的“条件”,这个条件通常是文本的类别。
条件频率分布需要给每个事件关联一个条件,所以不是处理一个词序列,而是要处理一系列配对序列。每对的形式是:(条件,事件)
1. 按文体计数词汇
FreqDist()以一个简单的链表作为输入,ConditionalFreqDist()以一个配对链表作为输入。
对于每个文体,遍历文体中的每个词以产生文体和词的配对(配对链表)
使用此配对链表创建一个ConditionalFreqDist,并将它保存在一个变量cfd中。可以输入变量的名称来检查它,并确认它有两个条件。访问者两个条件,它们每一个都只有一个频率分布。
2. 绘制分布图和分布表
2.1 绘制分布图 cfd.plot()
例子:绘制在特定演讲中出现ameirca或citizen的次数。
2.2 绘制分布表 cfd.tabulate()
例子:查看英语和德语中长度少于10个字符的词汇个数。
注:在plot()和tabulate()方法中,可以使用conditions=参数 来指定显示哪些条件,否则所有条件都会被显示。可以使用samples=参数 来限制要显示的样本。
2.3 使用双连词生成随机文本
bigrams()函数能接受一个词汇链表,并建立起一个连续的词对链表。
例:产生随机文本:此函数获得了《创世纪文本中所有的双连词,然后构造一个条件频率分布来记录哪些词汇最有可能会跟在给定词的后面。generate_model()函数使用这些数据和种子词来产生随机文本。
注:条件频率分布是一个对许多NLP任务都有用的数据结构。