前言
本文主要介绍通过python实现数据聚类、脚本开发、办公自动化。读取voc数据,聚类voc数据。
一、业务逻辑
- 读取voc数据采集的数据
- 批处理,使用jieba进行分词,去除停用词,词频统计聚类
- 保存聚类后的数据写入到.txt文件中
二、具体产出
三、执行脚本
python learning.py
四、脚本
# VOC数据聚类
import pandas as pd
import jieba
import jieba.posseg as pseg
from collections import Counter
fileName = "100034532823" # sku
# 加载数据
df = pd.read_excel('clean/cleaned_voc'+fileName+'.xlsx')
# 创建一个 Counter 对象来存储词频统计结果
counter = Counter()
# 加载停用词
with open('stopwordsfull', 'r', encoding='utf-8',errors='replace') as f:
stopwords = [line.strip() for line in f.readlines()]
# print(stopwords)
# 加载自定义词典
jieba.load_userdict("luyouqi.txt") # luyouqi.txt is your custom dictionary
# 遍历每行评论
for line in df['cleaned_comments']:
# 将预处理和分词后的评论按空格拆分
words = str(line).split()
# 对每个词进行词性标注
for word in words:
# jieba 的词性标注需要一个完整的句子作为输入,因此我们需要将词语拼接回句子
sentence = ''.join(word)
# 使用 jieba 进行词性标注
words_and_tags = pseg.cut(sentence)
# 遍历标注结果
for word, tag in words_and_tags:
# 过滤出名词
if tag.startswith('n') and len(word) > 1 and word not in stopwords:
#if len(word) > 1 and word not in stopwords:
# 将名词添加到 counter 中
counter[word] += 1
# 获取词频最高的300个词
top300 = counter.most_common(2000)
# 写入到txt文件中
with open('learning/'+fileName+'名词top2000.txt', 'w') as f:
for word, freq in top300:
f.write(f"{word}\t{freq}\n")
五、关键文件
luyouqi.text 分词字典(片段)
2.4G
2.5G口
软路由
2.5G
WiFi
WiFi5
WiFi6
WiFi4
stopwordsfull 停用词(片段)
客户
层面
菜鸟
滑丝
换货
三思
固记
厂商
吸引力
体会