资源简介

完整可运行的python代码。 数据过滤,清洗,分割,特征选择,训练词向量模型,测试等等, 每行都有注释,真实的数据集超过20w条,是个不错的nlp入门例子。

资源截图

代码片段和文件信息

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

import os
import pandas as pd
import nltk
from tools import proc_text split_train_test get_word_list_from_data extract_feat_from_data cal_acc
from nltk.text import TextCollection
from sklearn.linear_model import LogisticRegression
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import LinearSVC
from keras.models import Sequential
from keras.layers import *
from keras.optimizers import SGDAdam
import keras

dataset_path = ‘./dataset‘
text_filenames = [‘0_simplifyweibo.txt‘ ‘1_simplifyweibo.txt‘
                  ‘2_simplifyweibo.txt‘ ‘3_simplifyweibo.txt‘]

# 原始数据的csv文件
output_text_filename = ‘raw_weibo_text.csv‘

# 清洗好的文本数据文件
output_cln_text_filename = ‘clean_weibo_text.csv‘

# 处理和清洗文本数据的时间较长,通过设置is_first_run进行配置
# 如果是第一次运行需要对原始文本数据进行处理和清洗,需要设为True
# 如果之前已经处理了文本数据,并已经保存了清洗好的文本数据,设为False即可
is_first_run = False
load_np = False

def read_and_save_to_csv():
    “““
        读取原始文本数据,将标签和文本数据保存成csv
    “““

    # 存储所有向量化的Dataframe对象
    # 每个Dataframe对象表示一个文本数据
    text_w_label_df_lst = []
    # 循环获取每一个微博文本文件名
    for text_filename in text_filenames:
        # 组合文件路径
        text_file = os.path.join(dataset_path text_filename)

        # 获取标签,即0 1 2 3
        label = int(text_filename[0])

        # 读取文本文件
        with open(text_file ‘r‘ encoding=‘utf-8‘) as f:
            # 将文本字符串按换行符(\n、\r、\r\n)分隔,返回包含每行数据的列表
            lines = f.read().splitlines()

        # 生成一个向量,[0 0 0 0 ....]
        labels = [label] * len(lines)

        # 当前文本内容的Series对象
        text_series = pd.Series(lines)
        # 当前文本的标签Series对象
        label_series = pd.Series(labels)

        # concat合并多个Series对象,返回一个Dataframe对象
        text_w_label_df = pd.concat([label_series text_series] axis=1)
        # 将所有的数据集存到同一个列表里
        text_w_label_df_lst.append(text_w_label_df)

    result_df = pd.concat(text_w_label_df_lst axis=0)

    # 保存成csv文件
    # 指定列名,第一个label,第二个text
    result_df.columns = [‘label‘ ‘text‘]
    # 将所有数据集写入到本地磁盘文件
    result_df.to_csv(os.path.join(dataset_path output_text_filename)index=None encoding=‘utf-8‘)


def run_main():
    “““
        主函数
    “““
    # 1. 数据读取,处理,清洗,准备
    if is_first_run:
        print(‘处理清洗文本数据中...‘ end=‘ ‘)
        # 如果是第一次运行需要对原始文本数据进行处理和清洗

        # 读取原始文本数据,将标签和文本数据保存成csv
        read_and_save_to_csv()

        # 读取处理好的csv文件,构造数据集
        text_df = pd.read_csv(os.path.join(dataset_path output_text_filename)
                              encoding=‘utf-8‘)

        # 处理文本数据
        text_df[‘text‘] = text_df[‘text‘].apply(proc_text)

        # 过滤空字符串,去掉所有空行部分
        text_df = text_df[text_df[‘text‘] != ‘‘]

        # 保存处理好的文本数据,文本预处理结束
        text_df.to_csv(os.path.join(dataset_path output_cln_text_filename)
                       index=None encoding=‘utf-8‘)
        print(‘完成,并保存结果。‘)



    # 2. 分割训练集、测试集
    print(‘加载处理好的文本数据‘)
    clean_text_df = pd.read

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-04 11:31  weibo\
     目录           0  2018-11-03 15:18  weibo\.idea\
     文件         159  2018-11-03 15:18  weibo\.idea\encodings.xml
     文件         695  2018-11-03 15:18  weibo\.idea\misc.xml
     文件         262  2018-11-03 15:18  weibo\.idea\modules.xml
     文件         284  2018-11-03 15:18  weibo\.idea\weibo.iml
     文件        1610  2018-11-03 15:18  weibo\.idea\workspace.xml
     目录           0  2018-11-03 20:53  weibo\__pycache__\
     文件        3536  2018-11-03 20:53  weibo\__pycache__\tools.cpython-36.pyc
     文件        9155  2018-11-03 22:43  weibo\cnn.py
     目录           0  2018-11-03 14:38  weibo\dataset\
     文件    58786051  2017-10-19 19:00  weibo\dataset\0_simplifyweibo.txt
     文件    15152829  2017-10-19 19:00  weibo\dataset\1_simplifyweibo.txt
     文件    16971885  2017-10-19 19:00  weibo\dataset\2_simplifyweibo.txt
     文件     7649621  2017-10-19 19:00  weibo\dataset\3_simplifyweibo.txt
     文件    36371678  2018-11-03 21:14  weibo\dataset\clean_weibo_text.csv
     文件    99137761  2018-11-03 20:53  weibo\dataset\raw_weibo_text.csv
     文件          75  2017-10-19 19:00  weibo\dataset\readme.txt
     文件        6202  2018-11-03 18:30  weibo\main.py
     文件         971  2018-11-03 21:01  weibo\read.py
     文件        6353  2018-11-03 20:53  weibo\tools.py
     文件        5463  2017-10-19 19:00  weibo\中文停用词库.txt
     文件        6038  2017-10-19 19:00  weibo\哈工大停用词表.txt
     文件        8571  2017-10-19 19:00  weibo\四川大学机器智能实验室停用词库.txt

评论

共有 条评论