`

三种中文分词算法优劣比较【转】

阅读更多

===============================================================================

转自:

作者:刀剑笑(Blog:http://blog.csdn.net/jyz3051)

Email:jyz3051 at yahoo dot com dot cn('at'请替换成'@','dot'请替换成'.' )

===============================================================================

 

关键词:中文分词,中文分词算法,基于字符串匹配的分词,基于理解的分词,基于统计的分词

到目前为止,中文分词包括三种方法:1)基于字符串匹配的分词;2)基于理解的分词;3)基于统计的分词。到目前为止,还无法证明哪一种方法更准确,每种方法都有自己的利弊,有强项也有致命弱点,简单的对比见下表所示:

各种分词方法的优劣对比

分词方法

基于字符串匹配分词

基于理解的分词

基于统计的分词

歧义识别

新词识别

需要词典

需要

不需要

不需要

需要语料库

需要规则库

算法复杂性

容易

很难

一般

技术成熟度

成熟

不成熟

成熟

实施难度

容易

很难

一般

分词准确性

一般

准确

较准

分词速度

一般

(1)歧义识别

歧义识别指一个字符串有多种分词方法,计算机难以给出到底哪一种分词算法才是正确的分词系列。如"表面的"可以分为"表面/的"或"表/面的"。计算机无法判断哪一种才是准确的分词系列。

基于字符串的分词算法:仅仅是跟一个电子词典进行比较,故不能进行歧义识别;

基于理解的分词算法:指通过理解字符串的含义,故有很强的歧义识别能力;

基于统计的分词算法:根据字符连续出现次数的多少,得到分词系列,故常常能够给出正确的分词系列选择,但是也有可能判断错误的情况。

(2)新词识别

新词识别也称作未登录词识别,指正确识别词典中没有出现的词语。姓名、机构名、地址、称谓等千变万化,词典中常常不能完全收录这些词语;另外,网络中出现的流行用语也是一种未登录词的常见来源,如"打酱油"为最近出现在网络中,并迅速流行,从而成为一个新词。大量的研究证明新词识别是中文分词准确性的一个重要影响因素。

基于字符串的分词算法:无法正确识别未登录词,因为这种算法仅仅与词典中存在的词语进行比较;

基于理解的分词算法:理解字符串的含义,从而有很强的新词识别能力;

基于统计的分词算法:这种算法对第二种未登录词有很强的识别能力,因为出现次数多,才会当作一个新词;对于第二类未登录词,这类词语有一定的规律,如姓名:"姓"+ 名字,如李胜利;机构:前缀+称谓,如希望集团;故需要结合一定的规则进行识别,仅仅统计方法难以正确识别。

(3)需要词典

基于字符串的分词算法:基本思路就是与电子词典进行比较,故电子词典是必须的。并且词典越大,分词的正确率越高,因为词典越大,未登录词越少,从而可以大大减少未登录词识别的错误;

基于理解的分词算法:理解字符串的含义,故不需要一个电子词典;

基于统计的分词算法:仅仅根据统计得到最终的结果,故电子词典不是必须的。

(4)需要语料库

基于字符串的分词算法:分词过程仅仅与一个已经存在的电子词典进行比较,故不需要语料库;

基于理解的分词算法:理解字符串的含义,故不需要电子词典;

基于统计的分词算法:需要语料库进行统计训练,故语料库是必须的;且好的语料库是分词准确性的保证。

(5)需要规则库

基于字符串的分词算法:分词过程仅仅与一个已经存在的电子词典进行比较,不需要规则库来进行分词;

基于理解的分词算法:规则是计算机进行理解的基础,故准确、完备的规则库是这种分词算法的前提;

基于统计的分词算法:根据语料库统计训练,故规则库不是必须的。

(6)算法复杂性

基于字符串的分词算法:仅仅进行字符串的比较操作,故算法简单;

基于理解的分词算法:需要充分处理各种规则,故算法非常复杂;事实上到目前为止,还没有成熟的这类算法;

基于统计的分词算法:需要语料库进行训练,虽然算法也比较复杂,但是已经比较常见,故这种分词的复杂性比第一种大,比第二种容易。现在的实用分词系统都采用这种算法。

(7)技术成熟度

基于字符串的分词算法:是最早出现也是最成熟的算法;

基于理解的分词算法:是最不成熟的一类算法,到目前为止还没有成熟的算法;

基于统计的分词算法:已经有多种成熟的这类算法,基本上能够满足实际的应用。

故技术成熟度:基于匹配的分词算法〉基于理解的分词算法〉基于统计的分词算法。

(8)实施复杂性

同上面的道理,实施复杂性:基于理解的分词算法〉基于统计的分词算法〉基于匹配的分词算法。

(9)分词准确性

到目前为止还没有一个准确的结论,不过从理论上说,基于理解的分词算法有最高的分词准确性,理论上有100%的准确性;而基于匹配的分词算法和基于统计的分词算法是一种"浅理解"的分词方法,不涉及真正的含义理解,故可能会出现错误,难以达到100%的准确性。

(10)分词速度

基于匹配的分词算法:算法简单,操作容易,故分词速度快,所以这种算法常常作为另外两种算法的预处理,进行字符串的粗分;

基于理解的分词算法:这种算法常常需要操作一个巨大的规则库,故速度最慢;

基于统计的分词算法:这种分词算法仅仅是与一个统计结果进行比较,故速度一般。

故一般的分词速度从快到慢依次为:基于匹配的分词算法〉基于统计的分词算法〉基于理解的分词算法。

 

分享到:
评论

相关推荐

    248ssm-mysql-jsp 校园外卖管理系统.zip(可运行源码+数据库文件+文档)

    此次设计的外卖订单管理系统的登录角色一共分为四个,消费者、商户、管理员以及骑手。设计的系统为前端网页和后台管理系统。 消费者主要有以模块的需求:(1)购物车,(2)订单中心,(3)收藏夹,(4)收货地址,(5)个人信息管理,(6)站内咨询浏览,(7)在线留言。 商户的用例包括了一下几个模块设计:(1)商品管理,(2)库存管理,(3)订单管理,(4)销量统计,(5)收藏统计(6)销售额统计,(7)订单量统计 管理员系统结构中的功能设计比较多,分为三个大类分别是基础信息、业务功能和统计信息,基础信息主要是对消费者、商户以及骑手进行信息的维护工作,维护网站内的资讯信息等。业务功能是对网站内的商家进行分类管理,对于商品以及库存进行管理,对订单进行管理以及留言管理。统计信息包括对于商品销量的统计、订单走势图的分析等。 此次使用了java web技术线进行网页端的开发,开发工具采用idea.工具,数据库采用了MySQL进行设计开发,服务器采用了Tomcat服务器技术。该网站系统能够将学校周围商家的外卖产品在网站上向用户进行展示

    MyBatis 动态 SQL 示例

    MyBatis 是一个持久层框架,它允许用户在 XML 文件中编写动态 SQL 语句。MyBatis 的动态 SQL 功能非常强大,它允许开发者根据运行时的条件动态地生成 SQL 语句。这使得 MyBatis 能够灵活地处理各种复杂的查询需求。 MyBatis 动态 SQL 通过使用 <if>、<choose>、<when>、<otherwise>、<trim>、<set> 等标签来实现。附件中是一些常见的动态 SQL 标签及其用法,通过组合使用这些标签,可以编写出非常灵活和强大的 SQL 语句,以适应不同的查询和更新需求

    华为数据治理方法论,包括:数据治理框架、数据治理组织架构、数据治理度量评估体系以及华为数据治理案例分享

    华为数据治理方法论,包括:数据治理框架、数据治理组织架构、数据治理度量评估体系以及华为数据治理案例分享。 1目的 1 2面向的读者 2 3数据治理框架 3 3.1数据治理框架 3 3.2数据治理模块域 3 3.3数据治理各模块域之间的关系 4 4数据治理组织架构 7 4.1数据治理组织架构框架 7 4.2数据治理组织职责 7 5数据治理度量评估体系 10 5.1数据治理实施方法论 10 5.2数据治理度量维度 11 5.3数据治理度量评分规则 11 6华为数据治理案例 13 6.1华为数据治理思考 13 6.2华为数据治理实践 14 6.3华为数据治理效果 15 7新冠疫情数据治理思考 16 8DAYU 方法论产品落地 17

    毕业设计:基于SSM的mysql-羽毛球馆管理系统(源码 + 数据库 + 说明文档)

    毕业设计:基于SSM的mysql_羽毛球馆管理系统(源码 + 数据库 + 说明文档) 第二章 需求分析 3 2.1需求调研 3 2.2可行性分析 3 2.2.1技术的可行性 3 2.2.2经济的可行性 3 2.2.3操作可行性 3 2.2.4法律的可行性 4 2.3开发工具及技术 4 2.3.1网站开发环境 4 2.3.2 PHP语言简介 4 2.3.3 JavaScript技术 4 2.3.4 MySQL数据库 4 2.3.5 PHPstorm平台 5 2.3.6 工作环境 5 第三章 网站系统设计 5 3.1系统功能研究 5 3.1.1系统功能需求 5 3.2功能模块分析 6 3.3 设计的基本思想 7 3.4 性能要求 8 3.4.1 网站的安全性 8 3.4.2 数据的完整性 8 3.4.3界面要求 8 第四章 网站功能实现 8 4.1系统实现 8 4.1.1 管理员登录界面 9 4.1.2 后台用户管理 9 4.1.3 球场管理 10 4.1.4 物资管理 11 4.1.5 预定管理 12 4.2数据库的分析与设计 13 4.2.1数据库的概念结构设计 13 4.2.2数据库

    搜索链接相见欢友情链接系统ASPX版 v1.0-xjlinkaspxv1.0.rar

    相见欢友情链接系统ASPX版 v1.0_xjlinkaspxv1.0.rar,这是一个专为计算机专业人士设计的JSP源码资料包。这款系统是基于ASPX技术构建的,旨在为用户提供一个高效、便捷的友情链接管理平台。它能够帮助网站管理员轻松地管理和控制网站上的友情链接,提高网站的互动性和用户体验。这个资料包包含了完整的源代码和相关的文档,使得用户可以轻松地进行二次开发和定制。它提供了丰富的功能,包括友情链接的添加、删除、修改、审核等,以及链接分类、排序、搜索等功能。此外,它还支持多种链接样式和模板,可以根据用户的喜好和需求进行个性化设置。相见欢友情链接系统ASPX版 v1.0不仅功能强大,而且操作简便。它的界面设计简洁明了,用户可以快速上手,无需专业的计算机知识。同时,它还具有良好的兼容性和稳定性,可以在不同的环境和平台上运行,满足各种规模的网站建设需求。总的来说,相见欢友情链接系统ASPX版 v1.0是一个实用、高效、易用的友情链接管理工具。无论是对计算机专业人士,还是对普通用户,都是一个很好的选择。通过使用这个系统,可以大大提高网站管理的工作效率,提升网站的专业性和用户体验。重新回答||

    node-v8.12.0-linux-armv7l.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    最新UI站长引流工具箱 带后台+安装说明.rar

    最新UI站长引流工具箱 带后台+安装说明.rar最新UI站长引流工具箱 带后台+安装说明.rar最新UI站长引流工具箱 带后台+安装说明.rar

    上市公司-企业要素密集度数据集(2000-2022年).txt

    数据存放网盘,txt文件内包含下载链接及提取码,永久有效。 样例数据及详细介绍参见文章:https://blog.csdn.net/li514006030/article/details/138294086

    node-v6.12.3.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    乐趣大型购物系统 v1.1(jsp+servlet+mysql)130223.rar

    这个文件名为"乐趣大型购物系统 v1.1(jsp+servlet+mysql)130223.rar",是一个计算机专业的JSP源码资料包。它包含了一个使用JSP、Servlet和MySQL技术实现的大型购物系统的源代码。该系统的设计理念是以用户为中心,提供便捷、高效的购物体验。系统采用了模块化的设计方法,将不同的功能划分为不同的模块,提高了代码的可读性和可维护性。同时,系统使用了MVC设计模式,将业务逻辑、数据访问和用户界面进行了分离,使得系统具有更好的扩展性和灵活性。在数据库设计方面,系统使用了MySQL数据库,对商品信息、用户信息、订单信息等进行了合理的设计和存储。通过使用数据库的事务管理机制,保证了数据的一致性和完整性。在用户界面设计上,系统提供了简洁明了的页面布局,使用户能够快速上手并完成购物操作。系统还提供了搜索功能,方便用户快速找到自己需要的商品。此外,系统还提供了购物车功能,用户可以将选购的商品加入购物车,并在合适的时间进行结算。总的来说,这个"乐趣大型购物系统 v1.1(jsp+servlet+mysql)130223.rar"是一个功能齐全、设计合理的购物系统,对于学

    node-v8.15.0-x64.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    记账管理系统的设计与实现

    近年来由于生活节奏的加快,好像每个人都被很多难以启齿的问题困惑,然而关于随意消费是大多数人头疼的问题,没有任何计划和筹备的情况下随意消费,导致现实生活中我们所称为的“月光族”。 当你逐渐了解自己的财务状况,就可以学着做简单的收支规划。大部分月光族的根源其实是缺乏规划,想买什么的时候就买了。并不是说规划不能随意买东西,规划的价值在于让你使用资金的效率最高。无论你用金钱换取的必需品,满足感或者快乐,都可以通过规划获得比较高的效率。 本记账系统是一个基于国内外电子商务网站的发展现状,采用B2C(Business to Consumers)模式开发的电子商务平台,它的价值所在对于那些随意消费性的人群能起到一个很大的警示作用,而且系统扩张性很强,能根据客户的不同需求进行快速改进。该系统采用B/S三层结构,服务器是Tomcat同时运用JSp技术进行动态页面设计,后台数据库是Oracle。

    Linux 0.01版,经典中的经典

    大名鼎鼎的Linux源码,最经典的第一版

    node-v12.5.0-sunos-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v8.3.0-win-x64.zip

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v0.10.48.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    matlab实现遗传算法matlab源码.zip

    优秀源码设计,详情请查看资源内容

    基于matlab实现此函数使用标量衍射限制模型为宽场显微镜生成点扩展函数

    基于matlab实现此函数使用标量衍射限制模型为宽场显微镜生成点扩展函数(Stokseth 参考下面的 [1] 和 [3]).rar

    Qt 5.15.13静态库

    Qt 5.15.13静态库

Global site tag (gtag.js) - Google Analytics