PHP使用SAE(Sina App Engine)的中文分词服务提取关键字
最近有个业务需求,新闻发布的时候自动提取正文中的关键字,我用SAE(Sina App Engine)
的中文分词服务实现了它。
本来是想用DEDECMS自动提取关键字那套,但是它太弱了,提取出来的关键字根本不能用。比如它
能把“个”作为一个关键字。
网上搜了下PHP提取关键字的方法,有几个人给出了解决方案,甚至还有配套的代码和词库,但是由于
代码不够良好,所以运行不起来。没办法,只好另寻方法。忽然想来SAE(Sina App Engine)提供的
有中文分词服务,何不用它来提取关键字呢?
SAE的分词服务提取出来的只是一个个的词、它的词性及出现位置。就关键词来说,我还需要在它的基础
上统计每个词出现的次数。另外,有些词是不适合作关键字的,如标点符号、副词、语气词等等,所以需要
先过滤掉这些词再统计频次。
SAE的分词服务有一点限制:文本不能超过10K。大于10K的文本就只能分段截取逐次提交了,最后再汇总
结果。
整体思路就是这样,并且本周三已完成了相关代码,运行在SAE上的相当于一个接口,它接收文本,处理后返
回JSON数组,这个数组是很原始的,只包含文本中出现的词,它的词性及出现的位置。本地应用调用这个接口,再
处理返回的数组,词的频次统计是由本地应用来完成的。因为我想着服务端的接口还能用于其它地方,所以只返回原
始数据比较好。
SAE的中文分词服务不仅PHP能调用,JAVA,Python也同样可以。
2013/09/20
“PHP使用SAE(Sina App Engine)的中文分词服务提取关键字”5条评论
-
博主,你好!我想请教一下,sae的分词服务如何去掉停用词呢?我用sae的分词做测试发现标点符号什么的都分出来了。
-
admin:2014/03/14 上午 7:56
我是用PHP开发的,用一个数组存放那些不必要的词的代号,如语气助词、标点符号等,分出来的每个词都有词性的属性,根据这个属性跟数组里的代码对照,如果在数组中,就把它们过滤掉。SAE的文件档里有词性和代号对照表。
|