中英文分词系统设计.docx
《中英文分词系统设计.docx》由会员分享,可在线阅读,更多相关《中英文分词系统设计.docx(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中英文分词系统摘要自然语言处理是人工智能领域的一个重要分支,主要研究如何利用计算机来理解和生 成自然语言,文本分词是自然语言处理的一个重要阶段,是将连续的字序列按照一定的规 范重新组合成词序列的过程。而分词技术是信息处理的基础环节,分词的主要任务就是通 过计算机自动完成对中英文句子的切分。依靠专门的算法,识别出独立的词,并在词与词 之间用分隔符分割开。本毕业设计主要介绍分词的开展现状、分词算法、系统功能和实现流程,进而实现一 个中英文分词原型系统,能够对汉语和英语两种语言同时存在的文本进行分词,对于中文 文本,采用机械分词方法中的正向最大匹配方法,假设在词典中找到某个字符串,那么匹配成 功。假
2、设存在多个词条与待分析汉字串匹配,那么选取最长的字符串;对于英文文本,利用单 词之间的空格和其它的分隔符将英文文本分成单词序列。关键词:分词算法 最大匹配方法词典基本思想:逆向最大匹配算法与正向最大匹配算法思想是类似的,只是匹配的方向有 所区别,逆向的是从右到左,减词方向是从左到右。该算法比正向最大匹配算法的精确度 要高一些。算法流程:第一步:获取待分词文本和最大单词长度,设P为待分析文本,初始值为用户输入的 句子,Q、A分别为分词结果和候选子串,初始值都为空;第二步:假设P不为空,从P右边取出候选子串A;假设P为空,直接输出Q作为分词结 果;第三步:查词典,假设A在词典中,将A加入到Q中,并
3、将A从P中去掉,重新执行 上一步;假设A不在词典中,将A的最左边一个字去掉,转第三步,直到分词结束为止。(3)设立切分标志算法基本思想:切分标志分为自然切分和非自然切分标志,自然切分标志是指文章中出现 的非文字符号,如标点符号、空格等;非自然标志是利用词缀和不构成词的词,它单独存 在却是个词,在词典中无法找到;切分标志法主要作为一种预处理的方法口叫设立切分标志首先收集大量的切分标志,分词时先找出切分标志,把句子切分成一些 较短的字段,再利用机械类的算法或者其他的算法进行进一步的切分,进而到达分成词的 效果。总结:正向最大匹配和逆向最大匹配是最基本的核心算法。其他的改进算法一般都是 在这两种算法
4、的基础上从词典的个数、组织结构和种类等方面对词典进行重构而得到的。2. 4. 2基于理解的分词方法基于理解的分词方法又名基于人工智能的分词方法,该分词方法处理方法是利用句法 和语义信息的分析来进行分词。它由三个局部组成:分词子系统、句法语义子系统和总控 局部。总控局部可以协调分词子系统获得有关词、句子等的句法和语义信息,让计算机模 拟了人对句子的理解过程,这种分词方法需要用到大量的语言知识和信息、。目前基于理解 的分词方法主要有专家系统分词法和神经网络分词法等,由于汉语语言知识的笼统、复杂 性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还 处在试验阶段口久通常基于
5、理解的分词方法有:(1)专家系统分词算法。为了使知识库的维护与推理机的实现互不干扰,并且让知识库易于维护和管理,可以 从专家系统角度把分词的知识从实现分词的过程的推理机中独立出来来实现,。专家系统 分词算法还具有发现多种歧义字段的能力和一定的自学功能。专家分词方法将分词所需要的语法,语义以及句法知识从系统的结构和功能上别离出来。它主要是从模拟人脑功能出发,构造推理过程,将分词过程看作是知识推理过程,将 知识的表示,知识库的逻辑结构与维护作为首要考虑的问题,知识库是专家系统具有智能 的关键性部件“支(2)神经网络分词法该方法是模拟人脑并行,分布处理和建立数值计算模型工作的。它将分词知识所分散 隐
6、式的方法存入神经网络内部,最后给出神经网络自动分词结果。(3)神经网络专家系统集成式分词法。该方法可以比拟充分发挥神经网络与专家系统二者优势,首先启动神经网络进行分 词,当神经网络对新出现的词不能给出准确切分是,便激活专家系统进行分析判断,依据 知识库进行推理,得到初步分析,并开始启动学习机制对网络进行训练,进一步提高分词 效率。2. 4. 3基于统计的分词方法该方法又称为无字典分词,所应用的主要的统计模型有:N元文法模型、隐Marker 型和最大幅模型等“6】。在实际应用中一般是将其与基于词典的分词方法结合起来。既发挥 匹配分词切分速度快、效率高的特点,Y - N用了无词典分词结合上下文识别
7、生词、自动 消除歧义的优点。词是比拟稳定的字的组合,在文本文档中,如果相邻的字出现的次数越多,那么它构 成一个词的概率就很大,因此字符与字符相邻共现的频率能够较好的反映成词的概率。所 以可以对语料中相邻共现的各个字符的组合的频度进行统计,计算它们的出现频率。该方 法对于大的语料,分全率还可以,但是对于小的语料分全率就比拟低口叫5分词算法优缺点比拟(1)基于字符串匹配的分词方法优点:简单、方便容易实现缺点:由于机械类的分词方法无法避开自然语言表达的方式丰富多彩,新的词汇不断 出现和汉语语句结构的复杂性,这使得机械分词方法面临着很多问题:一词多义问题、歧 义问题和未登录词识别的问题,这些问题直接影
8、响了分词的精确度。(2)基于理解的分词方法优点:比上一种方法更加准备,是模拟人对句子的理解过程来分词;缺点:实现起来难,由于语言知识的笼统、复杂性,难以将各种语言信息组织成计算 机可直接读取的形式,因此基于理解的分词系统目前还没有实现。(3)基于统计的分词方法优点:没有待处理文本领域的限制;不需要加载词典;能够有效地自动排除歧义,能够识别很好的识别未登录词。缺点:需要大量的实验数据,用以建立统计模型的参数;计算量、统计量大;分词结 果受实验数据影响,精度较低;经常切分出一些共现频度高,但并不是词的常用字组。第3章中英文分词系统3.1 系统总体设计及功能简述系统总体设计中文分词(Chinese
9、Word Segmentation)指的是将一个汉字序列切分成一个一个单独 的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。英文分词那么是 基于规那么的分词方法,按照英文中的空格进行英文单词的序列的切割;中英文分词系统实 现了一个中英文分词原型系统,能够对汉语和英语两种语言同时存在的文本进行分词,研 究中英文分词的现状和关键技术,分别实现基于最大匹配和基于规那么的中英文分词算法。 本系统采用机械类的最大匹配算法,用正向最大匹配算法、逆向最大匹配算法和双向最大 匹配算法实现了分词的功能。系统功能流程图如图3-1所示: 待处理文本机械类的分词方法分词结果图3-1系统功能流程图3.
10、 1.2系统功能简述用户可以有两种方式输入待分词文本,一种是手动输入,一种是直接翻开文本文档; 当在界面输入待分词文本时,系统首先加载分词字典,然后调用分词方法遍历待处理中文 文本和分词词典,直到分词完毕。3. 2系统详细设计 3. 2. 1界面设计(1)界面功能描述该系统需要把用户所提供的待处理中文文本读入到系统中,同时也要支持用户自己输 入,然后由用用户选择分词的算法,最后系统把分词后结果输出到界面显示给用户,用户 可以把结果保存到计算机。因此系统应该有一个界面,里面包含一些按钮和文本框供用户 输入和选择。当点击翻开按钮时,弹出对话框,用户选择包含待处理文本的文件,系统读取文本 并显示在系
11、统界面上。截图如下:查看:口 Documents回同 |蹴二正向 逆向 双向 分同分同结果:口口 口口eBooksTencent FilesUntitled.uml文件名:文件类型:斫有文件翻开 取消国翻开囹中英文分词系统(=)回文件系统说明翻开同典待分同文本:图3-2界面截图当点击正向最大匹配按钮时,系统使用正向最大匹配算法。10当点击逆向最大匹配按钮时,系统使用逆向最大匹配算法。当点击双向最大匹配按钮时,系统使用双向最大匹配算法。当点击分词算法时,系统读取文本框一里内容,使用用户选择的算法(默认是正向 最大匹配算法)进行分词,并把结果输出到分词结果文本框中。当点击保存按钮时,弹出对话框,用
12、户选择保存路径和输入文件全名,系统读取分 词结果并保存。可以翻开词典对词典进行查看、添加、删除词的操作。截图如下:国 中英文分词系统I尸回一系统说明翻开同典待分同文本:_ I 1r .词典记事本 口 回至文件(F)编重(E)格式(O)亘看(V)帮助(H)正向 逆向 双向 分同分同结果:1 8 o 1 3Tr- 5 9 1X LO CO t-1 - X 1X CO 1X 1x 1x 1x 1x 里格松比瓦 户 贝贝克尔俄科 儿挨 正及里打余骂门着 阿霍埃埃埃埃埃埃哎7 1 8 41X 1X OJ 1X图3-3词典操作(2)实现界面设计的主要组件:界面采用SWING组件来实现,通过给每个组件添加事
13、件监听器来实现其相对应的功能。 界面具有一个菜单栏,两个JTextArea (分别为areal和area2 );通过将一组按钮 JRadioButton (分别为btnl btn2、btn3)添加到ButtonGroup中,使其成为单项选择按钮; 最后界面还有一个触发系统分词的普通按钮JButtono菜单栏包括翻开文件、保存文件、系统说明和翻开词典;IIareal和area2分别用来显示待分词文本和分词结果;btnl btn2、btn3三个按钮分别代表正向、逆向和双向分词方法。3. 2. 2词典的加载(1)词典的加载方法基于字符串匹配的分词方法的正确率很大一局部依赖于词典,本系统的词典是以文本
14、 文档的形式保存在JAVA工程根目录下,词典结构是无序排列,文本每行保存一个词语, 后面保存该词语的使用频度。词与词之间以换行符分割,局部词典内容如下:(数字为该 词的使用频度)挨打 3挨个儿1挨骂1挨门挨户1在词典中词的长度没有限制,词的长度即为词的字节数,用户可以自己添加汉语词汇 也可以自己删除词汇,使用HashMap保存词典。HashMap是Java中一种常用的容器,它按 照KEY-VALUE形式来保存数据的映射,使用起来非常简单,同时HashMap提供了许多方法 来操作它。例如使用put (key, value)方法可以方便的将数据保存在HashMap中,使用 get (key)方法可
15、以快速的获取HashMap中与key相对应的值,如果没有相应的key那么返回 NULLo本系统使用HashMap来保存词典主要是因为其取元素的高效率,响应时间短。 加载词典的算法如下:import java.io.BufferedReader;import java.io.FileReader;import java.util.HashMap;public class LoadDic /key:字典中的词value:词的长度public static HashMap Dictionary 二 new HashMap();词典中所有词中最长的词的长度public static int MaxLe
16、ngth = 0;public static void loadDictionaryO throws Exception BufferedReader br = new BufferedReader(new FileReader(nSDIC.txtH);String strLine = ”;String word12 int length = 0;while (null != (strLine = br.readLine()(for(int i = 0; i strLine.length(); i+)if(strLine.charAt(i) = * )word = strLine.substr
17、ing(O, i);截取空格前的单词)length = word.length();if(MaxLength length) MaxLength = length;)Dictionary.put(word, length);)br.close();) )3算法的详述最大匹配算法主要包括正向最大匹配算法、逆向最大匹配算法、双向匹配算法。其 主要原理都是切分出词典中最长的字符串,然后与词典中的词进行匹配,如果匹配成功就 是一个词,并把该词记录下来,否那么通过减少一个字,继续匹配,直到整个文本文档只 剩下一个字那么终止。3.3. 1正向最大匹配算法算法思想:本论文系统用的分词词典最长词条为10个字,
18、分词词典用的不一样最长 词条长度不同,在这里我们将分词词典中的最长词条是a个字,那么取被处理文本当前字符 串序列中的前a个字作为匹配字段,查找词典,假设词典中存在这样的一个i字词,那么匹配 成功,匹配字段被作为一个词切分出来;如果在词典中找不到这样一个i字词,那么匹配失 败,匹配字段去掉最后一个字,剩下的字段重新进行匹配,如此进行下去,直到匹配成功, 也就是完成一轮匹配,切分出一个词为止。依次循环,直到全局部词结束。算法详细设计流程如图3-4所示:13流程图的局部注解:int maxLength = LoadDic. MaxLength;/获得所有词中最长的长度int lastindex =
19、0;上一次分词最后得到的下标int nowindex = 0;/分词,现在的下标分词得到的临时字符串String tempWord = waitDicisionWord. substring(lastindex, nowindex);机械匹配算法简洁易于实现,其中的代表算法最大匹配算法表达了长词优先的原那么, 它的实际应用比拟广泛,机械匹配算法实现比拟简单,但其局限也是很明显的效率和准确 性受到词典容量的约束,机械匹配算法采用简单机械的分词策略,不涉及语法和语义知识, 这一点使机械类的算法实现起来比拟简单,所以对于歧义切分无法有效地克服,切分精度 不高,从整体效果上来看,单纯采用机械匹配式进行
20、分词难以满足中文信息处理中对汉语 分词的要求,在机械匹配分词的基础上利用各种语言信息进行歧义校正是削弱机械式切分 局限性的一种重要手段。3. 3. 2逆向最大匹配算法其基本原理和MM法相同,不同的是分词切分方向;它从被处理材料的末端开始匹配, 每次取最末端的i个字作为匹配字段,匹配失败那么去掉最前面的一个字。考虑到逆向最大匹配和正向最大匹配算法类似,这里不再赘述。算法流程图3-5所示: 逆向最大匹配算法的局部注解:/获得所有词中最长的长度int maxLength = LoadDic. MaxLength;/上一次分词最后得到的下标int lastindex = waitDicisionWor
21、d. length();/分词,现在的下标int nowindex = waitDicisionWord. length();分词得到的临时字符串String tempWord = waitDicisionWord. substring(nowindex, lastindex);14图3-4正向最大匹配算法流程图15-待分词上不长度一一一 waitDicisionWord.length 是否大于ma x LengtH-是图3-5逆向最大匹配算法流程图3. 3. 3双向最大匹配算法可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。也同样遵循 最大匹配原那么。具体过程如下所述当系统获
22、得待分词文本,系统自动调用词典,并进行使 用,获得词典最大长度MAXLENGTH,运用双向匹配算法,对待分词文本进行分词。该算法 实现的分词系统,准确度比正向和双向的要高,分词的速度也比拟快。双向匹配法属于最 大匹配算法的一种增强算法。这种算法有它的优点,即可以兼顾汉语句法规律的多样性, 但是需要一种评估机制来评估两种方向的优劣,正向匹配和逆向匹配都固有的缺点一不能 有效处理歧义字段。对于双向同样存在。因此,要提高双向分词的正确率,除了建立对 两个方向进行评估的有效机制外,更为根本的是要对正向匹配和逆向匹配本身进行改进, 以提高其准确性。双向分词简单流程图3-6所示。16ABSTRACTThe
23、 processing of natural language is an essential part of artificial intelligence. It aims to work out how to generate and comprehend natural language with the help of computer. Text word segmentation is a significant phase in the processing of natural language. It is a process which makes continuous
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中英文 分词 系统 设计
限制150内