pandas 处理csv文本文档,完成分词、去停用词功能

此篇博客仅以此来记录,pandas操作

由于很久没有进行数据分析方面的操作了很多的常用的东西都忘记了,因此记录一下此部分内容:

filepath = r'C:\soft\Anaconda3\emergency_frame1.csv'

import pandas as pd

data = pd.read_csv(open(filepath, encoding='utf8'), sep=',')
data.head()

显示前5条,看看是否能够正确读取csv,文件,

 此处的目的,将title和dep列的内容,整合成一篇完成的文档,并对组合后的内容进行切词,去停用词,每一篇进行换行

data_title_dep = data[["Etitle", "Edep"]].copy()#复制到新的地址,不破坏原始数据
data_title_dep["title_dep"] = data_title_dep["Etitle"]+data_title_dep["Edep"]
data_title_dep.head()

接下来即是对第三列数据进行切词,去停用词,那么我们要获取到列的内容,才可以进行。

import jieba

for row in data_title_dep.iterrows():
    print(row)

在这里如果直接操作row["Etitle"],选中这一列进行处理会报错,

import jieba
# data.loc[:, ['Etitle', 'Edep']]
output = open("res_dep.txt", "w", encoding='utf8')
stopwords_path = r"C:\Users\dataset_emergency\emergency_res\StopwordsCN.txt"

stop_list = []
with open(stopwords_path, "r", encoding="utf-8") as f:
    for line in f.readlines():
        stop_list.append(line.replace("  \n", ""))
        
# count = 0
for index, row in data_title_dep.iterrows():
    words = jieba.cut(row['Edep'])
    for word in words:
        # print(word)
        if word not in stop_list:
            output.write(word + " ")
        else:
            print(word)
    output.write('\n')
    count += 1
    if count == 5:
        output.close()
        break

上处是先处理5条数据,看看是否能够获取到正确的结果,打印出的word

打开文件,可以看到相应列已经正确被切分,每一条文本,代表一篇文档数据;

 

处理数据成功,接下来可以做一些机器学习的任务了,比如,聚类、分类、情感分析等。文本处理是NLP任务中的基础任务,

前期的处理很是重要!

  • 14
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
好的,对于中文文本的处理,我们需要使用不同的自然语言处理库和停用词表。具体的步骤如下: 1. 首先,需要安装Python的一些常用自然语言处理库,比如jieba和pandas。您可以使用如下命令进行安装: ``` pip install jieba pandas ``` 2. 安装完成后,需要下载中文停用词表。您可以从GitHub上下载jieba库自带的停用词表,也可以使用其他的中文停用词表。下载jieba库自带的停用词表的方法如下: ``` import jieba jieba.download_test() ``` 上述命令会下载jieba库自带的停用词表。 3. 接下来,需要编写Python代码来实现对文件夹中的所有中文txt文档进行去停用词。具体的代码如下: ``` import os import jieba import pandas as pd # 加载中文停用词表 stop_words = pd.read_csv('stopwords.txt', sep='\t', header=None, names=['stopword'], index_col=False, encoding='utf-8') # 定义函数,对单个txt文件进行去停用词 def remove_stopwords(file_path): with open(file_path, 'r', encoding='utf-8') as f: text = f.read() # 使用jieba进行分词 words = jieba.cut(text) # 去除停用词 filtered_words = [word for word in words if word not in set(stop_words['stopword'])] # 返回去停用词后的文本 return ' '.join(filtered_words) # 定义函数,对文件夹中的所有txt文件进行去停用词 def remove_stopwords_folder(folder_path): for file_name in os.listdir(folder_path): if file_name.endswith('.txt'): file_path = os.path.join(folder_path, file_name) filtered_text = remove_stopwords(file_path) # 将去停用词后的文本保存回原文件 with open(file_path, 'w', encoding='utf-8') as f: f.write(filtered_text) # 调用函数,对指定文件夹中的所有txt文件进行去停用词 remove_stopwords_folder('path/to/folder') ``` 在上述代码中,我们首先加载了中文停用词表,并定义了两个函数。`remove_stopwords`函数用于对单个txt文件进行去停用词操作,它使用jieba进行分词,并去除停用词。`remove_stopwords_folder`函数则用于对指定文件夹中的所有txt文件进行去停用词操作,它遍历文件夹中的所有txt文件,并调用`remove_stopwords`函数对每个文件进行处理,最后将去停用词后的文本保存回原文件。 需要注意的是,上述代码中的`'path/to/folder'`应该替换为您实际的文件夹路径,而`stopwords.txt`应该替换为您实际的中文停用词表路径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值