数据预处理一:文本分词并且去停用词代码

数据结构:搜狗数据集(最外层文件夹)\rightarrow类别(第二层文件夹,比如说 军事)\rightarrow10.txt(军事类别下面的一个文本文件)

import os
import jieba

# 保存文件的函数
def savefile(savepath, content):
    fp = open(savepath, 'w', encoding='ANSI',errors='ignore')
    fp.write(content)
    fp.close()

# 读取文件的函数
def readfile(path):
    fp = open(path, "r", encoding='ANSI', errors='ignore')
    content = fp.read()
    fp.close()
    return content

## 去除停用词的2个函数
# 创建停用词list
def stopwordslist(filepath):
    stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]
    return stopwords

# 对句子去除停用词
def movestopwords(sentence):
    s
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对问答数据集进行预处理是构建对话系统的重要步骤之一。下面是一个常见的预处理流程,包括文本清洗、分词和去除停用词。 1. 文本清洗: - 去除HTML标签、特殊字符和非字母数字字符。 - 将文本转换为小写字母形式,以便统一处理。 - 去除多余的空格和换行符。 2. 分词: - 使用中文分词库,如jieba分词库,对问答数据集中的句子进行分词。 - 对于英文数据集,可以使用空格或标点符号进行分词。 3. 去除停用词: - 创建一个停用词列表,包含常见的无实际意义的词语,如“的”,“了”,“是”等。 - 对于每个问题和回答,去除其中的停用词,以减少噪音并提高关键信息的重要性。 下面是一个示例代码,使用Python和jieba分词库进行文本清洗、分词停用词去除: ```python import jieba import re def preprocess_text(text): # 去除HTML标签和特殊字符 text = re.sub('<.*?>', '', text) text = re.sub('[^\w\s]', '', text) # 转换为小写字母形式 text = text.lower() # 去除多余的空格和换行符 text = re.sub('\s+', ' ', text) text = text.strip() return text def tokenize_text(text): # 使用jieba分词进行分词 tokens = jieba.lcut(text) return tokens def remove_stopwords(tokens, stopwords): # 去除停用词 filtered_tokens = [token for token in tokens if token not in stopwords] return filtered_tokens # 读取停用词列表 with open('stopwords.txt', 'r', encoding='utf-8') as f: stopwords = [line.strip() for line in f] # 示例文本 text = "这是一个示例文本,包含一些特殊字符和停用词。" # 文本预处理 cleaned_text = preprocess_text(text) # 分词 tokens = tokenize_text(cleaned_text) # 去除停用词 filtered_tokens = remove_stopwords(tokens, stopwords) print(filtered_tokens) ``` 请注意,以上代码只是一个简单的示例,实际的预处理过程可能需要根据具体需求进行更详细的处理。同时,在使用jieba分词库时,您可能需要根据具体情况进行自定义分词字典的加载和设置。希望这个示例能对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值