【AIGC】大模型口试高频考点-数据洗濯篇

  论坛元老 | 2024-12-5 16:13:10 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1738|帖子 1738|积分 5214

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
文本洗濯是什么?
文本洗濯,也称为文本预处理或文本数据清理,正在预备原始文本数据并将其转换为更干净、更结构化的格式,以用于分析、建模或其他自然语言处理(NLP) 使命。它涉及各种技能和步伐,从文本文档中去除噪声、差别等和不相干信息,使数据更适合文本分析、情绪分析、文本分类和呆板学习等下游使命。
文本洗濯的主要目标是什么?


  • 数据质量改进:文本数据通常包含错误、差别等和不相干的内容。清理有助于确保数据精确、可靠和同等。
  • 降噪:文本数据中的噪声可能包罗特别字符、HTML 标签、标点符号和其他对分析或建模目标无益的元素。干净可以消除或淘汰这种噪音。
  • 标准化:文本洗濯通常包罗标准化文本,例如将所有文本转换为小写,以确保同等性并防止与案例相干的题目影响分析或建模。
  • 标记化:标记化是文本洗濯的关键部分。它涉及将文本分解为单独的单词或标记,从而使分析或处理文本数据变得更加轻易。
  • 停用词删除:停用词是诸如“the”、“and”或“in”之类的常见单词,在文本洗濯过程中经常被删除,因为它们对许多使命来说没有重要意义。
  • 词干提取和词形还原:这些技能将单词简化为其词根形式,有助于对相似的单词进行分组。词干提取和词形还原对于文本分析使命特别有用,其中单词变体应被视为同一个单词。
  • 处理缺失数据:文本数据可能包含缺失值或不完整的句子。文本洗濯可能涉及填充缺失数据或办理不完整文本的策略。
  • 重复数据删除:删除重复或靠近重复的文本条目对于确保数据完整性并防止分析或建模中的毛病至关重要。
  • 处理嘈杂的文本:嘈杂的文本数据可能包罗拼写错误、缩写或非标准语言用法。文本洗濯策略有助于减轻此类噪音的影响。
文本洗濯是任何文本分析或 NLP 项目中的关键步调。洗濯后的文本数据的质量直接影响后续分析或建模使命的精确性和有用性。因此,明白和应用适当的文本洗濯技能对于从文本数据中获取有意义的见解至关重要。
(一)常用文本洗濯方法

1.去除无用的符号

使用正则匹配re去除文本中的无用符号:
  1. import re
  2. def clean_txt_1(sentence):
  3.     remove_chars = '[·’!"\#$%&\'()#!()*+,-./:;<=>?\@,:?¥★、….>【】[]《》?“”‘’\[\\]^_`{|}~]+'
  4.     string = re.sub(remove_chars, "", sentence)
  5.     return string
  6. if __name__ == '__main__':
  7.     print('********************测试clean_text_1****************************')
  8.     test_txt = '#【郭美美申请低保,居然获准通过!】郭美美对记者说,她其实就是一个失业人员,并不是大家想象的那样。她还说:她已经向政府申请了低保,目前已经获批。'
  9.     test_txt_clean = clean_txt_1(test_txt)
  10.     print('原文本:', test_txt)
  11.     print('处理后文本:', test_txt_clean)
复制代码
  1. 原文本: #【郭美美申请低保,居然获准通过!】郭美美对记者说,她其实就是一个失业人员,并不是大家想象的那样。她还说:她已经向政府申请了低保,目前已经获批。
  2. 处理后文本: 郭美美申请低保居然获准通过郭美美对记者说她其实就是一个失业人员并不是大家想象的那样。她还说她已经向政府申请了低保目前已经获批。
复制代码
还有一种方法是使用replace()这个方法也可以去掉所有不需要的符号或者把文本中的某些字符串更换:
  1. import re
  2. def clean_txt_2(txt):  # 定义函数
  3.     # 删除所有空格
  4.     result = txt.replace(' ', '')  # 去掉文本中的空格
  5.     return result
  6. if __name__ == '__main__':
  7.     print('********************测试clean_text_2****************************')
  8.     contents = ' 【郭美  美申请低保,居然获准 通过!  】   !'
  9.     print('原文本:' + contents)
  10.     result = clean_txt_2(contents)
  11.     print('处理后文本:', result)
复制代码
  1. 原文本:【郭美 美申请低保,居然获准 通过! 】 !
  2. 处理后文本:【郭美美申请低保,居然获准通过!】!
复制代码
  1. import re
  2. def clean_txt_3(txt):
  3.     # 替换指定字符串,把省略号转为句号
  4.     result = txt.replace('...', '。')  # 去掉文本中的空格
  5.     return result
  6. if __name__ == '__main__':
  7.         print('********************测试clean_text_3****************************')
  8.     contents = '郭美美申请低保,居然获准通过...'
  9.     print('原文本:' + contents)
  10.     result = clean_txt_3(contents)
  11.     print('处理后文本:', result)
复制代码
  1. 原文本:郭美美申请低保,居然获准通过…
  2. 处理后文本:郭美美申请低保,居然获准通过。
复制代码
2.去除心情符号

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

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)


if __name__ == '__main__':
    text = '郭美美申请低保,居然获准通过!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表