ImageVerifierCode 换一换
格式:DOC , 页数:31 ,大小:451KB ,
资源ID:2292755      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2292755.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业设计论文-枣品质决策系统--对枣信息进行分词预处理(源代码).doc)为本站会员(QQ153893706)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

毕业设计论文-枣品质决策系统--对枣信息进行分词预处理(源代码).doc

1、河北农业大学本 科 毕 业 设 计题 目: 枣品质决策系统 -对枣信息进行分词预处理 学 院: 信息科学与技术学院 专业班级: 计算机科学与技术 0901 班 学 号: 学生姓名: 指导教师(职称): 二一三 年 五 月 三十一 日摘要枣因其营养价值高,易种植,耐存活且在不同地域拥有不同特色而成为许多地方特别是山区高原致富之道,但由于技术方面的欠缺使得果农无法用专业知识去评估自己手中果实的品质和正确价值导向,由此带来一系列问题,信息消息的滞后导致农户盲目种植,产品积压,销售停滞。因此就要找到相关途径,知己之道,才能让枣农更快发展富裕起来。由此需求设计了枣品质决策系统 ,它是依托当前信息的网络化

2、、快速化,使用网络评估果实品质,给出相关建议等服务为前提的综合信息评估服务系统的设计。通过短信接收果农给出的枣信息的初始描述,进行划句分词,得到相应的属性,并反馈给果农及专家。通过枣品质决策系统进行果实评估给出建议,方便即果农专家进行相关工作,又减少成本。缩短果农与专家的距离。在此项目中选择了 JavaWeb 作为开发语言,用到了面向对象的开发思想和中文分词技术。在接口设计上,实现了数据封装和信息隐藏。关键字:枣品质评估、JavaWeb、中文分词。全套源代码加 153893706AbstractDates because of its high nutritional value, easy

3、to grow, resistance to survive and in different regions have different characteristics and become rich in many places, especially in mountainous plateau, but due to the lack of technology make the fruit cannot use professional knowledge to evaluate the quality of their own hands the fruit and the co

4、rrect value guidance, leading to a series of problems, information messages delay lead to farmers planting blindly, product backlog, sales stalled. So will find relevant way, bosom friend, to get the most rich faster development. Thus demand “jujube quality decision system is designed, it is relying

5、 on the current information network, rapidness, using the network evaluating fruit quality, and provide advice and other services as the prerequisite of comprehensive assessment information service system design. Through the description of the initial date information is presented in short message r

6、eceiving fruit, is zoned word segmentation, to get the corresponding attribute, and give feedback to the farmers and experts. Through the jujube quality decision-making system to evaluate fruit recommendations, namely fruit experts for a related work, and reduce costs. Shorten the distance of grower

7、s and experts.In this project we select JavaWeb as a development language, use the object-oriented development thought and the design concept of the MVC design pattern. In the interface design, realized the data encapsulation and information hiding.Keywords: Jujube quality assessment , JavaWeb, Chin

8、ese Word Segmentation.目录1.引言 31.1背景和意义 .31.1.1 背景 31.1.2 意义 31.2 国内的现状 31.3本文的重点 .52.技术支持 62.1 开发工具和环境 62.1.1开发环境 .62.1.2开发软件 .62.1.3系统环境配置 .62.2 JSP技术 .62.2.1 JSP介绍 .62.2.2 JSP技术开放的技术 .72.2.3 JSP的技术优势 .72.3 Servlet技术 .82.4 Tomcat服务器 .82.4 中文分词技术 93.需求分析与概要设计 113.1需求分析 .113.1.1 设计思想 113.1.2功能需求 .113

9、.2概要设计 .113.2.1 系统总体分析 113.2.2系统模块划分 .113.2.3按模块分总体设计 .123.2.4按各模块间关系 .134.详细设计及实现 144.1设计说明 .144.2数据结构设计 .144.2.1数据库的选择 .144.2.2数据结构 .144.3 中文分词流程 164.3.2基础模块流程 .164.3.2模块流程图 .174.3.3算法流程图 .184.4中文分词实现 .194.4.1系统设计模式 .194.4.2词典设计 .204.4.3 分词设计 224.4.5 后台包及设计 244.4.6异常处理 .244.4.7出现的问题以及解决方法 .245结论 .

