前述

词是自然语言中最小的有意义的构成单位。汉语文本是基于单字的文本,汉语的书面表达方式以汉字作为最小单元,词与词之间没有明显的界限标志,因此,分词是汉语文本分析处理中首先要解决的问题之一。

分词可能是自然语言处理中最基本的问题,在英文中,天然地使用空格来对句子做分词工作,而中文就不行了,没有特点符号来标志某个词的开始或者结尾,而分词通常对语义的理解是特别重要的

汉语言分词系统面临的困难

  • 如何识别未登录词(新词):词典系统没有收录的词。

    1. 专有名词:中文人名(“朱镕基总理”)、地名、机构名(“杭州哇哈哈集团”)、外国译名(“奥斑马、乔丹”)、时间词(1979年5月26日);
    2. 重叠词:“高高兴兴”;
    3. 派生词(衍生词):“一次性用品”、“精致的猪猪女孩”、“佛系”;(最初是英语的gouci
    4. 与领域系相关的术语(互联网、人工智能);
  • 如何廉价高效的获取分词规则
  • 词语边界歧义,指的是对于一个给定的汉语句子或汉字串,有多种词语边界划分形式。包括组合歧义和交叉歧义。
  • 实时性问题:分词算法的准确性和速度。

分词规范

实例:

  • 结合紧密、使用稳定的二字或三字词:

       发展、可爱、红旗、对不起、自行车、青霉素
  • 四字成语一律为分词单位:

      胸有成竹、志存高远
  • 五字或五字以上的谚语、格言等,分开后如不违背原有组合的意义,应予以切分。

       时间/就/是/生命
    失败/是/成功/之/母
  • 结合紧密、使用稳定的词组则不予切分

      不管三七二十一
  • 惯用语和有转义的词或词组,在转义的语言环境下,一律为分词单位:

      母女能顶/半边天
    他/像个/铁公鸡
  • 略语一律为分词单位(形式较长的名词或常用短语的简化形式

      科技、奥运会、工农业
  • 分词单位加形成儿化音的“儿”:

      花儿、悄悄儿、玩儿
  • 阿拉伯数字任然保留原有形式

  • 现代汉语中的其他语言的汉字音译外来词,不予切分:

      巧克力、吉普
  • 不同的语言环境中的同形异构现象,按照具体语言环境的语义进行切分:

      把/手/举起来
    这个/把手/是木制的

动词分词规范简介:

  • 动词前的否定副词一律单独切分

  • 用肯定加否定的形式表示疑问的动词词组一律切分,不完整的则不予切分:

      说/没/说、相信/不/相信
  • 动宾结构的词

      开会、跳舞、解决/吃饭/问题
  • 结合不紧密或是有众多与之相同的结构词组的动宾词组一律不予切分

      跳/新疆/舞、吃/两顿/饭
  • 复合趋向动词一律不予切分:

      出去、进来

常用的分词技术

  • 最大匹配法

    最大匹配法的分词实现很简单,并且可以满足一些对分词准确率要求不高的应用系统。基本思想是,选取一定长度(中文词的最大长度一般为6-8个字)的汉字串作为最大字符串,将其同词表中的词语进行匹配,如果匹配不成功,则删掉一个汉字继续匹配,如果匹配成功,当前字符串即为一个词。按照匹配的方向,最大匹配法分为:

     (1)正向最大匹配法
    (2)逆向(反向)最大匹配法
    (3)双向最大匹配法

    设S'为句子S的一个子串,词表中最长词的字数为m,正向最大匹配法的过程描述如下:

    初始化:指针p1指向句子的首位置

    算法执行:

    (1) 如果p1到达句子末尾,分词结束;

    (2) p2 = p1 + m;

    (3) 如果p1和p2之间的字符串S'在词表中不存在,p2--,重复(3);

    (4) 如果p1和p2之间的字符串S'在词表中存在,则S'是一个词,p1 = p2+1,转(1);

    例如:“计算机科学和工程”

逆向最大匹配法从句尾开始对句子进行扫描,算法的过程描述如下:

初始化:指针p1指向句子的末尾位置
算法执行:
(1) 如果p1到达句子首位置,分词结束;
(2) p2 = p1 - m;
(3) 如果p1和p2之间的字符串S'在词表中不存在,p2++,重复(3);
(4) 如果p1和p2之间的字符串S'在词表中存在,则S'是一个词,p1 = p2-1,转(1);

例如:“计算机科学和工程”

如果句子中不存在歧义,则分词的结果是一致的。但如果存在歧义,则切分结果不完全相同。例如,设词典中最长词的字数为7,输入的句子为:他是研究生物化学的。两种方法的切分结果如下:

正向切分结果:他/是/研究生/物化/学/的 。
反向切分结果:他/是/研究/生物/化学/的 。

无论正向匹配还是逆向匹配,均无法发现句子中的歧义,实际的分词算法中,常使用双向最大匹配法来检测歧义:比较正向和反向的切分结果,其中不一致的地方即是存在歧义的字符串。如上例中,“研究生物化学”的切分结果不一致,则该字符串中存在歧义。分词算法中,常利用双向最大匹配法发现歧义,再进一步对歧义词进行切分。

  • 歧义词切分

    分词中的歧义有两类,组合型歧义和交叉型歧义:

    A、X、B分别为汉字串,如果其组成的汉字串AXB满足AX和XB同时为词,则汉字串AXB为交集型歧义字段。

    例如:“研究生命的起源”可以切分为

        研究 生命 的 起源
    研究生 命 的 起源

汉字串AB满足A、B、AB同时为词,则该汉字串为组合型歧义字段。

例如: “他从马上下来”可以切分为

他 从 马 上 下来
他 从 马上 下来

在实际的分词中,大部分交集型歧义并不会构成负面的影响,因为其在整体的语料中出现的比例比较低。

很多实际的分词系统中,并不考虑句子中歧义字段的歧义类型,而是利用概率模型对句子做统一的处理。

NLP(二)_汉语言分词技术-最大匹配法的更多相关文章

  1. NLP+词法系列(二)︱中文分词技术简述、深度学习分词实践(CIPS2016、超多案例)

    摘录自:CIPS2016 中文信息处理报告<第一章 词法和句法分析研究进展.现状及趋势>P4 CIPS2016 中文信息处理报告下载链接:http://cips-upload.bj.bce ...

  2. 【nlp】中文分词基础原则及正向最大匹配法、逆向最大匹配法、双向最大匹配法的分析

    分词算法设计中的几个基本原则: 1.颗粒度越大越好:用于进行语义分析的文本分词,要求分词结果的颗粒度越大,即单词的字数越多,所能表示的含义越确切,如:“公安局长”可以分为“公安 局长”.“公安局 长” ...

  3. SEO-长尾词与分词技术

        长尾关键词与分词技术 长尾关键词:网站非目标关键词,能给网站带来流量的关键词. 例如:主关键词是成都网站建设 那么,跟成都网站建设相关的词,就叫做长尾关键词. 比如:成都网站建设哪里好?成都网 ...

  4. Python 自然语言处理(1)中文分词技术

    中文分词技术 中文自动分词可主要归纳为“规则分词”“统计分词”和“混合分词”,规则分词主要是通过人工设立词库,按照一定方式进行匹配切分,实现简单高效,但对新词很难进行处理,统计分词能够较好应对新词发现 ...

  5. NLP舞动之中文分词浅析(一)

    一.简介        针对现有中文分词在垂直领域应用时,存在准确率不高的问题,本文对其进行了简要分析,对中文分词面临的分词歧义及未登录词等难点进行了介绍,最后对当前中文分词实现的算法原理(基于词表. ...

  6. 安卓开发_数据存储技术_sqlite

    一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 ...

  7. NLP自然语言处理中英文分词工具集锦与基本使用介绍

    一.中文分词工具 (1)Jieba (2)snowNLP分词工具 (3)thulac分词工具 (4)pynlpir 分词工具 (5)StanfordCoreNLP分词工具 1.from stanfor ...

  8. [问题2014A01] 解答二(后 n-1 列拆分法,由郭昱君同学提供)

    [问题2014A01] 解答二(后 n-1 列拆分法,由郭昱君同学提供) \[|A|=\begin{vmatrix} 1 & x_1^2-ax_1 & x_1^3-ax_1^2 &am ...

  9. 【Lucene3.6.2入门系列】第04节_中文分词器

    package com.jadyer.lucene; import java.io.IOException; import java.io.StringReader; import org.apach ...

随机推荐

  1. 笔记-django学习链接

    form表单学习 https://www.cnblogs.com/weiman3389/p/6225075.html python字符串replace()方法 https://www.cnblogs. ...

  2. (转)JAVA-反射机制的使用

    Java反射机制的实现原理 反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力.通过这种能力可以彻底的了解自身的情况为下一步的动作做准备.下面具体介绍一下java的反射机制.这里你将颠 ...

  3. springboot接口 接收参数为实体对象跟MultipartFile对象报错。

    要把文件和普通数据类型分开接口传输,不可以兼容多个类型参数, 建议是传文件一个接口,返回url路径,再和普通数据一起提交,就是两次 企业上的做法都是这样,先用文件服务器保存文件,返回文件路径 http ...

  4. Codeforces Round #245 (Div. 1)——Xor-tree

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012476429/article/details/25607945 题目链接 题意: 给一棵树n个 ...

  5. hexo+yilia主题博客如何添加图标icon

    1. 先去比特虫网站做icon图标 2. 图片放到hexo/source/img文件夹下 3. 找到hexo\themes\modernist\layout_partial\head.ejs,设置为 ...

  6. 解决linux下python多版本兼容问题?

    环境:CentOS 7(7下默认安装python2.7) Pyhon3在CentOS中需要依赖一些其他的包,我们一次性用yum安装一下: yum install zlib-devel bzip2-de ...

  7. GET和POST请求区别

    关于http协议GET和POST方法的区别我们可以从各处得到比较一致的答案,今天我们来填一个面试中可能碰到的一个坑. 当面试官问你“你觉得GET和POST有什么区别"时,我们可能会想到以下几 ...

  8. MSSQL获取昨天,本周,本月。。。

    特别说明下:以下统计本周数据时,星期天是作为下周的第一天,而不是本周最后一天,因此你把星期天作为本周最后一天时,你需要在getDate()的基础上减一天,如dateadd('day', -1, get ...

  9. C# 创建单例你会几种方式?

    关于为什么需要创建单例?这里不过多介绍,具体百度知. 关于C#  创建单例步骤或条件吧 1.声明静态变量:2.私有构造函数(无法实例化)3.静态创建实例的方法:至于我这里的Singleton是seal ...

  10. Hbase 学习笔记5----hbase region, store, storefile和列簇的关系

    The HRegionServer opens the region and creates a corresponding HRegion object. When the HRegion is o ...