动态规划的中文分词方法
2010-07-07 09:04
169 查看
中文分词方法有很多,其中基于词典的分词方法有:
基于模式匹配的方法:(速度快)
正向最大匹配、逆向最大匹配法、双向匹配法
基于规则的方法:(索引压缩的效果最好)
最少分词法
基于统计的分词方法有:
统计语言模型分词(2-gram,3-gram)
串频统计的汉语自动分词
除了这些基本的方法,为了获得最佳的效果,也可以引入动态规划的方法获得最优解。
设句子P = W0W1W2⋯Wn , 其中Wi (0≤i≤n) 为句子P中的第i 个汉字。Si(0≤i≤n+1)为句子的第i个间隙(切分位置)
那么一个句子P理论上有多少种分词法呢?
分词分法总数的通项:F(n)表示一个有n个单词的句子包含的全部不同的分词方法。
F(n)=1+ F(n-1)+F(n-2)+F(n-3)+F(n-4)+..F(1)
F(1)=1
F(2)=2
F(3)=4
F(4)=8
…
F(n)=2F(n-1)
则F(n)=2n-1
如果将词频看做是距离,则求解最佳切分方法等价于在2n-1的解空间中寻找1种最佳的切分方法使得路径最大。为此我们举个例子:
早起先刷牙
图中红圈为切分点,切分点之间的连线表示确定的一种分词
图中给出了三种分法,分别是[早][起][先][刷][牙]、[早起][先][刷牙]和[早][起先][刷牙]
使用bigram的情况下:分别计算这几种划分方法的概率:
P([早][起][先][刷][牙])=P(早)*P(起|早)*P(先|起)*P(刷|先)*P(牙|刷)
p([早起][先][刷牙])=P(早起)*P(先|早起)*P(刷牙|先)
P([早][起先][刷牙])=P(早)*P(起先|早)*P(刷牙|起先)
通过选出这3种方案中概率最大的一种,以此来作为最佳的划分方案。
参考文献
[1] 孙 晓, 黄德根 基于动态规划的最小代价路径汉语自动分词 [J]小型微型计算机系统 第27 卷第3 期 2006 年3 月
其他推荐阅读
http://www.leadbbs.com/MINI/default.asp?230-2682632-0-0-0-0-0-a-.htm
基于模式匹配的方法:(速度快)
正向最大匹配、逆向最大匹配法、双向匹配法
基于规则的方法:(索引压缩的效果最好)
最少分词法
基于统计的分词方法有:
统计语言模型分词(2-gram,3-gram)
串频统计的汉语自动分词
除了这些基本的方法,为了获得最佳的效果,也可以引入动态规划的方法获得最优解。
设句子P = W0W1W2⋯Wn , 其中Wi (0≤i≤n) 为句子P中的第i 个汉字。Si(0≤i≤n+1)为句子的第i个间隙(切分位置)
那么一个句子P理论上有多少种分词法呢?
分词分法总数的通项:F(n)表示一个有n个单词的句子包含的全部不同的分词方法。
F(n)=1+ F(n-1)+F(n-2)+F(n-3)+F(n-4)+..F(1)
F(1)=1
F(2)=2
F(3)=4
F(4)=8
…
F(n)=2F(n-1)
则F(n)=2n-1
如果将词频看做是距离,则求解最佳切分方法等价于在2n-1的解空间中寻找1种最佳的切分方法使得路径最大。为此我们举个例子:
早起先刷牙
图中红圈为切分点,切分点之间的连线表示确定的一种分词
图中给出了三种分法,分别是[早][起][先][刷][牙]、[早起][先][刷牙]和[早][起先][刷牙]
使用bigram的情况下:分别计算这几种划分方法的概率:
P([早][起][先][刷][牙])=P(早)*P(起|早)*P(先|起)*P(刷|先)*P(牙|刷)
p([早起][先][刷牙])=P(早起)*P(先|早起)*P(刷牙|先)
P([早][起先][刷牙])=P(早)*P(起先|早)*P(刷牙|起先)
通过选出这3种方案中概率最大的一种,以此来作为最佳的划分方案。
参考文献
[1] 孙 晓, 黄德根 基于动态规划的最小代价路径汉语自动分词 [J]小型微型计算机系统 第27 卷第3 期 2006 年3 月
其他推荐阅读
http://www.leadbbs.com/MINI/default.asp?230-2682632-0-0-0-0-0-a-.htm
相关文章推荐
- 中文分词语言模型和动态规划
- Java通过JNI调用ICTCLAS中文分词包的方法
- Java开源中文分词器的使用方法和分词效果对比
- 11大Java开源中文分词器的使用方法和分词效果对比
- python使用jieba实现中文分词去停用词方法示例
- 转一个,中文分词方法概述
- Python 中文分词工具 ——结巴分词的使用方法总结
- 一种中文文本的快速分词方法(一)(未完待续)
- Python结巴中文分词工具使用过程中遇到的问题及解决方法
- nutch集成中文分词搜索时出现空白页解决方法
- NLPIR中文分词的java接口使用方法
- 【笔记】提高中文分词准确性和效率的方法
- Python 中文分词工具 ——结巴分词的使用方法总结
- 中文分词器分词效果的评测方法
- Lucene中文分词实现方法:基于StopWord分割分词
- 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较
- 数据库分词查询的优缺点以及英文和中文各自的分词方法(二)
- 中科院中文分词工具ICTCLAS30进行名实体识别的方法
- Python中文分词实现方法(安装pymmseg)
- 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较