`
sungang_1120
  • 浏览: 322575 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

中文分词基础原则及正向最大匹配法、逆向最大匹配法、双向最大匹配法的分析(转载)

 
阅读更多

 

转载:http://blog.sina.com.cn/s/blog_53daccf401011t74.html

分词算法设计中的几个基本原则:

1、颗粒度越大越好:用于进行语义分析的文本分词,要求分词结果的颗粒度越大,即单词的字数越多,所能表示的含义越确切,如:“公安局长”可以分为“公安 局长”、“公安局 长”、“公安局长”都算对,但是要用于语义分析,则“公安局长”的分词结果最好(当然前提是所使用的词典中有这个词)

2、切分结果中非词典词越少越好,单字字典词数越少越好,这里的“非词典词”就是不包含在词典中的单字,而“单字字典词”指的是可以独立运用的单字,如“的”、“了”、“和”、“你”、“我”、“他”。例如:“技术和服务”,可以分为“技术 和服 务”以及“技术 和 服务”,但“务”字无法独立成词(即词典中没有),但“和”字可以单独成词(词典中要包含),因此“技术 和服 务”有1个非词典词,而“技术 和 服务”有0个非词典词,因此选用后者。

3、总体词数越少越好,在相同字数的情况下,总词数越少,说明语义单元越少,那么相对的单个语义单元的权重会越大,因此准确性会越高。

 

下面详细说说正向最大匹配法、逆向最大匹配法和双向最大匹配法具体是如何进行的:

先说说什么是最大匹配法:最大匹配是指以词典为依据,取词典中最长单词为第一个次取字数量的扫描串,在词典中进行扫描(为提升扫描效率,还可以跟据字数多 少设计多个字典,然后根据字数分别从不同字典中进行扫描)。例如:词典中最长词为“中华人民共和国”共7个汉字,则最大匹配起始字数为7个汉字。然后逐字 递减,在对应的词典中进行查找。

下面以“我们在野生动物园玩”详细说明一下这几种匹配方法:

1、正向最大匹配法:

正向即从前往后取词,从7->1,每次减一个字,直到词典命中或剩下1个单字。

第1次:“我们在野生动物”,扫描7字词典,无

第2次:“我们在野生动”,扫描6字词典,无

。。。。

第6次:“我们”,扫描2字词典,有

扫描中止,输出第1个词为“我们”,去除第1个词后开始第2轮扫描,即:

第2轮扫描:

第1次:“在野生动物园玩”,扫描7字词典,无

第2次:“在野生动物园”,扫描6字词典,无

。。。。

第6次:“在野”,扫描2字词典,有

扫描中止,输出第2个词为“在野”,去除第2个词后开始第3轮扫描,即:

第3轮扫描:

第1次:“生动物园玩”,扫描5字词典,无

第2次:“生动物园”,扫描4字词典,无

第3次:“生动物”,扫描3字词典,无

第4次:“生动”,扫描2字词典,有

扫描中止,输出第3个词为“生动”,第4轮扫描,即:

第4轮扫描:

第1次:“物园玩”,扫描3字词典,无

第2次:“物园”,扫描2字词典,无

第3次:“物”,扫描1字词典,无

扫描中止,输出第4个词为“物”,非字典词数加1,开始第5轮扫描,即:

第5轮扫描:

第1次:“园玩”,扫描2字词典,无

第2次:“园”,扫描1字词典,有

扫描中止,输出第5个词为“园”,单字字典词数加1,开始第6轮扫描,即:

第6轮扫描:

第1次:“玩”,扫描1字字典词,有

扫描中止,输出第6个词为“玩”,单字字典词数加1,整体扫描结束。

正向最大匹配法,最终切分结果为:“我们/在野/生动/物/园/玩”,其中,单字字典词为2,非词典词为1。

2、逆向最大匹配法:

逆向即从后往前取词,其他逻辑和正向相同。即:

第1轮扫描:“在野生动物园玩”

第1次:“在野生动物园玩”,扫描7字词典,无

第2次:“野生动物园玩”,扫描6字词典,无

。。。。

第7次:“玩”,扫描1字词典,有

扫描中止,输出“玩”,单字字典词加1,开始第2轮扫描

第2轮扫描:“们在野生动物园”

第1次:“们在野生动物园”,扫描7字词典,无

第2次:“在野生动物园”,扫描6字词典,无

第3次:“野生动物园”,扫描5字词典,有

扫描中止,输出“野生动物园”,开始第3轮扫描

第3轮扫描:“我们在”

第1次:“我们在”,扫描3字词典,无

第2次:“们在”,扫描2字词典,无

第3次:“在”,扫描1字词典,有

扫描中止,输出“在”,单字字典词加1,开始第4轮扫描

第4轮扫描:“我们”

第1次:“我们”,扫描2字词典,有

扫描中止,输出“我们”,整体扫描结束。

逆向最大匹配法,最终切分结果为:“我们/在/野生动物园/玩”,其中,单字字典词为2,非词典词为0。

3、双向最大匹配法:

正向最大匹配法和逆向最大匹配法,都有其局限性,我举得例子是正向最大匹配法局限性的例子,逆向也同样存在(如:长春  药店,逆向切分为“长/春  药店”), 因此有人又提出了双向最大匹配法,双向最大匹配法。即,两种算法都切一遍,然后根据大颗粒度词越多越好,非词典词和单字词越少越好的原则,选取其中一种分 词结果输出。

如:“我们在野生动物园玩”

正向最大匹配法,最终切分结果为:“我们/在野/生动/物/园/玩”,其中,两字词3个,单字字典词为2,非词典词为1。

逆向最大匹配法,最终切分结果为:“我们/在/野生动物园/玩”,其中,五字词1个,两字词1个,单字字典词为2,非词典词为0。

非字典词:正向(1)>逆向(0)(越少越好)

单字字典词:正向(2)=逆向(2)(越少越好)

总词数:正向(6)>逆向(4)(越少越好)

因此最终输出为逆向结果。

 

分享到:
评论

相关推荐

    python正向最大匹配分词和逆向最大匹配分词

    Python 正向最大匹配分词和逆向最大匹配分词是自然语言处理(NLP)中的重要技术,用于将文本拆分成单个词语,以便进行文本分析和处理。在本文中,我们将讨论 Python 实现的正向最大匹配分词和逆向最大匹配分词算法,...

    中文分词程序-正向最大匹配算法及逆向最大匹配算法

    中文分词是中文信息处理的重要环节,它是将连续的汉字序列切分成具有语义的单个词汇,为后续的文本分析、信息检索等任务奠定基础。在这个“中文分词程序”中,包含了两种常见的分词算法:正向最大匹配算法(Forward ...

    一个简单的分词系统(可以选择正向最大匹配分词或逆向最大匹配)

    在这个简单的分词系统中,提供了两种主要的分词算法:正向最大匹配(Forward Maximum Matching, FMM)和逆向最大匹配(Backward Maximum Matching, BMM)。下面我们将详细探讨这两种方法及其应用。 首先,正向最大...

    正向最大匹配算法实现中文分词

    MM算法有三种:一种正向最大匹配,一种逆向最大匹配和双向匹配。本程序实现了正向最大匹配算法。 本程序还可以从我的github上面下载:https://github.com/Zehua-Zeng/Maximum-Matching-Algorithm

    正向最大匹配中文分词算法

    中文分词一直都是中文自然语言处理领域的基础研究。目前,网络上流行的很多中文分词软件都可以在付出较少的代价的同时...MM算法有三种:一种正向最大匹配,一种逆向最大匹配和双向匹配。本程序实现了正向最大匹配算法。

    python正向最大匹配分词和逆向最大匹配分词的实例

    在实际应用中,通常会发现正向和逆向分词各有优劣,因此,有时会采用双向最大匹配分词策略来提高分词的准确率。通过本篇文章提供的代码示例,读者可以学习并尝试实现这两种分词技术,并进一步探索如何提高分词效果和...

    采用正向逆向最大匹配才实现汉字分词wordppl.rar

    总之,"采用正向逆向最大匹配才实现汉字分词wordppl.rar"是一个学习和研究汉字分词的好资源,通过它,你可以掌握分词的基本方法,理解正向和逆向最大匹配的优缺点,并探索如何将两者有效结合,以应对实际应用场景中...

    反向最大匹配算法实现中文分词

    MM算法有三种:一种正向最大匹配,一种逆向最大匹配和双向匹配。本程序实现了反向最大匹配算法。 本程序还可以从我的github上面下载:https://github.com/Zehua-Zeng/Reverse-Maximum-Matching-Algorithm

    基于逆向最大匹配分词论文及java代码

    4. **对比与改进**:可能与其他分词算法如正向最大匹配、双向最大匹配(BMM)进行比较,分析各自的优势和不足,还可能提出了一些优化或改进方案。 5. **实际应用**:阐述了逆向最大匹配分词在实际NLP任务中的应用,...

    一种基于改进最大匹配快速中文分词算法

    - **双向最大匹配法**:结合正向最大匹配法和逆向最大匹配法的优点,通过比较两种方法的分词结果,选取更优的一种。 #### 三、基于改进的最大匹配分词算法分析 针对传统最大匹配算法中存在的不足,本文提出了一种...

    基于逆向匹配的中文分词算法

    通过与其他分词算法(如正向最大匹配法、双向最大匹配法等)进行对比,可以更直观地看出基于逆向匹配的中文分词算法的优势与不足。实验结果表明,RMM算法在处理未登录词方面表现更优,尤其是在处理长难句时能够保持...

    python中文分词教程之前向最大正向匹配算法详解

    大家都知道,英文的分词由于单词间是以空格进行分隔的,所以分词要相对的容易些,而中文就不同了,中文中一个句子的分隔就是以字为单位的了,而所谓的正向最大匹配和逆向最大匹配便是一种分词匹配的方法,这里以词典...

    最大匹配算法

    中文分词是将连续的汉字序列切分成具有语义意义的单个词汇,是进行中文信息处理的基础步骤,如搜索引擎、机器翻译、情感分析等。由于中文没有明显的空格或标点符号来区分词汇,因此需要通过特定的算法来实现自动分词...

    PHP中文分词代码 v1.0 UTF-8.rar

    还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向 最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于...

    中文分词系统

    《中文分词系统:深入解析正向与逆向最大匹配算法》 中文分词是自然语言处理中的基础步骤,对于理解和处理中文文本至关重要。在这个基于VC++开发的中文分词软件中,主要采用了两种经典的分词算法:正向最大匹配...

    中文文本分词PPT(详细讲解HMM)

    逆向最大匹配法(Backward Maximum Matching, BMM)则从右向左匹配,可以避免某些情况下正向匹配产生的错误。双向最大匹配法(Bi-directional Maximum Matching, BDM)在两者之间取得平衡,通常能得到更优的结果。 ...

    中文分词算法.docx

    总之,中文分词算法设计的核心在于找到合适的颗粒度,减少非词典词和单字字典词,同时平衡正向和逆向匹配的优点,以提高分词的准确性和语义相关性。通过N-Gram模型和其他统计手段,我们可以构建更加智能和适应性强的...

    中文分词算法介绍、分类详解

    最大匹配法有两种方向:正向最大匹配法(FMM)和逆向最大匹配法(BMM)。FMM从右向左进行匹配,BMM则从左向右进行。例如,在句子“我是中国人”中,逆向最大匹配法会先尝试将“中国人”作为一个整体匹配,如果成功,...

Global site tag (gtag.js) - Google Analytics