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......")
    ...................................................
  • 相关阅读:
    计算 sql查询语句所花时间
    iframe自适应高度,以及一个页面加载多个iframe
    窗体移动API和窗体阴影API
    js复习:
    web组合查询:
    web登陆,增删改加分页。
    cookie和Session传值
    控件及其数据传输
    ASP.NET WebForm
    三月总结
  • 原文地址:https://www.cnblogs.com/floakss/p/10741276.html
Copyright © 2011-2022 走看看