Class-Based N-Grams

Class-Based N-grams,又被称为Cluster N-grams,是一种基于词的类别信息或族信息的N-gram变体。它针对训练语料的稀疏性特征可以起到良好的效果。比方说针对一个航班预定系统,我们希望预测“到上海”的bigram概率,但是“到上海”从来没有出现在训练预料中。但是我们的训练语料中有“到北京”、“到长沙”、“到深圳”。如果我们知道它们都是城市,并且假设“上海”在其他上下文语料中有出现,那么我么可以预测出“从”后面跟城市名的可能性。

自动它被发明之后,Class-Based N-grams有很多变体,其中最简单的可能是IBM clustering。IBM clustering是一种硬聚类,也就是说一个词只能属于一个类别。这个模型利用两个概率相乘来评估一个词w_i的条件概率:给定前一个词的类别(基于一个N-gram的类别)的前提下当前词的类别C_i的概率以及给定C_i的前提下词w_i出现的概率。这是IBM model的bigram形式:
这里写图片描述

如果我们有一个已经知道每个词的类别的训练语料,那么一个词在一个类别中出现的极大似然概率和给定前一个词的类别后一个词的类别的概率可以通过以下方法来计算:
Class-Based N-Grams_第1张图片

Class-Based N-grams通常有两种方式来使用。在对话系统中,我们通常手动设计特定领域的词的类别。因此在一个航班信息系统中,我们可能用一些类别比方说城市名、航空公司、星期、月份等等。其他情况中,我们可以通过对语料中的数据进行聚类推导出它们的类别。句法种类(比方说词性标注)似乎不如类别工作得那么好。

无论是自动推导还是手动设计,Class-Based N-grams通常都与常规的Word-Based N-grams结合起来使用。

你可能感兴趣的:(Class-Base,N-grams,Cluster,类别,聚类,NLP)