这里介绍一下文本预处理中常用的操作:
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