10、255.1技术特点 .255.2缺点及不足 .255.4总结 .25致谢 26参考文献 2731.引言本系统是面向专家和农户,基于中小型数据库数据挖掘工具。它基于语言开发,不但操作简单,界面友好,易于操作,实用性强;同时还能够跨平台运行。1.1背景和意义1.1.1 背景枣本身的功能价值赋予的,枣的补血、美容、保健、营养、抗癌、抗疲劳、镇静、护发、降脂、降糖、养生等等效果符合现代人追求的时尚要素国务院总理温家宝 3 月 5 日在十二届全国人大一次会议上作政府工作报告时提出,要促进农业稳定发展和农民持续增收。坚持把解决好“三农”问题作为各项工作的重中之重。党的十六大以来,党中央明确要把解决好“三农

11、”问题放在全党工作重中之重的位置,着力统筹城乡经济社会发展,加快形成城乡发展一体化新格局。党的十八大从中国特色社会主义事业总体布局出发,推出了“促进工业化、信息化、城镇化、农业现代化同步发展” ,明确“城乡发展一体化”是解决“三农”问题的根本途径。随着计算机技术和网络技术的迅速崛起,计算机日渐深刻的在改变着人们的生产生活方式。而互联网已日益成为收集提供信息的最佳渠道,并逐步进入科学种植决策领域。1.1.2 意义枣树的种植区域地理环境和人文环境特征赋予的,枣树的种植不仅仅有它的经济意义,更有重要的环境意义和社会价值,枣树种植的区域主要分布在我过干旱、半干旱、风沙荒漠化和土地盐碱化的区域,枣树的种

12、植可以极大的改善这些区域的生态环境,符合人类与自然和谐相处的命题,同时这些区域主要为中国经济发展相对滞后的区域,是我国改善这些区域人民生活环境、提高他们生活水平,增加收入来源的重要抓手,对于缩小区域经济差异,促进经济和谐发展有着重要意义。1.2 国内的现状随着计算机网络的飞速普及,人们已经进入了信息时代。在这个信息社会里,信4息的重要性与日俱增,无论是个人,企业,乃至政府都需要获取大量有用的信息。谁掌握了信息,谁就能在竞争中处于有利位置。在这种环境下,搜索引擎技术逐渐成为技术人员的开发热点,而其中最为重要的技术就是分词技术。分词技术属于自然语言理解技术的范畴,是语义理解的首要环节,它是能将语句

13、中的词语正确切分开的一种技术。它是文本分类, 信息检索,机器翻译,自动标引,文本的语音输入输出等领域的基础。而由于中文本身的复杂性及其书写习惯,使中文分词技术成为了分词技术中的难点。近年来人们对中文分词技术有了一定的研究提出了多种多样的中文分词算法。目前的中文分词算法主要分为三大类:基于词典的方法,基于统计的方法和基于规则的方法。由于中文分词的三种基本算法,都有其各自的优缺点,所以为了能够达到更好的分词效果,人们开始有目的的把分词的几种基本算法以及其他知识结合起来,这就形成了现在日新月异的混合型分词算法。(1) 吴建胜等提出的基于自动机的分词方法,这种算法的基本思想是:在数据结构方面,把词典组

14、织成自动机形式,在匹配算法上采用最大向前匹配算法,把二者有机的结合到一起,以达到更好的分词效果。(2)赵伟等提出的一种规则与统计相结合的汉语分词方法,这种分词算法的基本思想是:基于一个标注好了的语料库,并且结合了规则和语料库统计两种分词方法。(3)张长利等提出的一种基于后缀数组的无词典分词方法,这种分词算法的基本思想是:通过后缀数组和利用散列表获得汉字的结合模式,通过置信度筛选词,能够快速准确地抽取文档中的中、高频词,适用于对词条频度敏感、对计算速度要求高的中文信息处理。(4)孙晓等提出的基于动态规划的最小代价路径汉语自动分词方法,这种分词算法的基本思想是:基于最长次长匹配的方法建立汉语切分路

15、径有向图,将汉语自动分词转换为在有向图中选择正确的切分路径,其中有向图中的节点代价对应单词频度,而边代价对应所连接的两个单词的接续频度;运用改进后 Dijkstra最小代价路径算法,求出有向图中路径代价最小的切分路径作为切分结果。混合型分词算法多种多样,所结合的知识点也有很多,可以结合数据结构知识来形成新的词典机制;也可以结合标记语料库的方法更好的完善分词算法。显而易见,混合型分词算法在大多数方面要优于基本型分词算法。它将成为今后分词算法研究中的一个热点。 由于中文词与词之间不象西文那样有明显的分隔符,所以构成了中文在自动切分上的极大困难。在现有的中文自动分词方法中,基于词典的分词方法占有主导

