如何找出给定URL的摘要文本?
概括文本是什么意思?
默克4.11亿美元先灵葆雅竞标寻求科学
链接描述
默克公司(Merck&Co.)以411亿美元收购先灵葆雅公司(Schering-Plough Corp.),为血栓,感染和精神分裂症添加实验药物,并允许这些公司加快生物技术药物的研究.
对于上面的URL,以下三行是摘要文本.
我们通常通过获取该页面获得的URL的简短2到3行描述,检查内容,然后从该html标记中找出简短描述.
有没有什么好的算法可以做到这一点?(或)
python/django中是否有任何好的库可以做到这一点?
我有同样的需求和狐猴,虽然它具有摘要功能,但我发现它有些无法使用.在周末我使用nltk在python中编写一个汇总模块:https://github.com/thavelick/summarize
我在这里从Java库Classifier4J中获取算法:http://classifier4j.sourceforge.net/但是尽可能使用nltk和python.
这是基本用法:
>>> import summarize
SimpleSummarizer(当前唯一的摘要)通过使用最常用单词的句子来进行摘要:
>>> ss = summarize.SimpleSummarizer() >>> input = "NLTK is a python library for working human-written text. Summarize is a package that uses NLTK to create summaries." >>> ss.summarize(input, 1) 'NLTK is a python library for working human-written text.'
您可以根据需要在摘要中指定任意数量的sentenecs.
>>> input = "NLTK is a python library for working human-written text. Summarize is a package that uses NLTK to create summaries. A Summariser is really cool. I don't think there are any other python summarisers." >>> ss.summarize(input, 2) "NLTK is a python library for working human-written text. I don't think there are any other python summarisers."
与Classifier4J中的原始算法不同,此摘要生成器与句点以外的标点符号一起正常工作:
>>> input = "NLTK is a python library for working human-written text! Summarize is a package that uses NLTK to create summaries." >>> ss.summarize(input, 1) 'NLTK is a python library for working human-written text!'
UPDATE
我现在(终于!)在Apache 2.0许可证下发布了这个许可证,与nltk相同的许可证,并将模块放在github上(见上文).欢迎任何贡献或建议.