文章目录
前言
本文记录了一下Python在文本处理时的一些过程+代码
一、文本导入
我准备了一个名为abstract.txt的文本文件
接着是在网上下载了stopword.txt(用于结巴分词时的停用词)
有一些是自己觉得没有用加上去的
另外建立了自己的词典extraDict.txt
准备工作做好了,就来看看怎么使用吧!
二、使用步骤
1.引入库
代码如下:
import jieba
from jieba.analyse import extract_tags
from sklearn.feature_extraction.text import TfidfVectorizer
2.读入数据
代码如下:
jieba.load_userdict('extraDict.txt') # 导入自己建立词典
3.取出停用词表
def stopwordlist():
stopwords = [line.strip() for line in open('chinesestopwords.txt', encoding='UTF-8').readlines()]
# ---停用词补充,视具体情况而定---
i = 0
for i in range(19):
stopwords.append(str(10 + i))
# ----------------------
return stopwords
4.分词并去停用词(此时可以直接利用python原有的函数进行词频统计)
def seg_word(line):
# seg=jieba.cut_for_search(line.strip())
seg = jieba.cut(line.strip())
temp = ""
counts = {}
wordstop = stopwordlist()
for word in seg:
if word not in wordstop:
if word != ' ':
temp += word
temp += '\n'
counts[word] = counts.get(word, 0) + 1#统计每个词出现的次数
return temp #显示分词结果
#return str(sorted(counts.items(), key=lambda x: x[1], reverse=True)[:20]) # 统计出现前二十最多的词及次数
5. 输出分词并去停用词的有用的词到txt
def output(inputfilename, outputfilename):
inputfile = open(inputfilename, encoding='UTF-8', mode='r')
outputfile = open(outputfilename, encoding='UTF-8', mode='w')
for line in inputfile.readlines():
line_seg = seg_word(line)
outputfile.write(line_seg)
inputfile.close()
outputfile.close()
return outputfile
6.函数调用
if __name__ == '__main__':
print("__name__", __name__)
inputfilename = 'abstract.txt'
outputfilename = 'a1.txt'
output(inputfilename, outputfilename)
7.结果
总结
以上就是今天要讲的内容,本文仅仅简单介绍了python的中文分词及词频统计,欢迎指正!