@evilking
2019-01-17T17:35:28.000000Z
字数 851
阅读 1067
NLP
在自然语言处理的任务中,为了考虑运算性能,考虑数据的稀疏性,我们通常会设定一个上下文窗口;
比如语言模型中我们通常去 n-gram = 3
或者 n-gram = 5
,在 word2vec 的计算中,我们也通常会去上下文窗口为 5,等等很多例子。
一般我们都说是根据经验来选取,或者根据反复的实验调参看最后的准确度来选取,这其实都是一种定性的方法。
本文就从定量的角度去分析上下文有效范围如何选取。
注:这是《自然语言处理中词语上下文有效范围的定量描述》期刊中提及的方法,笔者只是找数据集复现了一遍,顾做此记录。
在语言模型中,以当前词为中心,离中心词越远的词对当前词的影响越小。
我们将核心词及其上下文形式化成一个符号信息系统,核心词为信源,信源的先验不确定性(熵,entropy)就是核心词的统计不确定性;上下文中的其他词为信宿,信宿的后验不确定性就是在已知一位置上下文情况下的不确定性,两者之差即为相对于已知一上下文位置的情况下条件熵的信息增益(information gain),以此确定各位置的信息量。
我们知道,上下文范围选取的越广,则上下文接受到核心词的信息量就越多,但同时上下文范围广了之后,需要的计算量就会成几何级数增长。
所以我们选择上下文范围的核心目标是使上下文范围内的信息量尽可能多,同时又使得计算性能消耗尽可能的低。
这样就要去上下文范围不能太宽,太宽性能消耗太大,也不能太小,太小不能表示最够的信息量。
在一定规模的语料库上做分词,然后对所有实词进行词频统计,去前面词频比较高的一定数量的单词作为核心词。
然后在原语料库中提取每个核心词上下文左右各 m 个数量的词语作为该核心词的上下文(context words)构成“核心词上下文矩阵”:
其定义形式为:设核心词词集为 ,上下文词集为 ,其上下文矩阵为