结合tfidf权重,对“达观杯”提供的文本,进行文本分类,作为baseline,后续改进均基于此。

1.比赛地址及数据来源

"达观杯"文本智能挑战赛

2.代码及解析

# -*- coding: utf-8 -*-

"""
@简介:tfidf特征/ SVM模型
@成绩: 0.77
"""
#导入所需要的软件包
import pandas as pd
from sklearn.svm import LinearSVC
from sklearn.feature_extraction.text import TfidfVectorizer print("开始...............") #====================================================================================================================
# @代码功能简介:从硬盘上读取已下载好的数据,并进行简单处理
# @知识点定位:数据预处理
#====================================================================================================================
df_train = pd.read_csv('./data/train_set.csv') # 数据读取
df_test = pd.read_csv('./data/test_set.csv') # 观察数据,原始数据包含id、article(原文)列、word_seg(分词列)、class(类别标签)
df_train.drop(columns=['article', 'id'], inplace=True) # drop删除列
df_test.drop(columns=['article'], inplace=True) #==========================================================
# @代码功能简介:将数据集中的字符文本转换成数字向量,以便计算机能够进行处理(一段文字 ---> 一个向量)
# @知识点定位:特征工程
#==========================================================
vectorizer = TfidfVectorizer(ngram_range=(1, 2), min_df=3, max_df=0.9)
'''
ngram_range=(1, 2) : 词组长度为1和2
min_df : 忽略出现频率小于3的词
max_df : 忽略在百分之九十以上的文本中出现过的词
'''
vectorizer.fit(df_train['word_seg']) # 构造tfidf矩阵
x_train = vectorizer.transform(df_train['word_seg']) # 构造训练集的tfidf矩阵
x_test = vectorizer.transform(df_test['word_seg']) # 构造测试的tfidf矩阵 y_train = df_train['class']-1 #训练集的类别标签(减1方便计算) #==========================================================
# @代码功能简介:训练一个分类器
# @知识点定位:传统监督学习算法之线性逻辑回归模型
#========================================================== classifier = LinearSVC() # 实例化逻辑回归模型
classifier.fit(x_train, y_train) # 模型训练,传入训练集及其标签 #根据上面训练好的分类器对测试集的每个样本进行预测
y_test = classifier.predict(x_test) #将测试集的预测结果保存至本地
df_test['class'] = y_test.tolist()
df_test['class'] = df_test['class'] + 1
df_result = df_test.loc[:, ['id', 'class']]
df_result.to_csv('./results/beginner.csv', index=False) print("完成...............")

3.问题修复

由于提供的数据集较大,一般运行时间再10到15分钟之间,基础电脑配置在4核8G的样子(越消耗内存在6.2G),因此,一般可能会遇到内存溢出的错误。

可限制每次读取的数据量,具体解决办法如下:

当然,你也可以换一个配置更高的电脑。