16、地位。而中文分词的主要困难不在于词典中词条的匹配,而是在于切分歧义消解和未登录词语的识别。在中文分词过程中,这两大难题一直没有完全突破。(1)歧义处理歧义是指同样的一句话,可能有两种或者更多的切分方法。目前主要分为交集型歧义、组合型歧义和真歧义三种。其中交集型歧义字段数量庞大,处理方法5多样;组合型歧义字段数量较少,处理起来相对较难;而真歧义字段数量更为稀少,且很难处理。分词歧义处理之所以是中文分词的困难之一原因在于歧义分为多种类型,针对不同的歧义类型应采取不同的解决方法。除了需要依靠上、下文语义信息;增加语义、语用知识等外部条件外,还存在难以消解的真歧义,增加了歧义切分的难度。同时未登录词中

17、也存在着歧义切分的问题,这也增加了歧义切分的难度。所以歧义处理是影响分词系统切分精度的重要因素,是自动分词系统设计中的一个最困难也是最核心的问题。(2)未登录词识别新词,专业术语称为未登录词。也就是那些在字典中都没有收录过词。未登录词可以分为专名和非专名两大类。其中专名包括中国人名、外国译名、地名等,而非专名包括新词、简称、方言词语、文言词语、行业用词等。无论是专名还是非专名的未登录词都很难处理,因为其数量庞大,又没有相应的规范,而且随着社会生活的变迁,使未登录词的数量大大增加,这又为未登录词的识别增加了难度。因此,未登录词识别是中文分词的另一大难点。1.3本文的重点叙述如何使用中文分词技术实

18、现对枣信息的划分,并得出相应的属性。62.技术支持2.1 开发工具和环境2.1.1开发环境主机操作系统: WINDOWS2007、windowsXP2.1.2开发软件JDK1.6 级以上版本 集成开发环境:Myeclipse 数据库:SQL SEVVER 2008.Web 应用服务器:Tomcat 6.0 级以上版本2.1.3系统环境配置使用进 java 环境下开发程序,必须在电脑中安装 jdk 和 tomcat,并配置系统环境变量,一边程序正常运行。系统所处环境变量设置如下:Set java_home c: JDK 1.6.0Set Catalina_home D: Apache-tomca

19、t-6.0.18Set CLASSPATH %java_home%lib;%java_home%libtools.jar;C:Program Files (x86)Set sql path Microsoft SQL Serverjdbc driversqljdbc_3.0chssqljdbc.jar.;%java_home%libtool.jar;%java_home%libdt.jar;%catalina_home%libjsp-api.jar;%catalina_home%libservlet-api.jar;72.2 JSP技术2.2.1 JSP介绍JSP 技术使用 Java 编程语言

20、编写类 XML 的 tags 和 scriptlets,来封装产生动态网页的处理逻辑。网页还能通过 tags 和 scriptlets 访问存在于服务端的资源的应用逻辑。JSP 将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于 Web 的应用程序的开发变得迅速和容易。Web 服务器在遇到访问 JSP 网页的请求时,首先执行其中的程序段,然后将执行结果连同 JSP 文件中的 HTML 代码一起返回给客户。插入的 Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP 与 Java Servlet 一样,是在服务器端执行的,通常返回给客户端的就是一

21、个 HTML 文本,因此客户端只要有浏览器就能浏览。2.2.2 JSP技术开放的技术、平台和服务器的独立性JSP 技术只要写入后编译一次,之后,可以运行在任何具有支持 Java 开发环境中运行的。2、Jsp 开放的原代码 JSP 技术是由 SUN 应用 JAVA 团队性过程开发。Apache,Sun 和许多其他公司个人公开成立一个强大的咨询机构以便任何企业公司和个人都能得到免费的代码和信息。3、技术开发方面JSP 和 ASP 从技术方面都能使编程人员实现通添加网页的组件制作交互式的动态内容和应用程序的 WEB 节点实现超链接网页。而 ASP 只支持组件对象模型 COM,但是 JSP 能提供的组

