上个星期写过一篇文章, 让你的站跟新浪的新闻数据保持同步,有一些网友产生了兴趣,于是我决定再和大家分享一下里面所提及的伪原创系统,介绍其实现的原理,这个系统在我的西西弗斯工作室中也有介绍。
搜索引擎毕竟还是个机器,通过改改标题,替换一些词语,打乱一些章节,插入一些链接等手段,就能达到伪原创的目的,目前网上也有类似的伪原创工具,但还需要人工操作去生成,所以我就想做一个全自动,无人监控的自动伪原创系统,结合自动采集程序,可以实现采集->入库->伪原创的流程,并且整个过程实现无人管理,并具有实时性。
言归正传,要做到更改词语而不影响文章语义,比较好的方法就是使用同义词进行替换,所以我想到第一步,是建立同义词库,在网上搜索这种数据库无果后,决定找相关的网站进行采集,发现金山词霸可以很好地满足我的要求,通过采集,建立起了词库,上万条数据。
然后就是进行关键词替换了,那么怎么样替呢,替换哪些呢?我的想法是先对文章进行分词,分成若干个词组,然后取长度大于两个汉字的,在同义词库中进行搜索,如果有,则替换之,我使用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,诺贝尔物理学奖得主俄院士金茨堡逝世,结果把逝世转成了圆寂,我都无语了。当然除了近义词的替换外,还有段落的颠倒,插入链接等,这些就比较容易实现,我就不细语了,大家根据实现情况选择,后来我也想了一些方法,可以实现对搜索引擎呈现使用伪原创后的内容,对实现用户提供伪原创前的内容,这样既达到了目的,又不影响用户体验,只是不知道这样的危险有多大,会不会被百度人工查出。
于是乎,经过这样一番折腾,百度蜘蛛来到了你的站,大惊了一下:哎呀小样,这文章内容没见过啊!收了。