利用python,基于SVM实现文本分类

项目代码见Github

  1. 算法介绍
    具体内容详见本人文档,下载链接

  2. 代码所用数据
    原网站

    文件结构

    ├─doc_classification.py
    ├─stopwords.txt
    ├─vocabulary.txt
    ├─train.data
    ├─train.label
    ├─train.map
    ├─test.data
    ├─test.label
    └─test.map

  3. 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)
          
  • 4
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值