朴素贝叶斯 恶意言论识别
文章名字起得有点大:happy:,所谓的识别只是简单的对言论进行分类 ->好言论/坏言论
代码
详细代码地址:https://github.com/kai123wen/MachineLearningAlg/tree/master/NaiveBayes
代码有详细注释
1 | from numpy import * |
代码中的一些注意事项
词袋模型与词集模型
代码中:
将一个句子(注意不是单词)转化为一个向量,这里有两种选择,词集模型、词袋模型
词袋模型
词袋模型能够把一个句子转化为向量表示,是比较简单直白的一种方法,它不考虑句子中单词的顺序,只考虑词表(vocabulary)中单词在这个句子中的出现次数。下面直接来看一个例子吧(例子直接用wiki上的例子):
“John likes to watch movies, Mary likes movies too”
“John also likes to watch football games”
对于这两个句子,我们要用词袋模型把它转化为向量表示,这两个句子形成的词表(不去停用词)为:
[‘also’, ‘football’, ‘games’, ‘john’, ‘likes’, ‘mary’, ‘movies’, ‘to’, ‘too’, ‘watch’]
因此,它们的向量表示为:
词集模型
看懂了词袋模型,接下来词集模型就很容易了。词集模型就是只要词集中单词在句子中出现,就标为1
关于这里两个模型的选取,如果侧重于单词出现频次,最好使用词袋模型;如果不考虑,那就简单使用词集模型。
朴素贝叶斯算法与贝叶斯公式之间关系
之前一提及朴素贝叶斯,就想到贝叶斯公式,但是实际中贝叶斯公式和朴素贝叶斯还是点距离的。
贝叶斯公式:
朴素贝叶斯之所以称这为朴素,是因为假设了各个特征是相互独立的,因此假定下公式成立: