word embedding怎么处理未登录词

知乎:https://www.zhihu.com/question/308543084
第一种方法
基本思路是尽可能找到还原语义的pre-trained embedding。步骤是:
1.原始词有没有2.全小写有没有3.全大写有没有4.首字母大写有没有5.三种次干化有没有6.长得最像的几种编辑方法有没有依次瀑布式查找。当然,最好的方式,是使用subword level的pre-trained language model,生成此OOV的contextual的特征。

第二种方法:
用UNK标签表示所有未登录词,但是UNK的embedding一般不会用零向量。
新增一个UNK标记,作为未登录词。
UNK词向量随机初始化,但是在训练集里面没有UNK,怎么训练它呢?那就在训练的时候根据词频 f(w) ,当f(w) > 2时,采用 z / (z + f(w)) 的概率把词随机变为UNK就行了, z 通常设为 0.8375 。

第三种方法:
加unk词,oov的词都assign到这上面,这是通常做法。而且有太多unk words说不定是你数据处理有问题,试试normalize一下。

猜你喜欢

转载自blog.csdn.net/haoshan4783/article/details/89357170