对文件中语句使用jieba分词后再进行词典编码

  • Post author:
  • Post category:其他


使用软件:pycharm,jupyter

安装的库:

pandas,jieba


例如我们需要对wps或者excel表格的第一列进行如题目的要求,以下则是代码

import pandas as pd
import jieba
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics import accuracy_score

# 读取excel文件
file_path = "你自己的文件路径"
# df = pd.read_csv(file_path,encoding="gbk")
df = pd.read_csv(file_path)#由于文件编码问题这里我们需要将其统一
def my_lcut(x):
    x_new = str(x)
    x_new = jieba.lcut(x_new)
    return x_new
# 对第二列进行分词并编码
# df["new_col"] = df[df.columns[1]].apply(lambda x: jieba.lcut(x))
df["new_col"] = df[df.columns[1]].apply(my_lcut)

#apply() 函数应用于数据帧第二列中的每个值,lambda 函数用于将第二列中的每个值传递给 jieba.lcut() 函数。
word2id = {word: idx for idx, word in enumerate(set([i for sublist in df["new_col"] for i in sublist]))}
#创建一个名为“word2id”的字典,其中键是数据帧“df”的“new_col”列中的单词,值是相应的索引。集合推导用于提取“new_col”列中的所有唯一单词,
# enumerate() 函数用于为每个从 0 开始的唯一单词分配索引。生成的字典允许将“new_col”列中的每个单词映射到唯一索引
df["new_col"] = df["new_col"].apply(lambda x: [word2id[i] for i in x])
#最后将 lambda 函数应用于 “new_col” 列的每个元素,该函数将列表中的每个单词映射到 “word2id” 字典中的相应索引。


# 将处理后的数据写入新的excel文件
df.to_csv("new_train.csv",index=False)

这样即可完成需求



版权声明:本文为qq_63840285原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。