python使用jieba库进行中文分词

很简单的一个实现,当初以为很复杂。把附录的文件贴上就行

# -*- coding: utf-8 -*-
"""
Created on Tue Mar  5 14:29:02 2019

@author: psdz
"""
#jieba库是用来分词的库
import jieba
import jieba.analyse
#是用来进行计算机系统操作的库
import io
import os
import os.path
import csv
from string import punctuation
#正则表达式库
import re
import sys
#处理汉字的中文文字库
from zhon.hanzi import punctuation
#sys.stdout = io.TextIOWrapper(sys.stdout,encoding='utf8') #改变标准输出的默认编码

#这里放着你要操作的文件夹名称
root_path = '冯唐作品集'
#用来存储统计好之后词频文件存放的位置
csv_root = "冯唐作品词频统计"

#目录下的文件名全部获取保存在files中
files = os.listdir(root_path)
#创建文件夹,用来存储统计之后的词频,放到csv文件里面
if not os.path.exists(csv_root):
    #创建文件夹
    os.mkdir(csv_root)


#创建用来统计词频的csv文件
def csv_create(name):   
    full_path = csv_root +"/"+ name + '.csv' 
    #创建文件,已写入的方式打开,但是不写,创建完毕之后就关闭文件
    file = open(full_path,'w')
    #关闭文件
    file.close() 
    #返回csv文件的路径,获取文件路径以便写入
    return full_path
    

#将文件夹中所有文件名字进行读取
for file in files :
    #准确获取一个txt的位置,利用字符串的拼接
    file_path = root_path +"/"+ file
    #打开相应的txt文件
    text = open(file_path,"r", encoding='utf-8').read()
    #去掉中文标点
    text = re.sub("[{}]+".format(punctuation), "", text)
    #使用jieba进行分词,精确模式,返回列表
    words=jieba.lcut(text)
    counts={}
    #创建对应文章的csv文件
    csv_path = csv_create(file)
    out = open(csv_path , 'a',encoding='utf-8')
    #设定写入模式
    csv_write = csv.writer(out,dialect='excel')
    #将文章的词汇进行分词
    for word in words:
        counts[word]=counts.get(word,0)+1
    #items转list类型
    items=list(counts.items())
    #应该是按照出现的频率进行排序功能,后期再查
    items.sort(key=lambda x:x[1],reverse=True)
    #开始写入csv文件
    #for i in range(0, len(words) - word_str - 100):
    for i in range(len(items)-1):
        word,count=items[i]
        #csv写入具体内容
        _str = word,count
        csv_write.writerow(_str)

文档可以在我的下载去找,冯唐作品集,或者自己随意找一篇中文文章,刚发现下载要5积分

https://download.csdn.net/download/lee18254290736/11009355

你可能感兴趣的:(Python)