文本预处理常用操作

这里介绍一下文本预处理中常用的操作:

1.英文统一小写

text = text.lower()

2.分词

    def cut(text):
        # return list(jieba.cut(text))
        return [item for item in jieba.cut(text.lower())] if text != "" else []

3.去噪

两种方式

(1)去停用词

包括中英文标点符号、以及噪音词,参考附录[1]

    stopwords = set([line.strip() for line in codecs.open("data/stopwords.txt", "r")])
    def cut_and_remove_stopwords(text):
        return [item for item in jieba.cut(text.lower()) if item not in Utils.stopwords] if text != "" else []

(2)只保留指定词典中的词

这个词典与任务强相关,通常是当前任务重点关注的特征词

    def cut_and_in_vocabulary(text):
        return [item for item in jieba.cut(text.lower()) if item in Utils.vocabulary] if text != "" else []

其中,为了保证分词的结果是我们想要的,通常需要调整jieba词典

    file_vocabulary = "data/vocabulary.txt"
    jieba.load_userdict(file_vocabulary)
    vocabulary = set([line.strip() for line in codecs.open(file_vocabulary, "r")])

    file_jieba_delete_dict = "data/jieba_delete_dict.txt"
    for wd in [line.strip() for line in codecs.open(file_jieba_delete_dict, "r")]:
        jieba.del_word(wd)

详细说明参考:fxsjy/jieba: 结巴中文分词

附录[1]:停用词表(其中有两行分别是中英文的空格)

,
.
?
!
 
,
。
?
!
不好意思
抱歉
谢谢
这边
那边
那个
这个
那样
这种
那种
我想
这儿
这样
还
也
额
呃
嗯
噢
那
哎
先
后
啊
哦
吧
呀
啦
哈
诶
咯
恩
阿
呢
吗
的
了

待补充~

原文地址:https://www.cnblogs.com/bymo/p/9104282.html

时间: 2024-07-31 15:44:04

文本预处理常用操作的相关文章

文本处理sed常用操作

文本处理sed常用操作 linux sed (stream editor) is a Unix utility that parses and transforms text, using a simple, compact programming language 修改配置文件的sed sed -i '/#datelist/ s/\=.*/\=."'$var'"/g' file sed 往文件顶部加一行 sed -i '1s/^/line to insert\n/' file sed

文本聚类——文本预处理

文本是非结构化的数据,我们无法直接对文本进行聚类处理.在此之前,应该对文本进行一些预处理操作,将文本信息转化成统一的结构化的形式.再对这些结构化的数据进行聚类. 文本预处理对于聚类的效果有着重要的作用,预处理的质量高低影响着聚类结果的好坏.对于英文文本的预处理一般包含以下几个步骤: 分词 去除非英文文本 拼写检查,转换小写 词干化处理 去停用词 词频统计 特征选择 分词--tokenize 分句:tokenize segment NLTK中使用nltk.sent_tokenize(text) #

JAVASE02-Unit08: 文本数据IO操作 、 异常处理

Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; /** * java.io.Ob

TStringList常用操作

TStringList常用操作 //TStringList 常用方法与属性: var List: TStringList; i: Integer; begin List := TStringList.Create; List.Add('Strings1'); {添加} List.Add('Strings2'); List.Exchange(0,1); {置换} List.Insert(0,'Strings3'); {插入} i := List.IndexOf('Strings1'); {第一次出

TStringList 常用操作

TStringList 常用操作 //TStringList 常用方法与属性: var   List: TStringList;   i: Integer; begin   List := TStringList.Create;   List.Add('Strings1');          {添加}   List.Add('Strings2');   List.Exchange(0,1);            {置换}   List.Insert(0,'Strings3');      {

JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作

基本IO操作 . 文本数据IO操作 java标准IO(input/output)操作 package day07; import java.io.FileOutputStream; import java.io.IOException; /** * java标准IO(input/output)操作 * 输入流InputStrean:用于从数据源读取数据到程序中 * 输出流OutputStream:用于将数据发送至目标 * * 流划分为:节点流,处理流 * 节点流:又叫做低级流,特点:数据源明确,

javascript中字符串常用操作总结、JS字符串操作大全

字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温习查阅. String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不一样. var str = 'abc'; console.log(str.length);

【Oracle】第二章常用操作

ORACLE 第二章常用操作 修改表中的列信息: alter table vendor_master modify(vencode varchar(20)); 给表中列添加一个默认值约束 alter table mytable modify(name varchar2(20) default 'abc'); 为现有表中的列添加一个主键约束: alter table testtable add(constraint "idkey" primary key("ID"))

DOM常用操作

文档对象模型( DOM, Document Object Model )主要用于对HTML和XML文档的内容进行操作.DOM描绘了一个层次化的节点树,通过对节点进行操作,实现对文档内容的添加.删除.修改.查找等功能. 一.DOM树 DOM树有两种,分别为节点树和元素树. 节点树:把文档中所有的内容都看成树上的节点: 元素树:仅把文档中的所有标签看成树上的节点. 二.DOM常用操作 2.1 查找节点 document.getElementById('id属性值'); 返回拥有指定id的第一个对象的