22、件都是基于 JavabeansTM 技术或 JSP 标签库等技术。2.2.3 JSP的技术优势(1)只要编译一次,就能在其他环境中运行。比其他语言优秀更。(2)用 JSP 做的系统的可以再跨平台运行。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比 ASP 等语言的局限性是显而易见的。 (3)强大的嵌入性。很多 jar 文件就可以运行 Servlet/JSP,比如servlet-api.jar、catalina.jar 等,可以处理很多对象信息比如 application对象还有 response 对象,显示了一个巨大的适应性。 (4)开发工具强大。有

23、Java 和 tomcat 等强大的开发工具,因为 Java 开发工具强大可以看出 jsp 据用强大的生命力,强大的后台语言技术开发工具支持。82.3 Servlet技术Servlet 是一种服务器端的 Java 应用程序,具有独立于平台和协议的特性,可以生成动态的 Web 页面。 它担当客户请求(Web 浏览器或其他 HTTP 客户程序)与服务器响应(HTTP 服务器上的数据库或应用程序)的中间层。Servlet 是位于 Web 服务器内部的服务器端的 Java 应用程序,与传统的从命令行启动的 Java 应用程序不同,Servlet 由 Web 服务器进行加载,该 Web 服务器必须包含

24、支持 Servlet 的 Java 虚拟机。2.4 Tomcat服务器Tomcat 服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web 服务器专门处理 HTTP 请求(request),但是应用程序服务器是通过很动态 HTML页MySql 服务器Tomcat 服务JSP Java Bean实体类图 2-1 jsp模式图9多协议来为应用程序提供(serves)商业逻辑(business logic)。Tomcat 服务器可以解析(handles)HTTP 协议。当 Web 服务器接收到一

25、个HTTP 请求(request),会返回一个 HTTP 响应(response),例如送回一个 HTML页面。为了处理一个请求(request),Web 服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如 CGI 脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(

26、译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML 的响应(response)来让浏览器可以浏览。 Web 服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到 Web 服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序(译者注:服务器端脚本)。Web 服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction

27、 processing),数据库连接(database connectivity)和消息(messaging)等功能。2.4 中文分词技术中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解。其处理过程就是分词算法。现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。1、基于字符串匹配的分词方法这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词) 。按照扫描方向的不同,串匹配分词方

28、法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:1)正向最大匹配法(由左到右的方向) ;2)逆向最大匹配法(由右到左的方向) ;3)最少切分(使每一句中切出的词数最小) 。还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹

29、配的错10误率为 1/169,单纯使用逆向最大匹配的错误率为 1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。2、基于理解的分词方法这种分词方法是通过让计算

30、机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。3、基于统计的分词方法从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共

31、现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字 X、Y 的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一” 、 “之一” 、 “有的” 、 “我的” 、 “许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词

32、词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。113.需求分析与概要设计3.1需求分析3.1.1 设计思想用户必须登录进入相关角色才能使用相关权限的功能。词典库中必须有一定的类别及属性词条,作为初始库。分词过程中通过查询词典文件来分词,将分词结果与属性表进行匹配以找到相关的属性,并显示在页面。3.1.2功能需求功能划分:(1) 词典库的初始化。(2) 接收前台中用户输入的信息。(3) 利用中文分词算法对信息处理,得到单独的词条。(4) 对每个词条进

33、行分析,得出对应的属性。(5) 将分析结果反馈给用户,并扩充词典库。3.2概要设计3.2.1 系统总体分析总体分析如图 14:数据库 JavaBean ServletJsp,Javascript,AJAX图 3-1系统总分析图123.2.2系统模块划分模块一,决策树生成模块。 (由张金磊完成)负责用 JDBC 桥接数据库,使用 ID3 算法生成 ID3 型决策树,根据输入属性完成品质评估,样本数据管理,属性评估。前台页面设计。数据库表设计。用户增删改查。模块二,分词模块,显示模块。 (由臧进进完成)负责根据输入的对于果实的通俗描述语句,分出相应属性词语,并将新描述词填入词库。模块三,数据导入模

