• 大小: 13.63MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-22
  • 语言: 其他
  • 标签:

资源简介

NLP小白入门——超全中文文本分类系统(train set & test set + stop word*4 + word2vec + TF-IDF + Naive Bayes)

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
import os
import jieba
import pickle

from sklearn import metrics
from sklearn.datasets.base import Bunch
from sklearn.feature_extraction.text import TfidfVectorizer TfidfTransformer
from sklearn.naive_bayes import MultinomialNB
from numpy import *
import io


class NLP_C:
    def __init__(self):
        self.corpus_path_train = “data/train/“
        self.seg_path_train = “data/train_seg/“
        self.wordbag_path_train = “data/train_word_bag/train_set.dat“
        self.corpus_path_test = “data/test/“
        self.seg_path_test = “data/test_seg/“
        self.wordbag_path_test = “data/test_word_bag/test_set.dat“
        self.stopword_path = “data/SiChuanDaXue.txt“
        # self.stopword_path = “data/train_word_bag/hlt_stop_words.txt“
        self.space_path_train = “data/train_word_bag/tfidfspace.dat“
        self.space_path_test = “data/test_word_bag/testspace.dat“

    def savefile(self savepath content):
        # fp = open(savepath ‘w‘ encoding=‘gb2312‘ errors=‘ignore‘)
        fp = io.open(savepath ‘w‘ encoding=‘gb2312‘ errors=‘ignore‘)
        fp.write(content)
        fp.close()

    def readfile(self path):
        # fp = open(path ‘r‘ encoding=‘gb2312‘ errors=‘ignore‘)
        fp = io.open(path ‘r‘ encoding=‘gb2312‘ errors=‘ignore‘)
        content = fp.read()
        fp.close()
        return content

    def splitwords(self corpus_path seg_path):
        catelist = os.listdir(corpus_path)  # 获取corpus_path下的所有子目录

        # 获取每个目录下所有的文件
        for mydir in catelist:
            class_path = corpus_path + mydir + “/“  # 拼出分类子目录的路径
            seg_dir = seg_path + mydir + “/“  # 拼出分词后语料分类目录
            if not os.path.exists(seg_dir):  # 是否存在目录,如果没有创建
                os.makedirs(seg_dir)
            file_list = os.listdir(class_path)  # 获取class_path下的所有文件
            for file_path in file_list:  # 遍历类别目录下文件
                fullname = class_path + file_path  # 拼出文件名全路径
                content = self.readfile(fullname).strip()  # 读取文件内容
                content = content.replace(“\r\n“ ““)  # 删除换行和多余的空格
                content_seg = jieba.cut(content.strip())  # 为文件内容分词
                self.savefile(seg_dir + file_path “ “.join(content_seg))  # 将处理后的文件保存到分词后语料目录

    # Bunch类提供一种keyvalue的对象形式
    # target_name:所有分类集名称列表
    # label:每个文件的分类标签列表
    # filenames:文件路径
    # contents:分词后文件词向量形式
    def word2vec(self seg_path wordbag_path):
        bunch = Bunch(target_name=[] label=[] filenames=[] contents=[])

        catelist = os.listdir(seg_path)  # 获取seg_path下的所有子目录
        bunch.target_name.extend(catelist)
        # 获取每个目录下所有的文件
        for mydir in catelist:
            class_path = seg_path + mydir + “/“  # 拼出分类子目录的路径
            file_list = os.listdir(class_path)  # 获取class_path下的所有文件
            for file_path in file_list:  # 遍历类别目录下文件
                fullname = class_path + file_path  # 拼出文件名全路径
                bunch.label.append(mydir)
                bunch.filenames.append(fullname

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        8738  2018-04-08 21:02  NLP_Test.py
     目录           0  2018-04-08 20:56  data\
     文件        3398  2018-02-12 07:53  data\ChineseStop.txt
     文件        3823  2018-02-12 07:53  data\HaGongDa.txt
     文件        5389  2018-02-12 07:53  data\SiChuanDaXue.txt
     目录           0  2018-04-08 16:18  data\TanCorpMinTest\
     目录           0  2018-04-08 16:18  data\TanCorpMinTest\人才\
     文件        3320  2018-02-12 07:53  data\TanCorpMinTest\人才\103.txt
     文件        4155  2018-02-12 07:53  data\TanCorpMinTest\人才\116.txt
     文件        1712  2018-02-12 07:53  data\TanCorpMinTest\人才\129.txt
     文件        1619  2018-02-12 07:53  data\TanCorpMinTest\人才\141.txt
     文件        1583  2018-02-12 07:53  data\TanCorpMinTest\人才\154.txt
     文件        8161  2018-02-12 07:53  data\TanCorpMinTest\人才\167.txt
     文件        1394  2018-02-12 07:53  data\TanCorpMinTest\人才\18.txt
     文件        1610  2018-02-12 07:53  data\TanCorpMinTest\人才\192.txt
     文件        3382  2018-02-12 07:53  data\TanCorpMinTest\人才\204.txt
     文件        3071  2018-02-12 07:53  data\TanCorpMinTest\人才\217.txt
     文件        2260  2018-02-12 07:53  data\TanCorpMinTest\人才\23.txt
     文件        2024  2018-02-12 07:53  data\TanCorpMinTest\人才\242.txt
     文件        4243  2018-02-12 07:53  data\TanCorpMinTest\人才\255.txt
     文件        2240  2018-02-12 07:53  data\TanCorpMinTest\人才\268.txt
     文件        4484  2018-02-12 07:53  data\TanCorpMinTest\人才\280.txt
     文件        3504  2018-02-12 07:53  data\TanCorpMinTest\人才\293.txt
     文件        5240  2018-02-12 07:53  data\TanCorpMinTest\人才\305.txt
     文件        1071  2018-02-12 07:53  data\TanCorpMinTest\人才\318.txt
     文件        4464  2018-02-12 07:53  data\TanCorpMinTest\人才\330.txt
     文件       16049  2018-02-12 07:53  data\TanCorpMinTest\人才\343.txt
     文件        4722  2018-02-12 07:53  data\TanCorpMinTest\人才\356.txt
     文件        6241  2018-02-12 07:53  data\TanCorpMinTest\人才\369.txt
     文件        3281  2018-02-12 07:53  data\TanCorpMinTest\人才\381.txt
     文件        2814  2018-02-12 07:53  data\TanCorpMinTest\人才\394.txt
............此处省略5751个文件信息

评论

共有 条评论