Python使用jieba分词并用weka进行文本分类

一、安装pycharm
二、安装Python
三、在Python下安装pip,如下图所示,pip安装成功
Python使用jieba分词并用weka进行文本分类_第1张图片
四、在python下安装jieba:
这里写图片描述
如下图所示,jieba安装成功:
Python使用jieba分词并用weka进行文本分类_第2张图片
五、在pycharm中新建Python项目,对test.txt文件中的中文进行分词,并写入testResult.txt文件中,具体代码如下:

#!/usr/bin/env Python
# coding=utf-8
import jieba.analyse
import jieba
import jieba.posseg as pseg
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
# jieba.analyse.set_stop_words('stopwords.txt')
jieba.load_userdict('D:\Python27\Lib\site-packages\jieba\dict.txt')
jieba.suggest_freq(("补","补"),tune = True)

def cutWords(fileName,fileResult):
    fin = open(fileName, "r")
    fout = open(fileResult, "w+")
    stopword = [line.strip() for line in open("stopwords.txt","r").readlines()]
    for line in fin.readlines():
        line = line.strip()
        if not len(line):
             continue
        words = jieba.cut(line)
        for w in words:
            if w not in stopword:
                 fout.write(str(w)+" ")
        fout.write("\n")
    fin.close()
    fout.close()

if __name__ == "__main__":
    cutWords("test.txt","testResult.txt")

其中在结巴自定义的词典中加入一些新词,并使用自定义停词表去掉无用的词
六、将testResult.txt文件转成weka可导入的.arff文件格式(testResult文件里的前八个字符作为文件夹名,后几个字符作为该文件夹下的文件内容写入),具体代码如下:

import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

path  = "e:\\data\\"
def mkdir(dict,content,i):
    import os
    mkpath = path + dict + "\\"
    mkpath = mkpath.strip()
    mkpath = mkpath.rstrip("\\")
    isExists = os.path.exists(mkpath)
    # print mkpath
    if not isExists:
        # print mkpath
        os.makedirs(mkpath)
    else:
        pass
    newfilepath = mkpath + "\\" + dict + str(i) + ".txt"
    newfile = open(newfilepath.rstrip("\\"), "w+")
    newfile.write(content)
    newfile.close()

filedict = open('testResult.txt','r')
i = 0
for dictline in filedict.readlines():
    dictline = dictline.strip().lstrip().lstrip(",")
    dict = dictline[0:5]
    content = dictline[8:len(dictline)]
    i = i+1
    mkdir(dict,content,i)
filedict.close()

testResult.txt文件内容格式如下:
这里写图片描述
七、在weka的SimpleCLI中执行命令:

java weka.core.converters.TextDirectoryLoader -dir e:/data > e:/data.arff

如下图所示:
Python使用jieba分词并用weka进行文本分类_第3张图片
即可在相应的路径下看到生成的.arff文件:
这里写图片描述
八、在weka主界面中打开Explorer,点击“Open file”打开之前生成的data.arff文件,在Filter中点击”Choose”选择:
weka->filters->unsupervised->attribute->StringToWordVetor,然后点击应用
在分类Classify标签页中选择J48算法或随机森林算法,点击start开始分类,如下图所示:
Python使用jieba分词并用weka进行文本分类_第4张图片

你可能感兴趣的:(学习笔记,python,weka-jieba)