“达观杯”文本分类--baseline的更多相关文章

  1. Bert文本分类实践(一):实现一个简单的分类模型

    写在前面 文本分类是nlp中一个非常重要的任务,也是非常适合入坑nlp的第一个完整项目.虽然文本分类看似简单,但里面的门道好多好多,作者水平有限,只能将平时用到的方法和trick在此做个记录和分享,希 ...

  2. Bert文本分类实践(二):魔改Bert,融合TextCNN的新思路

    写在前面 ​ 文本分类是nlp中一个非常重要的任务,也是非常适合入坑nlp的第一个完整项目.虽然文本分类看似简单,但里面的门道好多好多,博主水平有限,只能将平时用到的方法和trick在此做个记录和分享 ...

  3. python - 实现文本分类[简单使用第三方库完成]

    第三方库 pandas sklearn 数据集 来自于达观杯 训练:train.txt 测试:test.txt 概述 TF-IDF 模型提取特征值建立逻辑回归模型 代码 # _*_ coding:ut ...

  4. 在 TensorFlow 中实现文本分类的卷积神经网络

    在TensorFlow中实现文本分类的卷积神经网络 Github提供了完整的代码: https://github.com/dennybritz/cnn-text-classification-tf 在 ...

  5. fastText文本分类算法

    1.概述 FastText 文本分类算法是有Facebook AI Research 提出的一种简单的模型.实验表明一般情况下,FastText 算法能获得和深度模型相同的精度,但是计算时间却要远远小 ...

  6. FastText 文本分类使用心得

    http://blog.csdn.net/thriving_fcl/article/details/53239856 最近在一个项目里使用了fasttext[1], 这是facebook今年开源的一个 ...

  7. NLP(七) 信息抽取和文本分类

    命名实体 专有名词:人名 地名 产品名 例句 命名实体 Hampi is on the South Bank of Tungabhabra river Hampi,Tungabhabra River ...

  8. NLP(十六)轻松上手文本分类

    背景介绍   文本分类是NLP中的常见的重要任务之一,它的主要功能就是将输入的文本以及文本的类别训练出一个模型,使之具有一定的泛化能力,能够对新文本进行较好地预测.它的应用很广泛,在很多领域发挥着重要 ...

  9. 基于Text-CNN模型的中文文本分类实战 流川枫 发表于AI星球订阅

    Text-CNN 1.文本分类 转眼学生生涯就结束了,在家待就业期间正好有一段空闲期,可以对曾经感兴趣的一些知识点进行总结. 本文介绍NLP中文本分类任务中核心流程进行了系统的介绍,文末给出一个基于T ...

随机推荐

  1. FastReport快速实现条形码,二维码面单打印

    一.什么是FastReport? FastReport是功能齐全的报表控件,使开发者可以快速并高效地为·NET/VCL/COM/ActiveX应用程序添加报表支持. FastReport有很多产品,如 ...

  2. Unity资源加载路径及加载方式小结

    Unity3D中的资源路径路径属性 路径说明Application.dataPath 此属性用于返回程序的数据文件所在文件夹的路径.例如在Editor中就是Assets了.Application.st ...

  3. iOS开发高级分享 - iOS上的设备标识符和指纹

    苹果认可的标识符 Apple提供了各种API,以方便用户识别各种用途: 通用标识符(UDID) 在iOS的早期,苹果公司提供了一个uniqueIdentifier财产上UIDevice-亲切地称为ud ...

  4. 深入理解Kafka必知必会(上)

    Kafka的用途有哪些?使用场景如何? 消息系统: Kafka 和传统的消息系统(也称作消息中间件)都具备系统解耦.冗余存储.流量削峰.缓冲.异步通信.扩展性.可恢复性等功能.与此同时,Kafka 还 ...

  5. mha格式的CT体数据转为jpg切片

    mha格式的CT体数据转为jpg切片 mha格式 .mha文件是一种体数据的存储格式,由一个描述数据的头和数据组成,一般我们拿到的原始医学影像的数据是.dcm也就是dicom文件,dicom文件很复杂 ...

  6. 还不会用FindBugs?你的代码质量很可能令人堪忧

    前言 项目中代码质量,往往需要比较有经验的程序员的审查来保证.但是随着项目越来越大,代码审查会变得越来越复杂,需要耗费越来越多的人力.而且程序员的经验和精力都是有限的,能审查出问题必定有限.而在对代码 ...

  7. [知识图谱]利用py2neo从Neo4j数据库获取数据

    # -*- coding: utf-8 -*- from py2neo import Graph import json import re class Neo4jToJson(object): &q ...

  8. C函数库stdio.h概况

    库变量 size_t    这是无符号整数类型,它是 sizeof 关键字的结果. FILE      这是一个适合存储文件流信息的对象类型. fpos_t   这是一个适合存储文件中任何位置的对象类 ...

  9. 《STL源码剖析》——List

    List list位于头文件<<stl_list.h>>中 list是sequence containers中的一种 1 List的基本架构 list的基本结构的UML关系图如 ...

  10. mvn上传dubbo jar到nexus

    第一种方式: mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=j ...