Ruby ruby 有比较成熟的类 classifier4J 这样自动摘要的实现么

iceskysl · 2013年03月27日 · 最后由 iceskysl 回复于 2013年03月28日 · 4905 次阅读

如果能从 3000 字的文章,提炼出 150 字的摘要,就可以为读者节省大量阅读时间。由人完成的摘要叫"人工摘要",由机器完成的就叫"自动摘要"。许多网站都需要它,比如论文网站、新闻网站、搜索引擎等等。

详细原理参考 http://www.ruanyifeng.com/blog/2013/03/automatic_summarization.html

似的算法已经被写成了工具,比如基于 Java 的 Classifier4J 库的 SimpleSummariser 模块、基于 C 语言的 OTS 库、以及基于 classifier4J 的 C# 实现和 python 实现。

有 ruby 的实现没?或者谁有兴趣实现一个?

PS 好像有 BUG 了,每次都是我登陆状态下打开 new 页面,但是 create 的时候被提示没登陆~

最简单的,通过系统命令调别的语言实现的工具。

#1 楼 @Rei 太取巧。。话说你的那个 io 里需要类似功能么?

#2 楼 @iceskysl 暂时不需要,如果有的话会试试。

现在抽摘要用很简单粗暴的方法:抽取 p 标签内容裁剪 140 字。

跑在 jruby 上就可以自如的使用 java 的库了

@iceskysl ruby 内嵌 C 语言调用 OTS 呢?

#4 楼 @larryzhao 还木 jruby  :(

#3 楼 @Rei 汗,现在我也是如此粗暴~

#7 楼 @kenshin54 thx~ 等下测试下中文如何 hack 下,之前看过一个叫 pismo 的有类似功能~

#5 楼 @NonTwitter 理论可行,这不懒得折腾么~

@iceskysl 貌似刚才那个 gem 也是这么干的。。

#8 楼 @iceskysl 我现在的也是这么粗暴实现的,效果很差,大部分都不能展示出文章的主题

#12 楼 @aoner #3 楼 @Rei

全是粗暴一族~ 还有个自动提取关键词的大家怎么干的?不会要用户输入的吧~

以前是让编辑自己填的,现在 key 在搜索引擎没啥用了,就直接去掉了

#13 楼 @iceskysl 我觉得粗暴方式挺好,如果效果不好,那其实是文章作者的开头没有做到简明额要。而且最重要的是标题。

我这的新闻量很大,新闻大部分都是厂商直接发过来的。只有三编辑,根本忙不过来修改。他们的惯用写法是开头和结尾都是关于平台和游戏的介绍。

支持中文吗?

#15 楼 @Rei 这个说法好像也站得住脚~

不知道这样的东西对非拉丁语系的语言效果如何

#19 楼 @ywjno 要先进行中文分词

#20 楼 @Rei 我知道是需要分词,不过就在回帖之前突然想起,日语这种属于黏着语的语言,它的分词模型是怎么建立起来的(中文的分词倒是看了「数学之美」知道个皮毛)

ruby 调用 OTS 可以啊, 直接上 fiddle 就行了, 估计结果差不多.

#21 楼 @ywjno 日语的分词工具最流行的是 mecab, 用二元语法 (bi-gram, 就是只记录相邻两个字之间的条件概率), CRF 模型, 用 viterbi 算法搞的, 中科院分词啥的感觉就是照抄了 mecab, 然后加上一些无关紧要的经验判断做调料, 根本就和什么语没关系...

数学之美里面介绍的是最大熵方法, 也算一种分词方式, 好处是不受词典限制.

viterbi 算法是从隐马模型来的, 有个做得挺精致的 ppt. HMM 的 viterbi 算法扩展一下就能搞 CRF 了.

类似的东西还有个 SGD, 研究反向传播算法的家伙特别喜欢, (例如 dejavu 格式的作者 ), 只是好像没见过用来分词...

#22 楼 @luikore 神一样的人物果然各种料都有啊,感谢提供

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册