文本数据的获取方法通常有两种:html
- 使用别人作好的语料库
- 爬虫去获取本身的预料数据
通常能够使用正则表达式去进行删除python
因为python2不支持unicode的处理,所以使用python2作中文文本预处理须要遵循的原则是,存储数据都用utf8,读出来进行中文相关处理时,使用GBK之类的中文编码。正则表达式
中文分词工具介绍算法
stopwords = pd.read_csv("NLP_project\data\stopwords.txt", index_col=False, quoting=3, sep="\t", names=['stopword'],encoding='utf-8') stopwords = stopwords['stopword'].values
def preprocess_text(content_lines, sentences, category): for line in content_lines: try: segs = jieba.lcut(line) segs = list(filter(lambda x: len(x) > 1, segs)) segs = list(filter(lambda x: x not in stopwords, segs)) sentences.append((" ".join(segs), category)) #sentence是列表。里面是一个元祖,category是该内容的一个标签 except BaseException: print(line)
通常特征提取能够有三种方法转换成向量的形式。app
可参考原理连接编码
一、分词:通常使用jieba软件。 二、生成词向量词典:可以使用word2vec算法对分词后的语料库进行预训练生成词向量词典。其中的字词是不重复的,word2vec会对文本中的字、词和标点基本元素的出现频率进行统计,经过无监督训练,得到做为基础语料基础构成元素的字词对应的指定维度的向量表征。 三、数据集划分:在源代码可将数据集和测试集的划分比例参数设为0.6,60%用来训练集,40%用来测试集和验证集。 四、文本数字化:将分词后语料库文本中对应的字词和2中词向量词典经行对比,获其索引,即在词向量词典对应的序号,这样文档中都以整数索引序号表示从而实现索引形式的数字化,有利于下降文本表示的数据维度。 五、文本向量化:在数据进入模型训练前需按照词的索引序号从2中的词向量词典取出其对应的向量,这样整篇文本被转化为向量的形式。 六、标签:即文本类型,可用one-hot形式的标签。