美文网首页分词
一文让你了解中文分词

一文让你了解中文分词

作者: 企通查 | 来源:发表于2020-10-20 11:23 被阅读0次

分词,是NLP-自然语言处理(还不了解NLP的小伙伴点这里跳转)的重要步骤。

顾名思义,分词就是将句子、段落、文章等连续的长文本,按照一定的规范重新组合分解,使其成为以字、词为基本单位的数据结构,从而方便后续的处理分析工作。

本文主要对中文分词的相关内容进行介绍,英文分词暂不讨论。

为什么要进行中文分词?

1.可以将复杂问题转化为数学问题

在先前介绍机器学习的文章中,我们讲到过,机器学习之所以看上去可以解决很多复杂的问题,是因为它把这些问题都转化为了数学问题。

而NLP也是相同的思路,文本都是一些“非结构化数据”,我们需要先将其转化为“结构化数据”,才能进行后续的工作,将其转化为数学问题,而分词就是转化中的第一步。

2.词是一个比较合适的粒度

我们知道,与以英文为代表的拉丁语系语言相比,英文以空格作为天然的分隔符,而中文由于继承自古代汉语的传统,词语之间没有分隔(古代汉语中除了连绵词和人名地名等,通常单字就是一个词,所以没有分词书写的必要)。

而在现代汉语中,双字或多字词居多,一个字不再等同于一个词,如果将字作为分词的最小单位,其粒度太小,无法表达完整含义,而句子的粒度太大,承载的信息量多,很难复用。

所以说,词往往是能够表达完整含义的最小单位。

中文分词的难点

难点1:没有统一的标准

现代汉语的基本表达单元虽然为“词”,且以双字或者多字词居多,但由于人们认识水平的不同,对词和短语的边界很难去区分。

例如在“对随地吐痰者给予处罚”中,“随地吐痰者”本身是一个词还是一个短语,不同的人会有不同的看法。

因此目前中文分词既没有统一的标准,也没有公认的规范。不同的公司和组织之间都有各自的方法和规则。

难点2:如何做歧义识别

歧义在中文分词中指同样的一句话,可能会存在两种或者更多的切分方法。

例如“兵乓球拍卖完了”以下的2种分词方式就分别表达了2种不同的含义:

“乒乓球/拍卖/完了”

“乒乓/球拍/卖/完了”

主要的歧义有两种:交集型歧义和组合型歧义。

例如“化妆和服装”,可以分为“化妆/和/服装”或者“化妆/和服/装”,由于计算机没有人类的知识进行理解,就很难知道哪个方案才是正确的,这种被称为交集型歧义。

如果说交集型歧义还算比较容易处理,组合型歧义就必须根据整个句子来判断了。例如“这个门把手坏了”中“把手”是一个词,但在“请把手拿开”中“把手”就不是一个词。这对于计算机来说如何识别也十分困难。

难点3:如何做新词识别

在专业术语中,人名、地名和新词被统称为未登录词,也就是那些在分词词典中没有收录,但又确实能称为词的那些词。

最典型的是人名,人可以很容易理解,对机器来说却十分困难。同样举个例子,在“王军虎去广州了”中,“王军虎”作为一个人名,在此处可以算是一个词,但如果把“王军虎”做为一个词收录到字典中去,在“王军虎头虎脑的”中,“王军虎”显然不是一个词,此时就会与先前的收录内容出现分歧。

除人名之外,还有机构名、地名、产品名、商标名、简称、省略语等,这些又恰好是人们使用频率较高的词,因此如何做好新词识别就显得十分重要,新词识别准确率已经成为评价一个分词系统好坏的重要标志之一。

3种典型的中文分词方法

现有的分词算法可分为三大类:基于字符串(词典)匹配的分词方法、基于统计的分词方法和基于理解(深度学习)的分词方法。

1.基于词典匹配的分词方

又叫机械分词方法,其基本思想是基于词典匹配,即按照一定的策略将待分析的汉字串与机器词典中的词条进行匹配,匹配成功则按照词典的词分词,匹配失败通过调整或者重新选择,如此反复循环即可。

按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配。

常用的几种机械分词方法有如下几种:

1)正向最大匹配法(由左到右的方向)

2)逆向最大匹配法(由右到左的方向)

3)最少切分(使每一句中切出的词数最小)

4)双向最大匹配法(进行由左到右、由右到左两次扫描)

优点:速度快、成本低

缺点:适应性不强,不同领域效果差异大

[if !supportLists]2. [endif]基于统计的分词方法

 

从形式上看,词是稳定的字之间的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。字与字相邻共现的频率或概率能够较好反映成词的可信度。

因此对分析样本中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。

这种方法只需对分析样本中的字组频度进行统计,无需切分词典,因而又叫做无词典分词法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“许多的”等,并且对常用词的识别精度差,时空开销大。

优点:适应性较强

缺点:成本较高,速度较慢

3.基于理解的分词方法

这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果,其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。

基于理解的分词方法通常包括分词子系统、句法语义子系统、总控三部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。

优点:准确率高、适应性强

缺点:成本高,速度慢

常见的分词器都是使用机器学习算法和词典相结合,一方面能够提高分词准确率,另一方面能够改善领域适应性。

相关文章

  • 一文让你了解中文分词

    分词,是NLP-自然语言处理(还不了解NLP的小伙伴点这里跳转)的重要步骤。 顾名思义,分词就是将句子、段落、文章...

  • “结巴”中文分词:做最好的 Python中文分词组件

    “结巴”中文分词:做最好的 Python中文分词组件 1 jieba中文分词简介: 中文分词是中文NLP的第一步,...

  • 第3章 中文分词技术

    本章要点: 中文分词的概念与分类 常用分词的技术介绍 开源中文分词工具-Jieba简介 实战分词之高频词提取 中文...

  • 配置Hanlp自然语言处理进阶

    中文分词 中文分词中有众多分词工具,如结巴、hanlp、盘古分词器、庖丁解牛分词等;其中庖丁解牛分词仅仅支持jav...

  • 分词系统评测

    1.11款开放中文分词引擎大比拼 2.常用的开源中文分词工具 3.11大Java开源中文分词器的使用方法和分词效果...

  • python笔记 | 舆情分析如何做?

    中文分词原理及分词工具介绍 中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切...

  • 中文分词工具及中文语料资源

    关键词: 中文分词;分词;自然语言处理;中文语料 最近要做中文自然语言处理相关任务,牵涉到使用中文分词工具和相关算...

  • 结巴中文分词的用法

    jieba “结巴”中文分词:做最好的 Python 中文分词组件"Jieba" (Chinese for "to...

  • python 结巴分词

    jieba “结巴”中文分词:做最好的 Python 中文分词组件“Jieba” (Chinese for “to...

  • 基于Trie 树实现简单的中文分词

    中文分词简介 中文分词是中文自然语言处理的基础,中文分词的正确率如何直接影响后续的词性标注(也有些词性标注算法不需...

网友评论

    本文标题:一文让你了解中文分词

    本文链接:https://www.haomeiwen.com/subject/tjtdmktx.html