欢迎来到天天文库
浏览记录
ID:59130443
大小:340.50 KB
页数:7页
时间:2020-09-12
《贝叶斯分类代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Python运行下——贝叶斯分类代码最近在网站上谩骂的人比较多,想写一个语义分类器,让电脑自动屏蔽那些骂人的评论,怎么办呢?这就用到了一个机器学习的算法——贝叶斯文本分类器。这个算法很有用处,可以让电脑识别人类语言,如果加上一点心理学的知识,可以让电脑理解人类的文章并让电脑判断作者的个性特征,这就复杂了,现在我们先做一个简单的示范。1.首先是需要一个样本集,用于训练文本分类器:这里面用到了一个分词算法【cs.perse】,其实是一个机械分词算法,cs.py文件的代码粘贴在最下面。2.下面的函数利用样本创建一个词表
2、,也就是所有词的集合1.下面的函数将一个词表转换成词向量2.训练样本得到脏话/非脏话的词分布概率3.利用贝叶斯条件概率,计算输入的一句话到底是不是骂人的话,如果是骂人的话,就返回1,否则返回01.最后测试一下【'fuckyou!motherfucker!'】这句话,输出结果为:1##########以下是cs.py文件的代码#####################coding:utf8importtimeimportpandasaspdimportstringdefload_words(dic_file='./
3、Freq/SogouLabDic.dic'): t=time.time() word_dic={} first_word_dic={} forlineinopen(dic_file): line=unicode(line,'utf8').split() word=line[0] word_len=line[1] sex=line[2]iflen(line)==3elseNone first_word_dic.setdefault(word[0],[]) first_wo
4、rd_dic[word[0]].append(word) word_dic[word]=(word_len,sex) forfirst_word,wordsinfirst_word_dic.items(): word_dic[first_word]=sorted(words,key=lambdax:len(x),reverse=False) print'load_wordstime:',time.time()-t returnfirst_word_dic,word_dicfirst_word_d
5、ic,word_dic=load_words()model_dic={ 'letters':string.ascii_letters, 'digits':string.digits, 'punctuation':string.punctuation, }defmatch_ascii(i,sentence): result='' foriinrange(i,len(sentence)): ifnotsentence[i]instring.ascii_letters:break result+
6、=sentence[i] returnresultdefmatch_word(i,sentence,first_word_dic=first_word_dic): first_word=sentence[i] ifnotfirst_word_dic.has_key(first_word): iffirst_wordinstring.ascii_letters: returnmatch_ascii(i,sentence) return'' words=first_word_dic[fi
7、rst_word] forwordinwords: ifsentence[i:i+len(word)]==word: returnword returnfirst_worddefperse(sentence): ifsentence: words=[] i=0 whilei8、ed_word) i+=len(matched_word) returnwordsif__name__=='__main__': sentence=u'我曾经跨过山和abddfdf大海!互,联网词语搭配关系库来自于对SOGOU搜索引擎所索引到的中文互联网语料的统计分析,统计所进行的时间是2006年10月,涉及到的互联网语料规模在1亿页面以上。涉及到的搭配
8、ed_word) i+=len(matched_word) returnwordsif__name__=='__main__': sentence=u'我曾经跨过山和abddfdf大海!互,联网词语搭配关系库来自于对SOGOU搜索引擎所索引到的中文互联网语料的统计分析,统计所进行的时间是2006年10月,涉及到的互联网语料规模在1亿页面以上。涉及到的搭配
此文档下载收益归作者所有