用Python做文本摘要
本文是系列的第三篇。 文本摘要 以下新闻来自雷锋网 Yahoo收购新闻摘要应用Summly 宗仁 2013-03-26 07:53 没有评论 标签:Summly 新闻摘要 Yahoo 昨日宣布收购新闻摘要移动公司Summly,价格可能为3000万美金,App本身允许你快速浏览和分享新闻,创始人Nick D’Aloisio17岁,曾获得Horizons Ventures, betaworks, Shakil Khan, Matt Mullenweg, Troy Carter的投资,而且跟新闻集团合作来采集内容。 Summly采用了自然语言处理算法,可将新闻内容提炼为不足400字的短句。用户可以快速浏览新闻话题,遇到感兴趣的内容再点击进入原始链接阅读全文。Summly在苹果AppStore应用商店中的下载量已超过50万次。 自从玛丽莎·梅耶(MarissaMayer)上任CEO后,雅虎几乎在任何事情上都恢复了步调。就在五天前,该公司收购了社交推荐公司Jybe,并获得了随同这次收购一起回到公司的前雅虎职员。 以下是雅虎在其官方博客上发布的声明: 今天我们很高兴地告诉大家,我们将收购Summly,一家本着简化我们获得信息的方式,使之更快、更容易、更简单的精神创立的移动产品公司。 尼克·德洛伊西奥在15岁时就在伦敦的家中开发了Summly应用。其始于一种见解——我们生活在一个信息世界里,需要新的方式简化我们寻找对我们很重要的报道,只需看一眼。移动设备正在改变我们的日常生活和工作,用户不但改变了他们消费的信息,也改变了信息的数量。 这篇新闻有两个值得注意的地方,第一,文本摘要很有价值;第二,技术不会很难,毕竟15岁的孩子都可以开发。 下面我们就来看看做文本摘要的大致思路。 大致思路 文本摘要 顾名思义,就是找出一部分重要的句子。 这句话有三个逻辑重点。 1. 找出一部分重要的句子 也就是说要把文章切成句子。比较直观的想法是根据标点符号以及空格、换行符等。断句这个问题,英文反而比中文要复杂,例如句号.和单引号'都是有多个意思的,都不一定能标明一句话的结尾。 2. 找出一部分重要的句子 如何衡量一篇文章里的每句话是否重要?怎样量化这个重要性?有以下思考的角度。 根据位置(标题、导语、段首段尾) 一般来说,文章尤其是新闻的标题、节标题、导语和段首段尾比较重要。对于html解析而言,就是title、h1、h2、a、strong等标记中的文字更重要。 根据内容 内容方面,需要把粒度细分到词的重要程度,如果一句话中的词很重要,那么这句话很重要。 那么就有下面的两个问题: 怎么获得一句话中的词?也就是分词问题。 词的重要程度如何衡量? 下面分别来介绍这两个问题。 2.1 分词 就是在词与词之间插入标记,一般是空格。英文文本不需要这一步,本来就有空格。但中文没有,而且一词多义现象很多, 语法结构还会随着词的位置而变化,因此中文分词是一个比较独特的问题。 但是中文分词和语音识别很像,因为语音信号在词与词之间也是没有空格的,因此可共用技术(HMM,CRF)。 Python比较好的中文分词工具有: 结巴分词 genius分词 2.2 词的重要程度如何衡量? 词频(TF) 需要去掉词频太高的词(停用词) 固定搭配的频率 N-Gram 词性 名词、动词一般比副词、形容词重要 ...