机器学习实战(代码部分)-- 朴素贝叶斯之文本分类(Ⅳ 文档的词袋模型)

mac2025-03-16  11

4-4 朴素贝叶斯词袋模型

在之前的案例中,使用的是如下朴素贝叶斯的词集模型:

def setWordsToVec(vocabList, inputSet): returnVec = [0] * len(vocabList) # 创建一个其中所含元素都为0的向量 for word in inputSet: # 遍历每个词条 if word in vocabList: # 如果词条存在于词汇表中,则置1 returnVec[vocabList.index(word)] = 1 else: # 不会出现如下情况 print("the word: %s is not in my Vocabulary!" % word) return returnVec # 返回文档向量

词袋模型

        若一个词在文档中出现不止一次,这可能意味着包含该词是否出现在文档中所不能表达的某种信息,这种方法称为词袋模型。

 

        下面是基于词袋模型的朴素贝叶斯代码,唯一与上面代码不同的是每遇到一个单词时,它会增加词向量中的对应值,而不是将数值设为1。

def setWordsToVecBag(vocabList, inputSet): returnVec = [0] * len(vocabList) # 创建一个其中所含元素都为0的向量 for word in inputSet: # 遍历每个词条 if word in vocabList: # 如果词条存在于词汇表中,则置1 returnVec[vocabList.index(word)] += 1 return returnVec # 返回文档向量

 

最新回复(0)