Home >Backend Development >PHP Tutorial >伪原创系统的原理及其实现_PHP
上个星期写过一篇文章, 让你的站跟新浪的新闻数据保持同步,有一些网友产生了兴趣,于是我决定再和大家分享一下里面所提及的伪原创系统,介绍其实现的原理,这个系统在我的西西弗斯工作室中也有介绍。
搜索引擎毕竟还是个机器,通过改改标题,替换一些词语,打乱一些章节,插入一些链接等手段,就能达到伪原创的目的,目前网上也有类似的伪原创工具,但还需要人工操作去生成,所以我就想做一个全自动,无人监控的自动伪原创系统,结合自动采集程序,可以实现采集-》入库-》伪原创的流程,并且整个过程实现无人管理,并具有实时性。
言归正传,要做到更改词语而不影响文章语义,比较好的方法就是使用同义词进行替换,所以我想到第一步,是建立同义词库,在网上搜索这种数据库无果后,决定找相关的网站进行采集,发现金山词霸可以很好地满足我的要求,通过采集,建立起了词库,上万条数据。
然后就是进行关键词替换了,那么怎么样替呢,替换哪些呢?我的想法是先对文章进行分词,分成若干个词组,然后取长度大于两个汉字的,在同义词库中进行搜索,如果有,则替换之,我使用python来实现这个流程的,另外为了加速同义词的速度,可以使用key-value进行存储。一些关键代码如下:
def getnewword(text,list): cxn.execute("select id from tool_words where name='%s' limit 1"%text) result=cxn.fetchone() if type(result) is not NoneType: cxn.execute("select name from tool_wordslike where wid=%d order by rand() limit 1"%result[0]) result4=cxn.fetchone() if type(result4) is not NoneType: list[text]=result4[0]
def cuttest(text,flag): list={} wlist = seg.cut(text) wlist.reverse() result="" for tmp in wlist: if len(tmp)>1: if flag==1: getnewword(tmp,list) if flag==1: result="" for k in list.iterkeys(): result+=k+","+list[k]+";" else: result+=tmp+";"; return result |
不过毕竟伪原创系统,也是一个程序,肯定不可能完全保证语义的不恰当,语句的流畅,主要提供给那些做垃圾站的达人们,哈哈,我记得我的网站有一篇转换后相当搞笑,http://www.xxfsw.com/show24047.html, 诺贝尔物理学奖得主俄院士金茨堡逝世,结果把逝世转成了圆寂,我都无语了。。。当然除了近义词的替换外,还有段落的颠倒,插入链接等,这些就比较容易实 现,我就不细语了,大家根据实现情况选择,后来我也想了一些方法,可以实现对搜索引擎呈现使用伪原创后的内容,对实现用户提供伪原创前的内容,这样既达到 了目的,又不影响用户体验,只是不知道这样的危险有多大,会不会被百度人工查出。。。
于是乎,经过这样一番折腾,百度蜘蛛来到了你的站,大惊了一下:哎呀小样,这文章内容没见过啊!收了。大家有什么不明白的可以加我QQ376504340讨论。