赞
踩
一,语料(Corpus)
语料库即各个文档文章的集合。收集语料库后,要进行文本预处理,比如:文本分词, 英文字母全部转为小写,删除停用词,计算词频,删除低频词等。
1 分词
(1)英文文本分词
(2)中文文本分词,利用jieba工具
安装:pip install jieba
jieba介绍:https://github.com/fxsjy/jieba
- jieba.cut(text)普通分词
-
- #想要一些词不要分开,可以加载自定义词典
- file_userDict='dict.txt'
- jieba.load_userdict(file_userDict)
2 停用词
停用词就是一些无关紧要的词,比如中文里的 “的”,“哦”。英文里的“yeah”, “oh”。可以网上下载别人已经整理好的停用词,根据自己的任务需要去修改一下就行。停用词也可以去标点符号。
网上下载的英文停用词文档:
网上下载的中文停用词文档:中文停用词表: 中文停用词表:百度停用词列表、哈工大停用词表、四川大学机器智能实验室停用词库、中文停用词库、stopword
去停用词后,进行分词的示例:(注意一下文件的编码方式,要和utf-8保持一致,不一致的话,另存为一下,选择utf-8格式保存)
3 计算词频
用下面这个方法创建字典,统计词频,特别好用。用defaultdict创建字典,当键值不存在,也不会报错,更简便。
- #计算词频
- from collections import defaultdict
- frequency = defaultdict(int)
- for text in texts:
- for token in text:
- frequency[token] += 1
4 仅保留词频数高于1的词汇
- #仅保留词频数高于1的词汇
- processed_corpus=[[word for word in text if frequency[word]>1]for text in texts ]
- print(processed_corpus)
5 将语料库中的每个词汇与唯一的整数ID相关联,这里使用gensim.corpora.Dictionary这个类来完成。
最终代码:
- import jieba
- from collections import defaultdict
-
- #创建停用词列表
- stoplist= [line.strip() for line in open('stopword.txt',encoding='UTF-8').readlines()]
-
- filename='分词前.txt'
- outfilename='分词后.txt'
- inputs=open(filename,'r',encoding='UTF-8')
- outputs=open(outfilename,'w',encoding='UTF-8')
-
- #每一行语句都通过jieba分词,并且每个单词之间通过空格隔开。
- raw_corpus=[' '.join(jieba.lcut(line.strip())) for line in inputs]
- print(raw_corpus)
-
- #将文档中可能存在的英文字符小写化,按空格进行拆分,且去停用词
- #注意格式,这里是二维列表了。
- texts = [[word for word in document.lower().split() if word not in stoplist]
- for documen
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。