第2关:文本数据预处理—-去停用词及数值

任务描述

本关任务:读取停用词文件‘stop_words.txt’,对分词后的训练集和测试集文本去掉停用词及数值,并对分词后的整合。

相关知识

为了完成本关任务,你需要掌握:1.加载停用词;2.明确停用词的定义以及用法;3整合分词后的文本数据。

去停用词

停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词),分词之后有很多无用字符、或一些助词包括语气助词、副词、介词、连接词等,通常自身 并无明确的意义,只有将其放入一个完整的句子中才有一定作用,如常见的“的”、“在”之类等等,这些都需去掉。 示例如下:

 
  1. #定义停用词的函数
  2. def rm_stop_words(word_list):
  3. stop_word=stl('stop_words.txt')
  4. for i in range(word_list.__len__())[::-1]:
  5. if word_list[i] in stop_word:
  6. word_list.pop(i)
  7. elif word_list[i].isdigit():#去数值
  8. word_list.pop(i)
  9. return word_list
整合分词后的数据

对每条标题,变成字符串,词之间用空格分开,即是整合后的结果。

 
  1. trainX_txt=[]#整合后的训练数据
  2. testX_txt=[]#整合后的测试数据
  3. for i in range(len(r0)):
  4. t=rm_stop_words(r0[i])
  5. text=str()
  6. for k in range(len(t)-1):
  7. text=text+t[k]+ ' '
  8. text=text+t[len(t)-1]
  9. trainX_txt.append(text)
  10. for i in range(len(r2)):
  11. t=rm_stop_words(r2[i])
  12. text=str()
  13. for k in range(len(t)-1):
  14. text=text+t[k]+ ' '
  15. text=text+t[len(t)-1]
  16. testX_txt.append(text)

编程要求

根据提示,在右侧编辑器补充代码,利用这些停用词,对文本数据清理。

测试说明

平台会对你编写的代码进行测试:


开始你的任务吧,祝你成功!

# -*- coding: utf-8 -*-
#读取停用词文件“stop_words.txt”,该文件为单列无表头的文件
#对上一关获得的分词后的训练集trainX_txt和测试集testX_txt,
#去掉停用词和数值,同时对每条标题(词列表),变成字符串(词之间用空格分开),
# 最后返回结果,同时也返回上一关的Y值(r[1])
#定义停用词的函数
def rm_stop_words(word_list):
    stop_word=open('stop_words.txt', 'r').read().splitlines()
    for i in range(len(word_list))[::-1]:
        if word_list[i] in stop_word:
            word_list.pop(i)
        elif word_list[i].isdigit():#去数值
            word_list.pop(i)
    return word_list
def return_values():
    import step10_1
    r=step10_1.return_values()
    trainX_txt=[]#整合后的训练数据
    testX_txt=[]#整合后的测试数据
    for i in range(len(r[0])):
        t=rm_stop_words(r[0][i])
        text=' '.join(t)
        trainX_txt.append(text)
    for i in range(len(r[2])):
        t=rm_stop_words(r[2][i])
        text=' '.join(t)
        testX_txt.append(text)

    return (trainX_txt,r[1],testX_txt)

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python是一种强大而流行的编程语言,广泛用于数据处理和文本分析。英文文本预处理是指在对英文文本进行分析之前对其进行必要的处理和清洗。以下是用Python进行英文文本预处理的一些常见步骤: 1. 去除标点符号:使用Python中的正则表达式或字符串处理函数,去除文本中的标点符号,例如逗号、句号等。这可以避免标点符号对后续分析和处理的干扰。 2. 分词:英文文本通常通过空格来区分单词,因此可以使用Python中的split()函数或第三方库(如NLTK)来将文本分割成单个单词。这一步骤很重要,因为在后续的文本分析中,单词是最基本的处理单位。 3. 去除停用词停用词是指在文本分析中不被考虑的常见单词,如"the"、"is"等。Python的NLTK库提供了一个预定义的停用词列表,可以使用它来去除文本中的停用词。 4. 文本转小写:统一将文本转换为小写字母形式,这样可以避免针对大小写进行不必要的区分分析。 5. 词干提取:将单词还原为其原始形式,例如将"running"还原为"run"。Python的NLTK库提供了一些词干提取的方法,如Porter词干提取器。 6. 词袋模型:将文本转换为数值表示,用于后续的机器学习和文本分析。一种常见的方法是使用词袋模型,将每个文本表示为单词的频率向量。Python的Scikit-learn库提供了TF-IDF向量化器,可以实现这一功能。 以上是对英文文本预处理的一些常见步骤,可以根据具体需求和任务进行适当的调整和拓展。Python提供了丰富的文本处理工具和库,使得英文文本预处理变得更加高效和便捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coralberry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值