文本挖掘学习(六) 文档分类

1.朴素贝叶斯

朴素贝叶斯 = 贝叶斯公式 + 条件独立假设

  • 抛弃词条间的关联,假设各个词条完全独立,完全基于词袋模型进行计算

2.sklearn实现

# 文档分类
# 朴素贝叶斯
# 从原始语料df中提取出所需的前两章段落
raw12 = df[df.chap.isin([1,2])]
raw12ana = raw12.iloc[list(raw12.txt.apply(len) > 50), :]  # 只使用超过50字的段落
raw12ana.reset_index(drop = True, inplace = True)
raw12ana['cleantxt'] = raw12ana.txt.apply(text_cut)
countvec = CountVectorizer()
wordmtx = countvec.fit_transform(raw12ana.cleantxt)
# 将数据集划分为训练集和测试集
from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(wordmtx, raw12ana.chap, test_size=0.3, random_state=111)

# 拟合朴素贝叶斯模型
from sklearn import naive_bayes
NBmodel = naive_bayes.MultinomialNB()
# 拟合模型
NBmodel.fit(x_train, y_train)
# 进行验证集预测
NBmodel.predict(x_test)

# 预测准确率
print('训练集:', NBmodel.score(x_train, y_train),
     ', 验证集:', NBmodel.score(x_test, y_test))
# 模型评估
from sklearn.metrics import classification_report

print(classification_report(y_test, NBmodel.predict(x_test)))

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值