上一篇文章中介绍了正向最大匹配。能够看到有时候效果不是非常好。这里在介绍一种逆向最大匹配的算法。词典和匹配的字符串都和上一篇文章同样 仅仅是本算法是从后到前搜索字符串。然后找到最长的匹配结果输出。上代码 package com; import java.util.ArrayList; import ...
分类:
其他好文 时间:
2017-07-27 12:48:36
阅读次数:
174
三大主流分词方法:基于词典的方法、基于规则的方法和基于统计的方法。1、基于规则或词典的方法
定义:按照一定策略将待分析的汉字串与一个“大机器词典”中的词条进行匹配,若在词典中找到某个字符串,则匹配成功。按照扫描方向的不同:正向匹配和逆向匹配
按照长度的不同:最大匹配和最小匹配
1.1正向最大匹配思想MM
从左向右取待切分汉语句的m个字符作为匹配字段,m为大机器词典中最长词条个数。
查找大机器词...
分类:
其他好文 时间:
2016-06-17 12:56:42
阅读次数:
239
这种两种分词方法都是机械分词方法,它是按照一定的策略将待分析的汉字串与机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配。按照不同长度优先匹配的情况,可以分为最大匹配和最小匹配。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用...
分类:
编程语言 时间:
2016-05-12 15:21:01
阅读次数:
864
//正向最大匹配分词算法,耗时长,这并不是一个很好的算法,我的这个输出是逆向输入的
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceClusterCharater
{
publicclassSplitChineseCharacter
{
privateString[]dictionary={"今..
分类:
其他好文 时间:
2016-05-01 01:21:18
阅读次数:
254
中文分词应用非常广泛,网上也有非常多开源项目。我在这里主要讲一下中文分词里面算法的简单实现,废话不多说了,如今先上代码package com;import java.util.ArrayList;import java.util.List;public class Segmentation1 { p...
分类:
其他好文 时间:
2016-01-03 12:49:01
阅读次数:
185
算法描述:S1为带切分字符串,S2为空,MaxLen为词典中的最大词长判断S1是否为空,若是则输出S2从S1左边开始,取出待处理字符串str(其中str的长度小于MaxLen)查看str是否在词典中,若是则转5,若否则转6S2+=str+”/”,S1-=str,转2将str最右边的一个字去掉判断st...
分类:
编程语言 时间:
2015-05-25 22:19:22
阅读次数:
137
算法描述:S1为带切分字符串,FMM为S1正向最大匹配切分结果,BMM为S1逆向最大匹配切分结果如果FMM和BMM长度不相等则输出长度较短的那个否则转3如果FMM和BMM的结果相同则输出任意一个否则输出单个字字数最少的结果Java实现代码: 1 public static List SegDoubl...
分类:
编程语言 时间:
2015-05-25 21:58:18
阅读次数:
144
1:非基于词典的分词(人工智能领域)
相当于人工智能领域计算。一般用于机器学习,特定领域等方法,这种在特定领域的分词可以让计算机在现有的规则模型中,
推理如何分词。在某个领域(垂直领域)分词精度较高。例:比较流行的语义网:基于本体的语义检索。
2:基于词典的分词(最为常见)
这类分词算法比较常见,比如正向/逆向匹配。例如: mmseg分词器 就是一种基于词典的分词算法。以最大正向匹配为主,多
种 消除歧义算法为辅。但是不管怎么分。该类分词方法,分词精度不高。由于中文比较复杂,不推荐采用正向...
分类:
编程语言 时间:
2015-02-08 09:12:11
阅读次数:
327
汉字注音
在平时应用中,可能会有这样的需求:要给一些中文进行自动注音。这个程序就是根据这个需求实现的。
思想
汉字注音程序的思想主要是依赖一些已有的常用词的注音词表。对于给定的需要注音的汉字串text,首先对text进行分词。这里的分词方法采用了正向最大匹配和逆向最大匹配想结合的方法。然后根据注音词表中每个词是某个音的概率,得到一个最大可能的注音结果。
思想很简单,...
分类:
其他好文 时间:
2014-11-01 20:34:23
阅读次数:
337
最近接触NLP中文分词, 在lunr.js的基础上, 实现了中文的最大正向匹配分词。
某些情况下, 我们在服务器端进行中文文本分词可以使用完整的基于mmseg算法的分词模块, 例如nodejieba, node-segment, 盘古分词等等, 但是在客户端环境下, 我们不能使用这些复杂的分词算法进行分词, 这个时候可以根据已经生成的索引进行简单的客户端分词, 就是所说的FMM (Forwar...
分类:
其他好文 时间:
2014-07-12 22:18:57
阅读次数:
301