基于HMM(隐马尔可夫模型)的分词方法
基本部分
- 状态值序列 B:Begin; M:Middle; E:End; S:Single;
- 观察值序列 待切分的词;
- 初始化概率 BMES这四种状态在第一个字的概率分布情况;
- 状态转移矩阵 HMM中,假设当前状态只与上一状态相关,则此关系可用转移矩阵表示;
- 条件概率矩阵 HMM中,观察值只取决与当前状态值(假设条件),条件概率矩阵主要建模在BMES下各个词的不同概率,和初始化概率、状态转移矩阵一样,需要在语料中计算得到对应的数据;
概率分词模型:CRF(条件随机场)
HMM描述的是已知量和未知量的一个联合概率分布,属于generative model,而CRF则是建模条件概率,属于discriminative model;且CRF特征更加丰富,可通过自定义特征函数来增加特征信息,CRF能建模的信息应该包括HMM的状态转移、数据初始化的特征;主要包括两部分特征:
- 简单特征 只涉及当前状态特征;
- 转移特征 涉及两种状态间的特征;、
基于深度学习的分词
基本步骤:
- 首先,训练字向量,使用word2vec对语料的字训练50维的向量;
- 然后,接入一个bi-LSTM,用于建模整个句子本身的语义信息;
- 最后,接入一个CFR完成序列标注;
词向量
one-hot编码
每个词只在对应的index置1,其他位置均为0,难点在于做相似度计算;
LSA(矩阵分解方法)
LSA使用词-文档矩阵,矩阵常为系数矩阵,行代表词语,列代表文档;词-文档矩阵表示中的值表示词在文章中出现的次数;难点在于当语料库过大时,计算很耗费资源,且对未登录词或新文档不友好;
Word2Vec
结构
包括CBOW和Skip-gram模型;CBOW的输入为上下文的表示,然后对目标词进行预测;Skip-gram每次从目标词w的上下文c中选择一个词,将其词向量作为模型输入; Skip-gram主要结构:
- 输入one-hot编码;
- 隐藏层大小为次维度大小;
- 对常见词或词组,常将其作为当个word处理;
- 对高频词进行抽样减少训练样本数目;
- 对优化目标采用negative sampling,每个样本训练时只更新部分网络权重;
词性标注
- 基于最大熵的词性标注;
- 基于统计最大概率输出词性;
- 基于HMM词性标注;
- 基于CRF的词性标注;