基于关键词提取的TFIDF和TextRank方法的对比研究.docx
《基于关键词提取的TFIDF和TextRank方法的对比研究.docx》由会员分享,可在线阅读,更多相关《基于关键词提取的TFIDF和TextRank方法的对比研究.docx(27页珍藏版)》请在咨信网上搜索。
1、基于关键词提取的TFIDF和TextRank方法的对比研究题目:开发一个程序,在该程序中,允许输入一段文本(以界面或者文件输入方式均可),该程序自动抽取出包含的关键词,并按照关键词的权重由高到低排序后输出。完成日期:2016.06.05一、 需求分析1. 以文本的形式读入数据,将每个单词抽象成一棵树,将单词与单词之间的关系抽象为图。2. TFIDF算法部分以EXCEL形式将所有数据输出,TextRank算法部分直接以窗口形式输出排名前十位的数据。3. 本程序的目的是在提取文本关键词的同时,比较TFDIF和TextRank算法的准确性和性能方面的差异。4. 测试数据(附后)。二、 概要设计1.
2、抽象数据类型映射树定义如下:ADT Map 数据对象ID:ID是类型为char的元素集合,即为一个单词中的单个字 符,称为字符集。数据对象val:val是类型为double或int的元素集合,为每个单词对应 的 TF值或IDF值,称为频率集。数据对象is_end:is_end是类型为bool的元素集合,判断当前子结点是 否为单词末尾数据关系 R :R = IDVal IDVal = word num| word ID,num val,表示从word到num之间的一一映射运算符重载:下标运算符 : 运算对象为string值,返回对应string值的子 树所代表的val值。算术运算符 =:运算对象
3、为double或int值,等式左值的val值替换为等式右值,并返回当前子树。算术运算符 +-*/ : 运算对象为double或int值,对其val值进行运算,并返回当前子树。相等运算符 =和!= : 运算对象为val值,判断其val值是否相等,返回对应的bool值。基本操作:InitMap (&T);操作结果:构造空树。DestroyMap (&T);初始条件:树T存在。操作结果:构造空树。CreateMap (&T, word);初始条件:树T存在且word为string值。操作结果:按照word的字符顺序自上而下遍历,如果有字符结点未创造,则构造新子结点,直到字符结束。MapEmpty (
4、T);初始条件:树T存在。操作结果:若T为空树,则返回True,否则False。MapDepth (&T);初始条件:树T存在。操作结果:返回树的深度。Root (&T);初始条件:树T存在。操作结果:返回T的根。Value (&T, value);初始条件:树T存在,value为T中某个结点的值。操作结果:返回value的值。Assign (&T, word, value);初始条件:树T存在,且word结点也存在。操作结果:结点word的value值替换为当前value。Parent (&T, word);初始条件:树T存在,且word结点也存在。操作结果:返回word结点的双亲。Inse
5、rtWord (&T, word);初始条件:树T存在。操作结果:往树加入word值,并将其value值默认初始化。DeleteChild (&T, word);初始条件:树T存在,且word结点也存在。操作结果:将word对应子节点的is_end值改为false。TraverseMap (&T, visit() );初始条件:树T存在,visit是对结点操作的应用函数。操作结果:按某种次序对T的每个结点调用visit一次且至多一次。一旦visit失败,则操作失败。ADT Map2. 抽象数据类型图定义如下ADTGraph 数据对象n:n是具有相同特征的数据元素集合,称为顶点集。数据关系:DR
6、 = | v, w n且 表示从v指向w的 弧 基本操作:CreateGraph (&G,V, VR);初始条件:V是图的顶点集,VR是图中弧的集合操作结果:按V和VR的定义构造图GDestroyGraph (&G);初始条件:图G存在操作结果:销毁图GLocateVex (G,u);初始条件:图G已存在,u和G中顶点有相同特征操作结果:若G中存在顶点u,则返回该顶点在图中位置, 否则返回其它信息GetVex (G,v);初始条件:图G存在,v是G中某个顶点操作结果:返回v的值PutVex (&G,v,value);初始条件:图G存在,v是G中某个顶点操作结果:对v赋值valueFirstAd
7、jVex (G,v);初始条件:图G存在,v是G中某个顶点操作结果:返回v的第一个邻接顶点。若顶点在G中没有邻 接顶点,则返回“空”NextAdjVex (G,v,w);初始条件:图G存在,v是G中某个顶点,w是v的邻接顶 点操作结果:返回v的(相对于w的)下一个邻接顶点。若w是 v的最后一个邻接点,则返回空”InsertVex (&G,v);初始条件:图G存在,v和G中顶点有相同特征操作结果:在图中增添新顶点vDeleteVex (&G,v);初始条件:图G存在,v是G中某个顶点操作结果:删除G中顶点v及其相关的弧InsertArc (&G,v,w)初始条件:图G存在,v和w是G中两个顶点操
8、作结果:在图G中增添弧,若G是无向的,则还应 增添对称弧DeleteArc (&G,v,w)初始条件:图G存在,v和w是G中两个顶点操作结果:删除G中的弧,若G是无向的,则还应删 除对称弧DFSTraverse (G,v,visit()初始条件:图G存在,v是G中某个顶点,visit是对顶点 的应用函数操作结果:从顶点v起深度优先遍历图G,并对每个顶点调用函数visit()一次且至多一次。一旦visit()失败,则操作失败BFSTraverse (G,v,visit()初始条件:图G存在,v是G中某个顶点,visit是对顶点 的应用函数操作结果:从顶点v起广度优先遍历图G,并对每个顶点调 用函
9、数visit()一次且至多一次。一旦 visit()失败,则操作失败 ADTGraph3. 本程序包含两大模块,TF-IDF算法部分和TextRank算法部分1)主函数部分void main () TF-IDF算法;TextRank算法;2)TF-IDF算法i. 构建语料库(语料库的原料来源于超过八亿词的文本)ii. 导入语料库iii. 读入文本iv. 分析所读入的单词v. 合并语料库vi. 输出到EXCEL3)TextRank算法i. 读入数据ii. 分析所读入的单词iii. 构造矩阵iv. 套用公式v. 结果排序vi. 输出前十名各模块之间的调用关系如下:主程序模块读入数据构建语料库语料库
10、的原料来源于超过八亿词的文本)分析所读入的单词导入语料库读入文本构造矩阵合并语料库套用公式输出到EXCEL结果排序输出前十名三、 详细设计1. 设计思路 本程序以实现关键词抽取为目的,选取了TF-IDF和TextRank关键词提取算法,进行两者的效率和准确性的比较研究。2. TFIDF算法2.1 TF-IDF算法简介 TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一个词组或短语的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。在一组文档中,刻画某一文档特征的特征项可以根据其在这组文档中出现的频率赋予相应的权重
11、,只有在少数文档中出现的较特殊的词,权重要比在多篇文档中出现的词的权重要高。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。2.2 TF-IDF算法原理TF-IDF实际上是TF和IDF的组合。TF即词频(Term Frequency),IDF即逆向文档频率(Inverse Document Frequency)。TF(词频)就是某个词在文章中出现的次数,此文章为需要分析的文本。为了统一标准,有如下两种计算方法【2】:TF(词频) = 某个词在文章中出现的次数该篇文章的总次数和TF词频= 某个词在文章中出现的次数该篇文章出现最多的单词的次数IDF(逆向文档
12、频率)为该词的常见程度,需要构建一个语料库来模拟语言的使用环境。IDF逆向文档频率= log语料库的文档总数包含该词的文档总数+1如果一个词越常见,那么其分母就越大,IDF值就越小。TF-IDF=TF词频IDF(逆文档频率)之后,将每个单词的TF-IDF值按从大到小降序排列,排在最前面的几个词即为关键词。2.3 TF-IDF算法实现2.3.1 构建一一映射Map类C+STL函数库中已经包含了map的库函数,但为了使用起来更加方便、更便于个性化定制操作,于是使用自己定制的Map类模板。这个类函数主要是构建单词的string值与其TF、IDF值的一一对应关系,方便直接用string值下标访问其in
13、t值或double值,简化写代码的工作量。同时模板类中主要采取树形结构,建立一棵查找树,利用vector的空间动态分配的灵活性,从string的第一个字母开始一个一个往下找。每个Map类代表一个字母,从根部开始向下遍历,利用bool值判断该处是否为一个单词结尾。代码如下:/*一一映射函数Map类*Type为存储的TF、IDF、TF-IDF值,如int、double等*旨在通过string类型下标访问其Type值*/templateclass Mappublic:Type val = NULL;/Type值,类型为int、double/*下标运算符重载*中值为string类型*如果该string
14、值已存在,则返回对应val*如果不存在则新建一个,返回初始值*/Type& operator (string item)Map &temp = find(item);/引用类函数find()查找到的值if (temp != NULL)/找到,则返回对应valreturn temp.val;else/未找到,则用create()函数创建一个并返回新的值create(item);return find(item).val;/*算术运算符=重载*左值为找到的Map.val引用*右值为对应的val值*返回当前Map的引用*/Map& operator =(Type item)val = item;re
15、turn this;/*类函数列表*find为查找函数,找到则返回其值,没找到则新建一个返回初值*create为创建新值得函数*/Map find(string word);void create(string word);private:bool is_end = false;/是否为单词结尾char ID;/代表当前类的字母vector childs;/子节点集合;/*find查找函数*如果该string值已存在,则返回对应值*如果不存在则新建一个,返回初始值*/templateMap Map:find(string word)for (auto &r : childs)/遍历类函数的所有
16、子节点直到找到对应项if (r-ID = word0 & r-is_end)/如果相等且为单词末尾if (word.size() = 1)/大小为一说明已找到return this;/返回当前类return r-find(word.substr(1, word.size() - 1);/递归调用find函数,一次减少一个字符return NULL;/返回空类/*create创建函数*递归创建字母树*/templatevoid Map:create(string word)if (word.size() = 0)/如果大小为0,说明所有字母都已创建完毕is_end = true;/标记单词结尾为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 关键词 提取 TFIDF TextRank 方法 对比 研究
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。