贝叶斯分类代码.doc

贝叶斯分类代码.doc

ID:59130443

大小:340.50 KB

页数:7页

时间:2020-09-12

贝叶斯分类代码.doc_第1页
贝叶斯分类代码.doc_第2页
贝叶斯分类代码.doc_第3页
贝叶斯分类代码.doc_第4页
贝叶斯分类代码.doc_第5页
资源描述:

《贝叶斯分类代码.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    whilei

8、ed_word)      i+=len(matched_word)    returnwordsif__name__=='__main__':  sentence=u'我曾经跨过山和abddfdf大海!互,联网词语搭配关系库来自于对SOGOU搜索引擎所索引到的中文互联网语料的统计分析,统计所进行的时间是2006年10月,涉及到的互联网语料规模在1亿页面以上。涉及到的搭配

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。