zoukankan      html  css  js  c++  java
  • python

    第三方库

    pandas
    
    sklearn

    数据集

    来自于达观杯

    训练:train.txt 测试:test.txt

     概述

    TF-IDF 模型提取特征值
    建立逻辑回归模型

     代码

    # _*_ coding:utf-8 _*_
    
    # 简单文本分类实现
    import time
    import pandas as pd
    from sklearn.linear_model import LogisticRegression
    from sklearn.feature_extraction.text import CountVectorizer
    
    print("start......")
    time_start=time.time()
    
    # (1)加载数据 - 利用pandas读取cvs中数据
    df_train = pd.read_csv("D:/train.txt")
    df_test=pd.read_csv("D:/test.txt")
    # [1.1]数据处理 - 根据个人对算据的分析
    # 本次实验 - 删除'article','id'列
    df_train.drop(columns=['article','id'],inplace=True)
    df_test.drop(columns=['article'],inplace=True)
    
    # (2)特征提取
    """
    特征是什么:选取一些“重要元素”标识一个文本
    特征选取:抽取关键特征值(TF-IDF,LDA..),原因:特征太多,构成的特征向量计算机非常难处理(内存空间,时间)
    一个类别如何标识:文本(多个)+特征(多个)=>[二维向量] --- 标识一个类别 
    """
    # TF-IDF 模型
    # sklearn 提取文本特征
    # [1]TfidfVectorizer
    # [2]CountVectorizer 文本特征提取方法 - 文本中的词语转换为词频矩阵
    # 词频矩阵 - 矩阵元素a[i][j] 表示j词在第i个文本下的词频
    
    # sklearn - CountVectorizer
    vectorizer=CountVectorizer(ngram_range=(1, 2), min_df=3,max_df=0.9, max_features=100000)
    vectorizer.fit(df_train['word_seg'])
    #训练和测试的词频向量格式保持一致
    x_train=vectorizer.transform(df_train['word_seg'])
    x_test=vectorizer.transform(df_test['word_seg'])
    y_train = df_train['class']-1
    
    # sklearn - TfidfVectorizer
    # (3)分类模型 - 逻辑回归模型
    #  modal :LogisticRegression
    lg = LogisticRegression(C=4, dual=True,solver='liblinear',multi_class='ovr')
    lg.fit(x_train, y_train)
    
    # (4)预测
    y_test = lg.predict(x_test)
    
    # (5)结果展示
    df_test['class'] = y_test.tolist()
    df_test['class'] = df_test['class'] + 1
    df_result = df_test.loc[:, ['id', 'class']]
    df_result.to_csv('D:/result.csv', index=False)
    
    time_end=time.time()
    print("running time={}".format(time_end-time_start))
    print("end......")
    ...................................................
  • 相关阅读:
    Window 窗口类
    使用 Bolt 实现 GridView 表格控件
    lua的table库
    Windows编程总结之 DLL
    lua 打印 table 拷贝table
    使用 xlue 实现简单 listbox 控件
    使用 xlue 实现 tips
    extern “C”
    COleVariant如何转换为int double string cstring
    原来WIN32 API也有GetOpenFileName函数
  • 原文地址:https://www.cnblogs.com/floakss/p/10741276.html
Copyright © 2011-2022 走看看