NLP之汉语自动分词

汉语自动分词就是让计算机识别出汉语文本中的‘词’,在词与词之间自动加上空格或其他边界标记。

目录

一.汉语自动分词中的基本问题

1.1分词规范问题

2.2歧义切分问题

3.未登录词问题

二.汉语分词方法

1.N-最短路径方法

2.基于词的n元语法模型的分词方法

3.由字构词的汉语分词方法

4.基于词感知机算法的汉语分词方法

5.基于字的生成式模型和区分式模型相结合的汉语分词方法

6.其他分词方法

三、分词方法比较


一.汉语自动分词中的基本问题

 汉语自动分词的主要困难来自如下三个方面:分词规范、歧义切分、未登录词的识别

1.1分词规范问题

“词是什么”(词的抽象定义)及“什么是词”(词的具体界定),这两个基本问题迄今拿不出一个公认的、具有权威性的词表来。

主要困难出自两个方面:一方面是单字词与词素之间的划界,另一方面是词与短语(词组)的划界。

此外,对于汉语“词”的认识,普通说话人的语感与语言学家的标准也有较大的差异。

从计算的严格意义上说,自动分词是一个没有明确定义的问题 。

2.2歧义切分问题

歧义字段在汉语文本中普遍存在。

梁南元最早对歧义字段进行了比较系统的考察。他定义了以下两种基本的切分歧义类型。

1.交集型切分歧义

汉字串ABC称作交集型切分歧义,如果满足AB、BC同时为词(A、B、C分别为汉字串)。此时汉字串B称作交集串。

例如:大学生、结合成……

为了区分交集型歧义字段的复杂度,我们引入链长的概念。

链长: 一个交集型切分歧义所拥有的交集串的集合称为交集串链,它的个数称为链长。

例如,交集型切分歧义“结合成分子”、“结合”、“合成”、“成分”、“分子”均成词,交集串的集合为{“合”,“成”,“分”},因此,链长为3。类似地,“为人民工作”交集型歧义字段的链长为3,“中国产品质量”字段的链长为4,“部分居民生活水平”字段的链长为6。

2.组合型切分歧义

 汉字串AB称作多义组合型切分歧义,如果满足A、B、AB同时为词。

例如,多义组合型切分歧义:“起身”
在如下两个例子中,“起身”分别有两种不同的切分:(a)他站│起 │身│来。(b)他明天│起身│去北京。
类似地,“将来”、“现在”、“才能”、“学生会”等,都是组合型歧义字段。


汉语词语边界的歧义切分问题比较复杂,处理这类问题时往往需要进行复杂的上下文语义分析,甚至韵律分析,包括语气、重音、停顿等。

3.未登录词问题

未登录词又称为生词(unknown word),可以有两种解释:一是指已有的词表中没有收录的词;二是指已有的训练语料中未曾出现过的词。在第二种含义下,未登录词又称为集外词(out of vocabulary, OOV),即训练集以外的词。

通常情况下将OOV与未登录词看作一回事。

未登录词可以粗略划分为如下几种类型:
①新出现的普通词汇,如博客、房奴、给力等,尤其在网络用语中这种词汇层出不穷。
②专有名词(proper names)。专有名词在早期主要是指人名、地名和组织机构名这三类实体名称。1996年第六届信息理解会议对此进行了扩展,首次提出了命名实体(named entity)的概念,新增了时间和数字表达(日期、时刻、时段、数量值、百分比、序数、货币数量等),并且地名被进一步细化为城市名、州(省)名和国家名称等。
③专业名词和研究领域名称。特定领域的专业名词和新出现的研究领域名称也是造成生词的原因之一,如三聚氰胺、苏丹红、禽流感、堰塞湖等。
④其他专用名词,如新出现的产品名,电影、书籍等文艺作品的名称,等等。

根据黄昌宁等人(2003)的统计,在真实文本的切分中,未登录词总数的大约九成是专有名词(人名、地名、组织机构名),其余的为新词(包括专业术语)。当然,这个统计比例与语料所属的领域密切相关。

对于大规模真实文本来说,未登录词对于分词精度的影响远远超过了歧义切分。在汉语分词系统中对于未登录词的处理,尤其是对命名实体的处理,远比对切分歧义词的处理重要得多。

在20世纪八九十年代和21世纪初期,针对汉语分词问题,其一般做法是:首先依据从各类命名实体库中总结出来的统计知识(如人名姓氏用字及其频度)和人工归纳出来的某些命名实体结构规则,在输入句子中猜测可能成为命名实体的汉字串并给出其置信度,然后利用对该类命名实体具有标识意义的紧邻上下文信息(如称谓、组织机构标识词等),以及全局统计量和局部统计量,作进一步鉴定。

实践中,外国译名的识别效果最好,中国人名次之,中国地名再次之,组织机构名最差,而任务本身的难度实质上也正是循这个顺序由小到大。未登录词的识别面临很多困难。一方面,很多未登录词都是由普通词汇构成的,长度不定,也没有明显的边界标志词;另一方面,有些专有名词的首词和尾词可能与上下文中的其他词汇存在交集型歧义切分。另外,在汉语文本中夹杂着其他语言的字符或符号,也是常见的事情。

二.汉语分词方法

刘源等(1994)曾简要介绍了16种不同的分词方法,包括正向最大匹配法(forward maximum matching method, FMM)、逆向最大匹配法(backward maximum matching method, BMM)、双向扫描法、逐词遍历法等,这些方法基本上都是在20世纪80年代或者更早的时候提出来的。由于这些分词方法大多数都是基于词表进行的,因此,一般统称为基于词表的分词方法。

