趣文网,分享全网好句子、好文章!

开发中文分词程序的技术框架

时间:2023-11-01 02:59:01

相关推荐

开发中文分词程序的技术框架

本篇讲述常用分词算法的基本原理以及开发分词程序的技术框架,给出的技术框架也是整个中文分词课程要实现的中文分词程序案例。本文介绍常用分词算法的基本原理,主要是让读者对分词的知识框架有个整体认知。通过本篇的学习,可以达成如下目标。

● 了解常用分词算法的基本原理

● 了解课程案例的技术框架

中文分词是自然语言处理的基石,机器翻译、文本相似性分析、问答系统等应用都需要调用中文分词的API,用来切分文章或句子,获取词的属性、频率、位置等信息。

开发的分词程序,应该能够作为模块或插件被其它应用程序集成使用,或者提供在线分词服务。下图是中文分词程序的技术框架。

中文分词的核心处理模块包括分词API、切分算法以及处理词典库与语料库的处理程序。另外,还包括分词评测模块。

分词API

API是中文分词程序对外提供的接口,外部应用调用接口完成文章和句子的分词功能。可以通过两种方式调用分词API。一种方式是集成调用,将分词程序集成到外部应用内部;另外一种方式是利用Web服务,外部应用通过WebService接口,在线调用分词API。Web服务的好处是外部应用无需部署分词程序和词典语料库,仅调用WebService接口就可以完成中文分词的功能。下图是中文分词提供Web服务的使用场景图。

切分算法

切分算法是中文分词的核心技术,切分算法的好坏直接影响到分词的效率和效果。当前比较实用的算法有两大类,一类是基于词典的分词方法;一类是基于统计的分词方法。

(1)基于词典的分词方法

该分词方法需要一个词典库,用于匹配待切分的中文词语。《现代汉语规范词典》就是很好的词典库,收录了大约68000个规范词语。从待分词的文本中抽取子串去逐一匹配《现代汉语规范词典》的词语,若匹配成功说明该子串是词语,就从待分词的文本中切分出来,继续匹配下一个子串;若匹配不成功,则说明该子串不是词语,从待分词文本中修订该子串,继续匹配。

基于词典的分词方法具体算法有:

① 最大正向匹配分词算法:在待分词文本中从左到右依次找到与词典库匹配的最长词语。

② 最大逆向匹配分词算法:同最大正向匹配分词算法原理基本相同,不同之处是在待分词文本中从右到左依次找到与词典库匹配的最长词语。

③ 概率分词法:最大匹配算法不能解决两个词组合歧义的问题。对于待分词的文本,找出所有可能的词,再通过词频概率确定需要切分的词语。

(2)基于统计的分词方法

基于统计的分词方法有统计词频、词序列的最大概率值等统计方法。

统计词频的思路是判断字与字之间的组合概率,字之间的组合概率大,其作为词语的概率就大。具体方法是通过字的组合在文本中连续出现的频率来确定其概率,概率大的字组合为词语的可信度就高。例如,“我们”是我与们的组合,该组合在文本中连续出现的概率比较大,“我们”是词语的可信度就比较高。

词序列的最大概率值的思路是把待分词文本看成一个序列,从这个序列中获得一个最大的分词方案。

基于统计的分词算法有隐马尔可夫模型(HMM)、最大熵模型(MaxEnt)、基于条件随机场模型(CRF)、最大熵马尔可夫模型(MEMM)。

词典与语料处理

词典一般以文本文件的方式存在,词典处理程序读取词典文件,构建词典树。最简单的词典文件就是每行一个词。为了提高词典的载入速度,也可以把词典转换成二进制文件。

分词评测模块

分词评测模块主要测试分词程序的分词效率和正确性。评测模块基于WEB页面实现,分词测试者可以选择不同的算法进行分词,比较不同算法的优劣,也可以输入语句或选择文件来验证分词结果的正确性。

■ 课程小结

常用的分词方式有基于词典的分词方式和基于统计的分词方式,两种方式各有优缺点,比较好的分词程序是两种方式联合使用,以提高分词的正确率。

文中给出了开发分词程序的基本框架,框架包括接口API、切分组件、词典库及语料库的处理程序、测试模块。后面的课程以该框架为基础不断扩充和细化,逐步构建基于WEB服务的在线分词程序。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(1)
  1. ℡黑与白的对比。2023-12-24 10:46℡黑与白的对比。[江苏省网友]45.113.54.29
    非常有用的技术框架!感谢开发者的辛勤劳动。希望能够不断完善和更新,使中文分词变得更加准确和高效。
    顶0踩0
相关阅读
创新工场两篇论文入选ACL 2020 将中文分词数据刷至新高

创新工场两篇论文入选ACL 2020 将中文分词数据刷至新高

感谢神奇的中文分词,给我们带来了多少乐趣

2023-11-28

这味儿上头 前有文言文 又来东北话 中文编程玩得挺得劲

这味儿上头 前有文言文 又来东北话 中文编程玩得挺得劲

Google的一位华人高级软件工程师 技术主管就开发了一款以东北方言为关键字的编程语言,并且在GitHub上进行了开源,并且还写了一篇详细教程来介绍这款语言

2023-11-30

如何在 Electron 上实现 IM SDK 聊天消息全文检索

如何在 Electron 上实现 IM SDK 聊天消息全文检索

所谓全文检索,就是要在大量文档中找到包含某个单词出现位置的技术

2023-06-30

Java程序员开发必备 MyBatis高级应用之逆向工程自动生成SQL语句

Java程序员开发必备 MyBatis高级应用之逆向工程自动生成SQL语句

MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成myba

2023-06-17