当前位置:   article > 正文

NLP学习-1--语料预处理与向量空间,语料格式_语料库格式

语料库格式

一,语料(Corpus)

语料库即各个文档文章的集合。收集语料库后,要进行文本预处理,比如:文本分词, 英文字母全部转为小写,删除停用词,计算词频,删除低频词等。

1  分词

 (1)英文文本分词

 (2)中文文本分词,利用jieba工具

        安装:pip install jieba

        jieba介绍:https://github.com/fxsjy/jieba

      

  1. jieba.cut(text)普通分词
  2. #想要一些词不要分开,可以加载自定义词典
  3. file_userDict='dict.txt'
  4. jieba.load_userdict(file_userDict)

2  停用词

   停用词就是一些无关紧要的词,比如中文里的 “的”,“哦”。英文里的“yeah”, “oh”。可以网上下载别人已经整理好的停用词,根据自己的任务需要去修改一下就行。停用词也可以去标点符号。

       网上下载的英文停用词文档:

       网上下载的中文停用词文档:中文停用词表: 中文停用词表:百度停用词列表、哈工大停用词表、四川大学机器智能实验室停用词库、中文停用词库、stopword

去停用词后,进行分词的示例:(注意一下文件的编码方式,要和utf-8保持一致,不一致的话,另存为一下,选择utf-8格式保存)

3  计算词频

用下面这个方法创建字典,统计词频,特别好用。用defaultdict创建字典,当键值不存在,也不会报错,更简便。

  1. #计算词频
  2. from collections import defaultdict
  3. frequency = defaultdict(int)
  4. for text in texts:
  5. for token in text:
  6. frequency[token] += 1

4   仅保留词频数高于1的词汇

  1. #仅保留词频数高于1的词汇
  2. processed_corpus=[[word for word in text if frequency[word]>1]for text in texts ]
  3. print(processed_corpus)

 5   将语料库中的每个词汇与唯一的整数ID相关联,这里使用gensim.corpora.Dictionary这个类来完成。

 最终代码:

  1. import jieba
  2. from collections import defaultdict
  3. #创建停用词列表
  4. stoplist= [line.strip() for line in open('stopword.txt',encoding='UTF-8').readlines()]
  5. filename='分词前.txt'
  6. outfilename='分词后.txt'
  7. inputs=open(filename,'r',encoding='UTF-8')
  8. outputs=open(outfilename,'w',encoding='UTF-8')
  9. #每一行语句都通过jieba分词,并且每个单词之间通过空格隔开。
  10. raw_corpus=[' '.join(jieba.lcut(line.strip())) for line in inputs]
  11. print(raw_corpus)
  12. #将文档中可能存在的英文字符小写化,按空格进行拆分,且去停用词
  13. #注意格式,这里是二维列表了。
  14. texts = [[word for word in document.lower().split() if word not in stoplist]
  15. for documen
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/350031
推荐阅读
相关标签
  

闽ICP备14008679号