python文本分类算法_Python-基于向量机SVM的文本分类

本文介绍了如何使用Python实现基于向量机SVM的文本分类。通过读取数据、特征选择、构建SVM模型并进行预测,展示了从数据预处理到模型训练和评估的完整流程。代码中涉及到的数据结构包括TF-IDF、停用词列表、词汇表等,使用了liblinear库进行SVM训练和预测。
摘要由CSDN通过智能技术生成

1.算法介绍

2.代码所用数据

文件结构

├─doc_classification.py

├─stopwords.txt

├─vocabulary.txt

├─train.data

├─train.label

├─train.map

├─test.data

├─test.label

└─test.map

python代码

需要安装的库:

pandas, liblinearutil

注:Windows平台下 liblinearutil 安装包(32/64)

# doc_classification.py

import pandas as pd

import math

from liblinearutil import *

import time

# 读取数据

def loadOriginData(src='train'):

# train.data

dataSrc = r'%s.data' % src

# train.label

labelSrc = r'%s.label' % src

label = pd.read_table(labelSrc, sep=' ', names=['label'])

# train.map

mapSrc = r'%s.map' % src

# 每个文档拥有的terms

doc2term = {}

# 每个term出现在哪些文档

term2doc = {}

# 每个类别下有哪些docs

cate2docs = {}

# TF值

TF = {}

with open(dataSrc, 'r') as f:

for line in f:

str_docIdx, str_wordIdx, str_cnt = line.split()

docIdx = int(str_docIdx)

wordIdx = int(str_wordIdx)

cnt = int(str_cnt)

# update 数据结构

doc2term.setdefault(docIdx, []).append(wordIdx)

term2doc.setdefault(wordIdx, []).append(docIdx)

TF.setdefault(docIdx, {})[wordIdx] = cnt

# 统计每个类别下有哪些文档

with open(labelSrc, 'r') as f:

for line_index, line in enumerate(f, 1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值