机器学习实战(代码部分)-- 朴素贝叶斯之文本分类(Ⅳ 文档的词袋模型)
4-4 朴素贝叶斯词袋模型在之前的案例中,使用的是如下朴素贝叶斯的词集模型:def setWordsToVec(vocabList, inputSet):returnVec = [0] * len(vocabList)# 创建一个其中所含元素都为0的向量for word in inputSet:# 遍历每个词条if word in vocab...
·
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 # 返回文档向量
更多推荐
已为社区贡献1条内容
所有评论(0)