如何利用词频统计原理自动提取文章摘要?-网络营销-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝29
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:183回复:0

如何利用词频统计原理自动提取文章摘要?

楼主#
更多 发布于:2016-06-11 14:03

怎么使用词频核算原理主动获取文章摘要?

 我一向觉得要想做好SEO,要做大一个网站,需求的不光是咱们的坚持,也更需求一个准确的SEO技术,一个可行的SEO办法,一个合理的SEO策略,这也即是我一向发起是SEO思想。虽然搜索引擎有着自个很杂乱的算法,可有的时分,一个很简略的数学办法,就可以完结很杂乱的使命。比方前面我在马海祥博客上跟咱们共享的依托核算词频和余弦相似性,就能找出文章的关键字和断定相似文章。虽然它们在作用方面算不上最佳的办法,但肯定是最简便易行的办法。
因为前面的两篇文章遭到各位博友的好评,所以今天我要在马海祥博客上跟咱们共享的依然是这个主题。那即是评论怎么经过词频核算分析,对文章进行获取主动摘要(Automatic
summarization)?





(图1)
假如咱们能从3000字的文章中,提炼出150字的摘要,也就可以为读者节约大量阅览时刻。简略的说,由人完结的摘要叫"人工摘要",由机器完结的也就叫"主动摘要"了。关于这一功用也现已被很多的网站使用了,比方论文网站、新闻网站、搜索引擎等等。
2007年,美国专家的一篇论文《A Survey on Automatic Text Summarization》(Dipanjan Das,
Andre F.T. Martins, 2007)总结了现在的主动摘要算法。其间,很主要的一种即是词频核算。
这种办法最早出自1958年的IBM公司科学家H.P. Luhn的论文《The Automatic Creation of Literature
Abstracts》。
Luhn博士以为,文章的信息都包括在语句中,有些语句包括的信息多,有些语句包括的信息少。“主动摘要”即是要找出那些包括信息最多的语句。
语句的信息量用“关键字”来衡量。假如包括的关键字越多,就阐明这个语句越主要。其时Luhn提出用“簇”(cluster)表示关键字的集合。所谓“簇”即是包括多个关键字的语句片段。





(图2)
上图2即是Luhn初始论文的插图,被框起来的有些即是一个“簇”。只需关键字之间的距离小于“门槛值”,它们就被以为处于同一个簇当中。Luhn主张的门槛值是4或5。也即是说,假如两个关键字之间有5个以上的别的词,就可以把这两个关键字分在两个簇。
下一步,关于每个簇,就需求核算它的主要性分值,如下图3所示:





(图3)
咱们以图2为例,其间的簇一共有7个词,其间4个是关键字。因而,它的主要性分值等于 ( 4 x 4 ) / 7 = 2.3。
然后,找出包括分值最高的簇的语句(比方5句),把它们合在一起,就构成了这篇文章的主动摘要。
后来,Luhn的这种算法被简化,不再区别"簇",只思考语句包括的关键字。下面即是一个比方(采用伪码表示),只思考关键字首要呈现的语句。
Summarizer(originalText, maxSummarySize):
// 核算初始文本的词频,生成一个数组,比方[(10,'the'), (3,'language'), (8,'code')...]
wordFrequences = getWordCounts(originalText)
// 过滤掉停用词,数组成为[(3, 'language'), (8, 'code')...]
contentWordFrequences = filtStopWords(wordFrequences)
// 依照词频进行排序,数组成为['code', 'language'...]
contentWordsSortbyFreq = sortByFreqThenDropFreq(contentWordFrequences)
// 将文章分红语句
sentences = getSentences(originalText)
// 挑选关键字首要呈现的语句
setSummarySentences = {}
foreach word in contentWordsSortbyFreq:
firstMatchingSentence = search(sentences, word)
setSummarySentences.add(firstMatchingSentence)
if setSummarySentences.size() = maxSummarySize:
break
// 将选中的语句依照呈现次序,组成摘要
summary = ""
foreach sentence in sentences:
if sentence in setSummarySentences:
summary = summary + " " + sentence
return summary
其实,如上面相似的算法也早已被广泛使用了,有的也现已被写成了东西,比方根据Java的Classifier4J库的SimpleSummariser模块、根据C言语的OTS库、以及根据classifier4J的C#完成和python完成。






[font=Tahoma  ][font=Tahoma  ]
优质IT资源分享社区为你提供此文。
本站有大量优质SEOSEMSMM MMM 等网络营销相关教程视频,资料等资源,包含SEO SEM SMM
MMM等网络营销基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。

网络营销教程视频
优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客