34、块,基础模块。 (由富兆慧完成)负责完成单条数据录入数据和用 excel 表批量导入数据库。3.2.3按模块分总体设计枣品质决策系统基础模块决策树模块数据导入模块分词模块显示模块获取数据结构数据存储提供相关接口决策树生成品质评估决策树评估单条数据导入批量数据导入语句划分智能加入新词接收用户操作显示评估信息显示相关数据图 3-2 总体设计图133.2.4按各模块间关系接收用户操作显示评估信息显示相关数据语句划分智能填词决策树生成品质评估决策树评估批量数据导入单条数据导入获取数据结构数据存储提供相关接口显示模块分词模块决策树模块数据导入模块基础模块图 3-3各模块间关系144.详细设计及实现4.1

35、设计说明本模块主要是实现通过短信获得果农描述的枣信息,利用中文分词技术,对信息进行划分,最终得到对应的属性,并以短信形式返回给果农,并为系统进行枣品质估计做准备。由于时间有限,接受果农短信这一功能并未实现,而是直接输入枣信息。最终得到的结果页只是展示到网页上。4.2数据结构设计由于数据库内部结构复杂并且关系紧密,因此设计一个合理的数据结构,用来存储数据库内部表与表、字段与表、字段与字段之间的关系和信息是很有必要的。4.2.1数据库的选择在开发这个系统上,通用性是我们考虑的一个重要因素,因为主要用于服务器运行 web 系统,所以选择 sql 数据库。在匹配上比较适合系统。4.2.2数据结构根据系

