语义分析
一:文本基本处理:
1.1中文分词
a:基于字符串匹配的分词方法,扫描方式可分为:正向最大匹配,反向最大匹配,双向最大匹配,最小切分(最短路径)
b:全切分方法:词条检索(一般用trie存储),以词网络(word lattices)形式表示,接着做路径搜索,基于统计语言模型(例如n-gram[马尔科夫])找到最优路径,最后可能还需要命名实体识别。
c:由字构词的分词方法。可以理解为字的分类,也就是自然语言处理中的sequence(顺序) labeling,通常做法里利用HMM,MAXENT,MEMM,CRF等预测文本串每个字的tag。由于CRF既可以像最大熵模型一样加各种领域feature,又避免了HMM的齐次马尔科夫假设,所以基于CRF的分词目前是效果最好的
d:基于深度学习的分词:对每一个字进行Lookup Table,映射到一个固定长度的特征向量(词向量,boundary entropy,accessor variety);经过一个标准的神经网络,分别是linear,sigmoid,linear层,对于每个字,预测该字属于B,E,I,S的概率;最后输出是一个矩阵,矩阵的行是B,E,I,S 4个tag,利用viterbi算法就可以完成标注推断,从而得到分词结果
1.2一个文本串除了分词,还需要做词性标注,命名实体识别,新词发现等。通常有两种方案,一种是pipeline approaches,就是先分词,再做词性标注;另一种是joint approaches,就是把这些任务用一个模型来完成
二:文本语义分析
2.1:Topic Model主题模型。最常用的主题模型(pLSA,NMF,LDA)
使用variational inference和EM算法进行LDA推断(与pLSA的推断过程类似,E-step采用variational inference),但EM算法可能推导出局部最优解,且相对复杂