一、自动分词
1、自动分词就是让计算机在某汉字串中的词与词之间加上空格或者在每个词后加上特殊的边界标记。
2、交集型切分歧义:原汉字串abc中ab、bc都为词,b称为交集串,交集串的集合称为交集串链。集合中的元素个数称为链长。
3、组合型切分歧义:原汉字串ab中 a、b、ab同为词。
4、多义组合型切分歧义:在符合组合型切分歧义的条件下,在某一个上下文语境下,a、b单独在语法和语义上都成立。
5、在自动分词的过程中,分词的规范、切分歧义和未登录词的识别是主要困难。
6、未登录词:没有被语料库收录的词汇,或者在训练语料中未出现的词汇。
7、未登录词的几种类型:
未登录词的类型 | 介绍与说明 |
---|---|
新出现的普通词汇 | 如博客、 超女、 恶搞、 房奴、 给力、 奥特等,尤其在网络用语中这种词汇层出不穷。 |
专有名词(proper names) | 专有名词在早期主要是指人名、 地名和组织机构名这三类实体名称。 |
专业名词和研究领域名称 | 无 |
其他专用名词 | 如新出现的产品名,电影、 书籍等文艺作品的名称,等等。 |
另:命名实体(named entity)的概念:除了包含上述三类实体名称以外,还包括时间和数字表达(日期、 时刻、 时段、 数量值、 百分比、 序数、 货币数量等),并且地名被进一步细化为城市名、 州(省)名和国家名称等。
8、对于大规模真实文本来说,未登录词对于分词精度的影响远远超过了歧义切分。
命名实体识别
1、汉语分词中的命名实体识别处理是将命名实体中可独立成词的单位正确的识别出来,并不是识别整个实体的左右边界。
2、分词方法:
分词方法 |
---|
基于词表的分词方法 |
基于统计模型(包括基于HMM和n元语法)的分词方法 |
规则方法与统计方法相结合的分词方法 |
3、分词过程可以分成两个阶段:先用切分算法对汉字串进行初步的切分,得到一个相对较好的粗粉结果,再进行切分歧义处理和未登录词的识别。
4、有向无环图:
NLP分词方法之N-最短路径
将例句用有向无环图进行建模,如“他说的确实有理”建模成有向无环图如下。
为了理解简单,将每个边的权值设为1。实际上并不都为1。
该有向无环图将例句分为单个的字,每个字都用相邻的两个结点表示,所以N-最短路径分词方法需要的结点数为N+1个。若两个结点间有边,那么说明这两个结点之间的字可以组成词。
从图中可以知道,该汉字串的最短路径集合为{5,5,6,6,7} 。
一种基于统计信息的粗分模型
将上述N-最短路径分词方法的每条边的权重用 -lnP(wi) 来计算替代后,针对修改过后的有向无环图,直接使用非统计粗分模型的求解算法,就可以得到问题的最终答案。
(非统计粗分模型的求解算法具体是什么 应该怎么算)
HMM隐马尔可夫模型
和HMM相关的问题有三种:
1、知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),我想知道每次掷出来的都是哪种骰子(隐含状态链)。
2、知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),我想知道掷出这个结果的概率。
3、知道骰子有几种(隐含状态数量),不知道每种骰子是什么(转换概率),观测到很多次掷骰子的结果(可见状态链),我想反推出每种骰子是什么(转换概率)。
HMM是一个五元组(O , Q , O0,A , B):
O:{o1,o2,…,ot}是状态集合,也称为观测序列。
Q:{q1,q2,…,qv}是一组输出结果,也称为隐序列。
Aij = P(qj|qi):转移概率分布
Bij = P(oj|qi):发射概率分布
O0是初始状态,有些还有终止状态。
Viterbi 维特比算法
凡是使用HMM(隐含马尔可夫模型)描述的问题都可以用维特比算法来计算。
维特比算法就是求解HMM上的最短路径(-log(prob),也即是最大概率)的算法。
词性划分
a 形容词 d 副词 f 方位词 g 语素词 i 成语 j 简略词 k 后接成分 l 习用语 m 数词 n 名词
o 拟声词 p 介词 q 量词 r 代词 s 处所词 t 时间词 u 助词 v 动词 w 标点符号 x 非语素词
y 语气词 z 状态词 b 区别词 c 连词 e 叹词 h 前接成分
习用语:
不要紧 说不定 不像话 不在乎 不见得 有的是 看样子 好不容易 闹着玩儿 开夜车 打交道
出难题 出洋相 碰钉子 伤脑筋 走后门 走弯路 有两下子 有两把刷子 四面八方 不怎么样
东一句西一句 哪知道/谁知道 老的老小的小