36、统面对用户,数据库设计以下结构:数据库信息结构:数据库名称(fruit)数据库表信息结构:1user 表create table users (user_id int identity(1,1) not null primary key,user_name varchar(16)not null,password varchar(20)not null,email varchar(40),phone varchar(20),remarks varchar(50),limit int not null check(limit=0 and limit segmentMap = this.child

37、renMap;/STEP1 在节点中查找 keyChar 对应的 DictSegmentif(segmentArray != null)/在数组中查找DictSegment keySegment = new DictSegment(keyChar);int position = Arrays.binarySearch(segmentArray, 0 , this.storeSize , keySegment);if(position = 0)ds = segmentArrayposition;else if(segmentMap != null)/在 map 中查找ds = (DictSegm

38、ent)segmentMap.get(keyChar);/STEP2 找到 DictSegment,判断词的匹配状态,是否继续递归,还是返回结果if(ds != null)if(length 1)/词未匹配完,继续往下搜索return ds.match(charArray, begin + 1 , length - 1 , searchHit);else if (length = 1)/搜索最后一个 charif(ds.nodeState = 1)/添加 HIT 状态为完全匹配searchHit.setMatch();if(ds.hasNextNode()/添加 HIT 状态为前缀匹配sear

39、chHit.setPrefix();/记录当前位置的 DictSegmentsearchHit.setMatchedDictSegment(ds);22return searchHit;/STEP3 没有找到 DictSegment, 将 HIT 设置为不匹配return searchHit;4. hit 一次词典匹配的命中Hit 不匹配 private static final int UNMATCH = 0x00000000;Hit 完全匹配 private static final int MATCH = 0x00000001;Hit 前缀匹配 private static final

40、int PREFIX = 0x00000010;4.4.3 分词设计1.初始化初始化词典单例 Dictionary.initial(this.cfg);初始化分词上下文 this.context = new AnalyzeContext(this.cfg);加载子分词器 this.segmenters = this.loadSegmenters();2. 分词,获取下一个词元* return Lexeme 词元对象public synchronized Lexeme next()throws IOExceptionLexeme l = null;while(l = context.getNex

41、tLexeme() = null )从 reader 中读取数据,填充 buffer,如果 reader 是分次读入 buffer 的,那么 buffer 要 进行移位处理,移位处理上次读入的但未处理的数据int available = context.fillBuffer(this.input);if(available = 0)context.reset(); return null; /reader 已经读完elsecontext.initCursor();/初始化指针do/遍历子分词器for(ISegmenter segmenter : segmenters)segmenter.ana

42、lyze(context);/字符缓冲区接近读完,需要读入新的字符if(context.needRefillBuffer()break;23while(context.moveCursor();/向前移动指针/重置子分词器,为下轮循环进行初始化for(ISegmenter segmenter : segmenters)segmenter.reset();/将分词结果输出到结果集,并处理未切分的单个 CJK 字符context.outputToResult();context.markBufferOffset(); /记录本次分词的缓冲区位移return l; 3. 中文子分词public vo

43、id analyze(AnalyzeContext context) if(CharacterUtil.CHAR_USELESS != context.getCurrentCharType()if(!this.tmpHits.isEmpty()/优先处理 tmpHits 中的 hit/处理词段队列HittmpArray=this.tmpHits.toArray(newHitthis.tmpHits.size();for(Hit hit : tmpArray)hit=Dictionary.getSingleton().matchWithHit(context.getSegmentBuff(),

44、context.getCursor() , hit);if(hit.isMatch()/输出当前的词Lexeme newLexeme=new Lexeme(context.getBufferOffset() , hit.getBegin() , context.getCursor() - hit.getBegin() + 1 , Lexeme.TYPE_CNWORD);context.addLexeme(newLexeme);if(!hit.isPrefix()/不是词前缀,hit 不需要继续匹配,移除this.tmpHits.remove(hit);else if(hit.isUnmatch

45、()this.tmpHits.remove(hit); /hit 不是词,移除/再对当前指针位置的字符进行单字匹配Hit singleCharHit= Dictionary.getSingleton().matchInMainDict(context.getSegmentBuff(), context.getCursor(), 1);if(singleCharHit.isMatch()/首字成词/输出当前的词Lexeme newLexeme = new Lexeme(context.getBufferOffset() , 24context.getCursor() , 1 , Lexeme.T

46、YPE_CNWORD);context.addLexeme(newLexeme);if(singleCharHit.isPrefix()/前缀匹配则放入 hit 列表this.tmpHits.add(singleCharHit); 4.4.5 后台包及设计org.wltea.analyzer.cgf包Configuration 类,中文分词的配置管理类,获取词典的路径。org.wltea.analyzer.core包IKSegmenter 类:具体实现中文分词。org.wltea.analyzer.dic包Dictionary 类:词典管理类,初始化词典,加载词典。org.wltea.anal

47、yzer.sameple包IKAnalzyerDemo 类:负责中文分词与前台联系。Dao1包(数据库链接基础包):linkData 类:数据库链接基础类,所有链接数据库的都调用此类链接数据库。Createtable 类:实现数据表的创建。Inser 类:向数据表中插入数据。Match 类:将获得的分词词组与属性列表进行匹配。4.4.6异常处理当用户非法操作时(不输入用户名密码直接想进入相关页面或者进入不属于自己所有权限的页面时) ,页面会直接调到登录页面。果实评估出现异常或者对于用户操作出现时,异常状态往上传到 servlet,跳转的显示提示异常页面。4.4.7出现的问题以及解决方法问题 1

48、:在前台传中文值到后台时,servlet 后台正常接收,但接收后测试时出现乱码。解决方法:这是编码不同的结果,在接收之前通过request.setCharacterEncoding(“gb2312“) ;25这条语句设置编码。设置后正常接收。问题 2:在界面显示时,偶尔会出现中文乱码现象。解决方法:这往往是界面间编码差异造成,通过 servlet 设置过滤器,对所有页面,进行统一编码设置,异常消除。问题 3:Sql 数据库存储由前台传入数据时,后面多加很多空格,除非直接操作数据库否则无法消除。解决方法这是数据库设计问题,不考虑存储解决,在数据取出时,用相关语句除去前后空格。265结论5.1技术

49、特点本系统界面统一友好,实用性强,安全;代码清晰,易懂;安装方便,可移植性和扩展性好。5.2缺点及不足由于系统规模较大,时间不足,某些功能模块没有完整实现,有些异常错误没有及时发现。5.4总结本系统基本达到预期的各项技术指标,实现了预期的各种功能。从整体上来讲,本系统还比较令人满意。本系统的关键任务主要体现在以下两方面:(1) 根据用户提供的枣信息,进行语句划分。找出其中的类型及对应的属性。在这里主要用到了中文分词系统及数据库的查询。 (2) 负责用JDBC 桥接数据库,使用 ID3 算法生成 ID3 型决策树,根据输入属性完成品质评估,样本数据管理,属性评估。当然,由于时间有限,本系统还存在一些不尽人意之处和有待深入研究的地方。本系统给出了枣品质决策的基本框架,但是系统还不够完善,特别是中文分词器只能完成词库中含有词条的划分,这使得一些类别和属性不能区分出来;在进行匹配的过程中,只能简单匹配,用户可以手动增加一些属性。27致谢毕业设计在克服重重困难之后终于得以完成

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报