随着统计方法的迅速发展,人们又提出了若干基于统计模型(包括基于HMM和n元语法)的分词方法,以及规则方法与统计方法相结合的分词技术,使汉语分词问题得到了更加深入的研究。

接下来主要介绍几种性能较好的基于统计模型的分词方法,并对这些分词技术进行简要的比较。

1.N-最短路径方法

考虑到汉语自动分词中存在切分歧义消除和未登录词识别两个主要问题,因此,有专家将分词过程分成两个阶段:首先采用切分算法对句子词语进行初步切分,得到一个相对最好的粗分结果,然后,再进行歧义排除和未登录词识别。当然,粗切分结果的准确性与包容性(即必须涵盖正确结果)直接影响后续的歧义排除和未登录词识别模块的效果,并最终影响整个分词系统的正确率和召回率。

张华平等(2002)提出了旨在提高召回率并兼顾准确率的词语粗分模型——基于N-最短路径方法的汉语词语粗分模型。

这种方法的基本思想是:根据词典,找出字串中所有可能的词,构造词语切分有向无环图。每个词对应图中的一条有向边,并赋给相应的边长(权值)。然后针对该切分图,在起点到终点的所有路径中,求出长度值按严格升序排列(任何两个不同位置上
的值一定不等,下同)依次为第1、第2、…、第i、…、第N(N≥1)的路径集合作为相应的粗分结果集。如果两条或两条以上路径长度相等,那么,它们的长度并列第i,都要列入粗分结果集,而且不影响其他路的排列序号,最后的粗分结果集合大小大于或等于N。

考虑到切分有向无环图G中每条边边长(或权重)的影响,张华平等人又将该方法分为非统计粗分模型统计粗分模型两种。所谓的非统计粗分模型即假定切分有向无环图G中所有词的权重都是对等的,即每个词对应的边长均设为1。

非统计粗分模型:

假设NSP为结点V0到Vn的前N个最短路径的集合,RS是最终的N-最短路径粗分结果集。那么,N-最短路径方法将词语粗分问题转化为如何求解有向无环图G的集合NSP。

求解有向无环图G的集合NSP可以采取贪心技术,张华平等使用的算法是基于求解单源最短路径问题的Dijkstra贪心算法的一种简单扩展。改进之处在于:每个结点处记录N个最短路径值,并记录相应路径上当前结点的前驱。如果同一长度对应多条路径,必须同时记录这些路径上当前结点的前驱,最后通过回溯即可求出NSP。

例子:

以句子“他说的确实在理”为例,给出了3-最短路径的求解过程。

图中,虚线是回溯出的是第一条

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux系统可以通过安装中文语言包来实现汉语化。具体方法可以通过在终端输入命令sudo apt-get install language-pack-zh-hans来安装中文语言包。安装完成后,可以在系统设置中选择中文语言作为默认语言。 ### 回答2: 要将Linux系统汉语化,首先可以通过修改系统的语言设置来实现。一般来说,Linux的系统语言设置存储在配置文件中,可以使用文本编辑器打开该文件并进行修改。该文件可能位于/etc/locale.conf、/etc/default/locale或者/etc/sysconfig/i18n等路径下。 在相应的配置文件中,有一个叫做"LANG"的变量,它定义了系统使用的语言。将该变量的值修改为支持中文的语言环境,如"zh_CN.UTF-8"即可实现将系统界面显示为中文。 此外,安装中文语言包也是汉语化Linux系统的重要步骤。可以使用命令行工具如"yum"或"apt-get"来下载并安装中文语言包。安装完中文语言包后,系统相关的程序和应用的界面和提示信息都将显示为中文。 除了系统界面,还可以通过设置输入法来实现在Linux上输入中文。安装并设置一个合适的中文输入法,如ibus或fcitx,这样就可以在系统中使用中文进行输入了。 此外,对于一些常见的应用程序或者桌面环境,还可以通过安装和启用对应的中文语言包来汉语化它们。比如在安装Mozilla Firefox浏览器时,可以选择安装中文语言包,这样浏览器的界面和菜单就会显示为中文。 总结起来,汉语化Linux系统的基本步骤包括修改系统语言设置、安装中文语言包以及设置中文输入法,如果需要,还可以安装和启用特定程序或桌面环境的中文语言包。这些步骤完成后,就可以在Linux系统上方便地进行中文操作和使用了。 ### 回答3: 在Linux系统上实现汉语化有几个常见的方法: 1. 安装中文本地化语言包:通过在系统中安装中文本地化语言包,可以将系统界面、应用程序和命令行工具的显示语言切换为中文。在大多数Linux发行版中,可以通过系统设置或软件包管理器来安装相应的语言包。安装完毕后,系统会提示重新启动或注销并重新登录,以使更改生效。 2. 使用中文本地化软件:一些常见的Linux应用程序和桌面环境已经提供了中文本地化版本,用户可以直接下载并安装这些软件,以获得完全的汉语化体验。例如,GNOME、Unity、KDE等桌面环境以及LibreOffice、Firefox等应用程序都提供了中文本地化版本。 3. 自定义环境变量和配置文件:用户可以根据自己的需求,通过修改环境变量或配置文件的方式来实现系统的汉语化。例如,在终端中可以通过设置LANG环境变量为"zh_CN.UTF-8"来切换系统的语言为中文。另外,一些应用程序也提供了自定义配置文件的选项,用户可以根据需要修改相关配置,以实现界面的汉化或个性化定制。 总之,汉语化Linux系统可以通过安装中文语言包、使用中文本地化软件以及自定义环境变量和配置文件来实现。用户可以根据自己的需求和喜好进行选择和调整,以达到满足自己的中文使用需求的目的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值