文本预处理常用操作

Posted 焦距

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本预处理常用操作相关的知识,希望对你有一定的参考价值。

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

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]:停用词表(其中有两行分别是中英文的空格)

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

 

待补充~

以上是关于文本预处理常用操作的主要内容,如果未能解决你的问题,请参考以下文章

css常用代码片段 (更新中)

记录C#常用的代码片段

常用python日期日志获取内容循环的代码片段

文本预处理常用操作

文本处理sed常用操作

提效小技巧——记录那些不常用的代码片段