当前位置:   article > 正文

NLP数据清洗:文本预处理_nlp文本数据清洗

nlp文本数据清洗

  在NLP中,文本有时候会包含很多空格或者是其他一些无用的符号,如果保留这些符号,在分词的时候这些符号也会被分出来,就会导致分词的结果不好。因此对文本的数据清洗是必要的。

一、去除无用的符号

  使用正则匹配re去除文本中的无用符号:

def clean_txt(sentence):
    remove_chars = '[·’!"\#$%&\'()#!()*+,-./:;<=>?\@,:?¥★、….>【】[]《》?“”‘’\[\\]^_`{|}~]+'
    string = re.sub(remove_chars, "", sentence)
    return string

def test():
    test_txt = '#【郭美美申请低保,居然获准通过!】郭美美对记者说,她其实就是一个失业人员,并不是大家想象的那样。她还说:她已经向政府申请了低保,目前已经获批。'
    test_txt_clean = clean_txt(test_txt)
    print('原文本:',test_txt)
    print('处理后文本:',test_txt_clean)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

原文本: #【郭美美申请低保,居然获准通过!】郭美美对记者说,她其实就是一个失业人员,并不是大家想象的那样。她还说:她已经向政府申请了低保,目前已经获批。
处理后文本: 郭美美申请低保居然获准通过郭美美对记者说她其实就是一个失业人员并不是大家想象的那样。她还说她已经向政府申请了低保目前已经获批。

  还有一种方法是使用replace()这个方法也可以去掉所有不需要的符号或者把文本中的某些字符串替换

contents = ' 【郭美  美申请低保,居然获准 通过!  】   !'
print('原文本:'+contents)
# 删除所有空格 
def clean_txt(txt):     #定义函数
    result= txt.replace(' ','')   # 去掉文本中的空格
    return result
result = clean_txt(contents)
print('处理后文本:',result)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

原文本:【郭美 美申请低保,居然获准 通过! 】 !
处理后文本:【郭美美申请低保,居然获准通过!】!

contents = '郭美美申请低保,居然获准通过...'
print('原文本:'+contents)
# 替换指定字符串,把省略号转为句号
def clean_txt(txt):     
    result= txt.replace('...','。')    # 去掉文本中的空格
    return result
result = clean_txt(contents)
print('处理后文本:',result)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

原文本:郭美美申请低保,居然获准通过…
处理后文本:郭美美申请低保,居然获准通过。

二、去除表情符号

  我们的文本数据中经常会带有很多表情,这些表情不仅仅会降低我们对文本处理的质量,它们有时是无法utf-8编码的,可以使用正则匹配删除这些表情符号。

def clean(desstr,restr=''):  
    #过滤表情   
    try:  
        co = re.compile(u'['u'\U0001F300-\U0001F64F' u'\U0001F680-\U0001F6FF'u'\u2600-\u2B55]+')  
    except re.error:  
        co = re.compile(u'('u'\ud83c[\udf00-\udfff]|'u'\ud83d[\udc00-\ude4f\ude80-\udeff]|'u'[\u2600-\u2B55])+')  
    return co.sub(restr, desstr)
 
print(clean('郭美美申请低保,居然获准通过!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/568879
推荐阅读
相关标签