自然语言处理分词文档

自然语言处理分词文档

ID:29517811

大小:46.50 KB

页数:4页

时间:2018-12-20

自然语言处理分词文档_第1页
自然语言处理分词文档_第2页
自然语言处理分词文档_第3页
自然语言处理分词文档_第4页
资源描述:

《自然语言处理分词文档》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、自然语言处理——分词文档班级2010211306学号10211281姓名张力元完成时间:11月16日一、需求说明给定一段文字,同时给定一个词典,利用词典将给定的文字划分成一个个词。二、总体方案设计说明1、开发环境:visualC++6.0或visualStudio20102、总体结构说明与功能模块划分(见下页模块图)总体来说分为几个功能:源文件去空格,进行分词,检查错误,对分词的结果进行评价分词去空格.cpp源文件去空格分词.cpp最大匹配:前向分词差错控制:分析是否有遗漏或多余词的情况分词前后词数检查.cpp编程计算分词

2、结果的准确率和召回率分词结果比对.cpp3、关键数据结构说明分词.cpp中:mapCoreMap//记录一条词典记录,用于查找当前字串是否和词典中的某条记录匹配//如果匹配,则在此处进行划分分词结果比对.cpp中:mapMeDiv;mapTeacherDiv;//用于存放分词的开头坐标和结尾坐标(相对于给出的段落开头)//MeDiv是我分词后每个词的开始坐标和结束坐标//TeacherDiv是给出的分词后每个词的开始坐标和结束坐标4、关键变量的数据字典分词.cp

3、p中:BuildCore建立字典map对象的输入流DividIn待分词段落的输入流Buf字典map建立好后从DividIn中读取固定长度的字符串需要存放的缓冲区,长度设成5BufCh最后要写文件而需要将缓冲区中字符串转成一个个字符pos用于计算相对于输入文件(分词前)头的位置,需要代入seekg函数进行读入缓冲区的回退分词结果比对.cpp中:me,teacher本程序分词的分好后的文件读入流和老师给的分词后文件读入流MeNo计算本程序中分词后词的数量TeacherNo计算老师给的分词后文件中词的数量BNo计算每个分词的开始

4、坐标(相对段落头),即一个词在段落中的相对位置ENo计算每个分词的结束坐标(相对段落头)所有涉及到的文件:(注意:都是unicode编码格式)去空格涉及到的:in.txt待去除空格的文件out.txt运行程序后去除了空格的文件分词和结果比对涉及到的:1998-01-qiefen-file.txt老师给出的分词后文件,用空格划分BeforeDivid.txt本程序对1998-01-qiefen-file.txt去除了空格后的待分词文件MyDividResult.txt本程序的分词后文件,用空格划分CoreDict.txt老师

5、给的用于最大匹配的词典三、关键模块算法设计说明1、分词:本程序采用最大匹配分词算法,基于正向最大匹配法(MM),缓冲区设成5,举例说明:每次从段落中取5个字放到缓冲区,先看前五个字能否组词,能的话就进行划分,不能即看前四个字能否组词,以此类推,直到前一个字。当只剩前一个字时划分成单个词。分词具体步骤如下:(1)根据CoreDict.txt建立词典map对象CoreMap用回车换行来判断一条记录(2)从段落中取5个字到缓冲取进行正向最大匹配法(MM)分析Posi举例说明:pos原先是缓冲区之前位置表示,5个格子表示缓冲区,现

6、在假如在i位置(前3个字)形成匹配,则分出前3个pos要加6,继续从pos位置去5个字进行相同分析。(3)将结果写到文件MyDividResult.txt由于本程序中所有txt文件均采用unicode格式,所以在写回输出文件时还应在前边加上2Byte的标识内容2、分词效果评估我们通过计算分词后的准确率和召回率进行分词效果评估:用字母加以说明:A:本程序中分得出的正确词,即和老师给的样例中分词位置、分词长度一样的词B:本程序中没分出来,而老师给的样例中分出来的词C:本程序中分出的词,老师的样例中没有准确率:A/(A+B)召回

7、率:A/(A+C)分词效果评估的具体步骤如下:(1)将本程序中分出的词建立一个map对象,主键表示每个词对应段落开头的起始相对位置,举例说明:段落是“迈向充满希望的新世纪”,那么“世纪”的主键就是9,即词头位置在段落中是9。外键表示每个词对应段落开头的终止相对位置,上例中:“世纪”的外键是10。(2)类似地,将老师给的分词样例中分出的词建立一个map对象,主键、外键表示相同涵义。(3)统计本程序分出的词的数量(A+C)和分词样例中分出的词数量(A+B)(4)统计本程序中正确分出的词(和样

8、例相同长度,相同位置)的数量A(5)计算出准确里和召回率:准确率:A/(A+B)召回率:A/(A+C)四、程序执行结果与测试情况说明输入输出可以从txt文件中看到,程序执行的步骤如下:(1)去空格程序源文件:分词去空格.cpp可执行文件:分词去空格.exe输入:in.txt(拷贝1998-01-qief

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。