欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于机器学习的英汉字典模糊查询本科毕业设计论文.docx

    • 资源ID:14208253       资源大小:77.88KB        全文页数:39页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于机器学习的英汉字典模糊查询本科毕业设计论文.docx

    1、基于机器学习的英汉字典模糊查询本科毕业设计论文 A 基础理论 B 应用研究 C 调查报告 D 其他本科生毕业设计(论文)基于机器学习的英汉字典模糊查询基于机器学习的英汉字典模糊查询作者 苏家辉 指导教师 蔡广基副教授 (湛江师范学院信息科学与技术学院,湛江 524048)摘 要:本文研究机器学习的基本原理和实现方法,对一个使用动态规划实现的英汉字典模糊查询系统构建一个机器学习模型。该模型实现了对用户的检索习惯进行分析,提取用户检索数据中的有趣模式,并通过统计频度对模式集进行自动优化,为用户的模糊查询提供智能化的查询结果。关键词:机器学习模型,动态规划,模糊查询 Fuzzy query of a

    2、n English-Chinese dictionary based on machine learningSu JiahuiSchool of information science and technology, Zhanjiang Normal University, Zhanjiang, 524048 ChinaAbstract: Based on the machine learning theory , a model of the fuzzy query of an English-Chinese dictionary system, which is fulfilled by

    3、the dynamic programming algorithm is given. The model analyses the users fuzzy query data and finds out the connections between the data, recording the mining models, applies them to the fuzzy query set during a non-accurate searching, and automatically improves the mining models set according to th

    4、e statistics at frequencies of user, providing intelligent solutions for the fuzzy query.Key words: Machine learning; dynamic programming algorithm; fuzzy query;1引言1.1研究背景及其意义机器学习是现代人工智能研究、发展的重要领域,它通过研究计算机如何模拟或实现人类的学习行为,通过分析、归纳、综合建立人类学习过程的计算模型或认识模型,基于已有数据识别复杂模式,做出智能化的决策,并将其应用于实际问题中,为解决问题提供可行决策和方案支持1

    5、。自1980年在卡内基梅隆大学召开第一届机器学习研讨会以来,机器学习的研究工作发展迅猛,已成为人工智能领域研究的中心课题之一。随着机器学习的蓬勃发展,人们在工作中累积了大量可供测试算法的数据集或者超大数据集,机器学习工作者在此基础上可以进行更精准的研究。目前机器学习已经广泛应用于智能搜索、数据分析等领域,如许多大型的搜索引擎网站的智能化的用户体验都是基于机器学习等研究成果实现的。在大数据时代,机器学习研究将会得到更大的发展。1.2研究内容和目标研究机器学习模型的生成过程,构建机器学习的模型,将其应用到英汉字典模糊查询中。第2节介绍机器学习和模糊查询中的基本思路和实现方法,第3节具体介绍算法实现

    6、的设计和数据的处理,第4节编码实现构想,第5节通过一些测试用例验证、完善算法的基本功能,最后一节对本研究做出总结并提出新展望。2研究与实现中的关键技术2.1机器学习的基本原理 机器学习是从已有或动态的数据中提取有用的新知识2,并将其应用到问题的决策中,其基本过程为: 1. 收集学习材料,即获取的数据; 2. 分析数据,从中提取有趣的模式; 3. 基于数据分析获取有趣的模式,生成知识库,制定决策; 4. 通过学习新知识检验知识库数据的有效性,修改、完善知识库。在步骤1中获取的知识是原始的数据或材料,他们看起来可能是杂乱无章的,因此在步骤2需要对数据进行分析,挖掘复杂的隐藏的模式,使用朴素的贝叶斯

    7、分类、噪声处理等方法对数据进行分离、提取,然后在将来的决策(步骤3)中使用这些模式去提供方案。但是提取出来的模式也可能是无效的,这就需要步骤4不断地学习新的知识,判定模式是否有效,修改完善知识库。2.2有趣模式的提取如何从原始数据中提取有用的模式,挖掘那些隐藏的有趣知识?分类是数据分析的一种重要的形式,通过它可以提取重要的数据类型。分类首先要基于现有数据建立一个分类模型,然后根据模型对数据进行分类。分类模型有决策树分类器、贝叶斯分类器和基于规则的分类器等3。在英汉字典模糊查询系统,使用的是基于规则的分类器-形如IF-THEN的分类器。规则的IF部分是前提条件,THEN部分是结论。假如用户的某些

    8、输入满足特定的条件则可认为是有趣模式。一般情况下,如果用户本次输入的数据在上一次模糊查询的结果集中,则可认为上一次为用户提供的结果集中的对应项是有趣的。如果不满足这一条件则可认为上一次的模糊结果集对用户没有帮助,即为无效数据,丢弃之。英汉字典模糊查询系统的规则分类器实现大体如下: 本次是否为精确查询? YES NO 上一次是否有模糊结果集? 非有趣模式 YES NO 本次输入在上一次模糊结果集中? 非有趣模式 YES NO 有趣模式 非有趣模式 图2.1规则分类器的实现 2.3有趣模式集的优化 有趣模式集中的记录都是用户感兴趣的,但是对于一个非精确的输入可能存在多个用户感兴趣的选择项,如何确定

    9、最优的选择项呢?在统计学上,使用概率表示一件事情在大量测试下发生的可能性4。假设A代表用户的一个模糊输入,X1,Xi代表A输入所对应的用户感兴趣的选择项,设p(A|Xi)为用户输入A后选择Xi的概率,分别计每一个选择项Xi的p(A|Xi),将具有最大值的选择项排在最前面,即为最优的选择项。用户每次输入A后选择Xi都是对AXi模式的一次强化。p(A|Xi)=n(Xi)/n(A),在该式中n(Xi)表示Xi被选择的次数,n(A)表示输入A的总次数,对于计算A的所有选择项的p(A|Xi),分母都是相同的,因此在具体的实现中,只需要为每一个选择项项添加一个频度计数,这样具有最大频度计数的选择项即为最优

    10、的选择项。2.4使用动态规划的最长公共子序列动态规划5采用自底向上的递推求值,把中间的结果存储起来并用于后面的计算,对于改善蛮力搜索的时间复杂度是比较有效的,假设an,bm分别表示长度为n,m的两个字符串,则a0,an-1中的任意组合表示a的子序列,b0bm-1中的任意组合表示b的子序列,如果要求这两个字符串的最长公共子序列,采用简单的线性规划的方法是:列举a的所有所有2的n次方个子序列,察看它与bm的最长公共子序列长度,采用这种方法的时间复杂度是指数级的(n2),如果采用动态规划的方法可以使解决最初公共子序列问题优化到(n log n)。假设Lnm表示a的前n个字符与b的前m个字符之间的最长

    11、公共子序列长度,则Lnm的递推公式如下:LCSflag初始值为0,用于标记当n或m为0时,前面是否有a的子序列与b的子序列相等的情况。对于n=0或m=0,若an=am,则Lnm=LCSflag=1,如果an!=am,若LCSflag=1则,Lnm=1,否则Lnm=0; 对于n和m都不等于0的情况:若an=bm则Lnm= Ln-1m-1+1;若an!=bm则Lnm= Ln-1m和Lnm-1中的最大值。3系统设计3.1总体结构 系统的主要功能包括以下部分 1. 用户输入 接收用户输入的单词或词组,它们可能是精确的输入,也可能是存在拼写错误的单词或词组,如“department”和“deparmen

    12、”等。 2. 精确查询 在字典的索引文件中查找查看是否存在,如果存在,则去词库的译义文件中读取,并将结果输出给用户。 3. 一般模糊查询 如果通过精确查找无法查出该单词/词组,这种可能是由于单词的单复数,动词过去式,现在分词的ing形式类等造成,因此一般模糊查询就是对以上形式的单词进行简单的处理,如去掉词尾的s、d等,然后再对处理之后的单词进行精确查询。 4. 基于最长公共子序列的模糊查询(以下简称lcs查询) 如果基于一般模糊查询仍无法查出,则使用lcs查询,该查询是基于全文的检索,找出与输入单词最为相近的单词,即与输入单词的最长公共子序列是在全文中的最大值的单词,并将其作为选择项输出给用户

    13、。 5. 机器学习的模块开始时候,用户的使用记录为空。在一次lcs查询之后,可以将lcs模糊查询的结果集记录起来,如果用户下一次查询的输入与lcs模糊查询的结果集记录有匹配项,则认为它们是一个有趣模式,并把其加入到有趣模式集中。每一次模糊查询给用户输出的结果集都会与模式结果集中的结果进行匹配,如果找到,则把模式结果集中的匹配数据与模糊结果集,匹配数据优先放到结果集前,去除重复的项,生成最终结果集(决策),最后输出给用户。3.2 业务流程设计系统的业务流程如下: 图3.1业务流程图 是 3.3 数据结构设计 3.3.1 宏定义宏定义含义#define WORDCOUNT 59372词库中单词的个

    14、数#define WORDLEN 24单词的最大长度#define Error(msg) perror(msg); eXit(1);出错处理#define PRENUM 5对于每个用户输入可以提取的有效模式的最大个数3.3.2 结构体 1. 单词索引记录 typedef struct char wordWORDLEN; int offset; int length; Node;其中word表示单词,offset是该单词在词库文件中的索引,length是该单词的释义的长度 2. 用户的偏好记录typedef struct char wordWORDLEN; int count;Preferenc

    15、e;其中word表示用户偏好的单词,count是该单词的的支持度计数,即在用户的输入中该单词被选中的频数。 3. 模式记录集typedef struct char inputWORDLEN;/用户输入的单词 Preference presMAXPRES;/最多记录5个偏好 Record;其中input是用户的非精确单词,pres是该单词对应的用户偏好单词数组,最多5个记录。3.3.3 文件1. 单词的索引文件star.ndx 存放的是一个个Node类型的数据,每个单词/词组都有一个对应的Node,这些数据按照单词的英文次序升序排列,因此在查找单词时可使用二分查找快速检索。2. 词库文件star

    16、.dict存放单词的释义3. 用户输入记录文件search.dat存放用户输入的非精确单词,及该单词对应的lcs模糊查询结果集4. 模式记录文件record.dat存放的是有趣模式记录,这些记录也是按用户的输入非精确单词升序排序,这样方便在进行记录查找时使用二分查找,快速的查询某一记录是否存在,在记录的内部是按照模式的有效次数降序按序的。 4实施应用4.1 开发环境4.1.1 硬件平台 CPU:i5-4200h 2.8GHz; 内存:256MB及以上。4.1.2 软件平台 操作系统:Windows虚拟机VMware 10.0下的ubuntu linux。 开发工具:gcc ,vim4.2 开发

    17、环境的搭建和配置1安装vim 在linux终端输入sudo apt-get install vim-gtk,然后输入root用户密码等待完成vim工具的安装2vim的基本配置 在linux终端输入vi /.vimrc按如下方式配置set nuset ts=4set sw=4set cindentset autoident3环境变量的设置在终端输入 vi /.bashrc添加以下行:export PATH=$PATH:./ 保存之后在命令行输入source .bashrc 4.3 编写代码4.3.1最长公共子序列长度核心代码int LCS(char* a,char* b) int n,m,i,j

    18、; int flag=0; n=strlen(a)-1; m=strlen(b)-1; int L100100=0; for(i=0;i=n;i+) if(flag|(ai=b0) Li0=1; flag=1; else Li0=0; flag=0; for(j=0;j=m;j+) if(flag|(a0=bj) L0j=1; flag=1; else L0j=0; /char a100,b100;for(i=1;i=n;i+) for(j=1;j=Li-1j) Lij=Lij-1; else Lij=Li-1j;return Lnm;4.3.2机器学习模型的c语言实现 1.在learn.h中

    19、的定义#ifndef _LEARN_H#define _LEARN_H#include dict.h#include #include #include #define MAXPRES 5/用户偏好的最大个数#define WORDLEN 24/单词最大长度#define PRENUM 5 /有效模式的个数typedef struct char wordWORDLEN;/用户偏好 int count;/次数Preference;typedef struct char inputWORDLEN;/用户选择项 Preference presMAXPRES;/最多记录5个偏好 Record;/int

    20、 Recordsize=sizeof(Record);/一个记录的大小void RecordData(char* word,Node* nodes);void NewRecord(char* word,char* match_word);void Analyse(char* word);void Solution(char* newData,Node* nodes);void Decision(Node* dst_node,Node* src_node);/用于快速查找查询记录或对记录快排int Recordcmp(const void * dst,const void * src);int

    21、Prescmp(const void * dst,const void * src);#endif 主要函数解释: RecordData:用于记录用户每次输入的非精确单词及其使用lcs模糊查询得到的结果集。 Analyse:分析用户的输入和lcs模糊结果集间的关系,提取有趣模式。 NewRecord:记录有趣模式。 Solution:提取与用户输入的非精确单词相关的模式记录。 Decision:根据历史模式记录,生成最终的决策方案。 2. 在learn.c中主要函数的实现 void RecordData(char* word,Node* nodes)/word 代表用户的输入,nodes是模糊

    22、查询的结果集 FILE* fd=fopen(./search.dat,w+b);/打开并清空上一次的结果 if(!fd) return; int node_len=0; int len=strlen(word); fwrite(&len,sizeof(int),1,fd); fwrite(word,1,len,fd); while(strlen(nodesnode_len.word)0) node_len+; fwrite(&node_len,sizeof(int),1,fd); fwrite(nodes,sizeof(Node),node_len,fd); fclose(fd);int Re

    23、cordcmp(const void * dst,const void * src) Record* d=(Record*)dst; Record* s=(Record*)src; return strcmp(d-input,s-input);/对用户偏好按降序排序int Prescmp(const void * dst,const void * src) Preference* d=(Preference*)dst; Preference* s=(Preference*)src; return (d-count) count);void NewRecord(char* word,char*

    24、match_word) FILE* fd=fopen(./record.dat,a+b); if(!fd) return; int RecordCount=0; Record* matched=NULL; char ch; fseek(fd,0,SEEK_SET); fread(&ch,1,1,fd); if(ch=EOF)/即初始状态,空文件 RecordCount=1; fseek(fd,0,SEEK_SET); fwrite(&RecordCount,sizeof(int),1,fd); Record newRcd=0; strcpy(newRcd.input,word); strcpy

    25、(newRcd.pres0.word,match_word); newRcd.pres0.count=1; fwrite(&newRcd,sizeof(Record),1,fd); /check the first record fclose(fd); return; else fseek(fd,0,SEEK_SET); fread(&RecordCount,sizeof(int),1,fd); Record* records=(Record*)malloc(RecordCount+1)*Recordsize); fread(records,Recordsize,RecordCount,fd)

    26、; fclose(fd); /a+模式从文件头读,从文件尾写 matched=(Record*)bsearch(word,records,RecordCount,Recordsize,Recordcmp); /是已有记录 if(matched!=NULL) int num=0,i;/用于标识是否找到 while(strlen(matched-presnum.word)0) num+;/计算当前用户偏好的数目 for(i=0;ipresi.word) matched-presi.count+; qsort(matched-pres,num,sizeof(Preference),Prescmp);

    27、 break; if(!(inum)/匹配项不在偏好数组中 Preference newPre=0; strcpy(newPre.word,match_word); newPre.count=1; if(ipresi=newPre; else matched-presi-1=newPre; /新记录 else RecordCount+; Record newRcd=0; strcpy(newRcd.input,word); strcpy(newRcd.pres0.word,match_word); newRcd.pres0.count=1; recordsRecordCount-1=newRc

    28、d; /对record数组重新排序 qsort(records,RecordCount,sizeof(Record),Recordcmp); /写回记录文件 FILE* fw=fopen(./record.dat,r+b); fseek(fw,0,SEEK_SET); fwrite(&RecordCount,sizeof(int),1,fw); fwrite(records,sizeof(Record),RecordCount,fw); free(records); fclose(fw); void Analyse(char* match_word) FILE* fd=fopen(./search.dat,rb); if(!fd) return; int len=0; fread(&len,sizeof(int),1,fd); char wordlen+1; fread(word,1,len,fd); wordlen=0; /printf(value in Analyse:%sn,%d,word,len); int node_len=0; fread(&node_len,sizeof(int),1,fd); Node nodesnode_len; fread(nod


    注意事项

    本文(基于机器学习的英汉字典模糊查询本科毕业设计论文.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开