对爬取到的微博进行数据处理,jieba分词去停词,tf-idf关键词提取,LDA :主题模型

该博客介绍了如何处理从微博爬取的数据,涉及对CSV文件中某列内容的提取,使用jieba进行分词,去除停用词,然后通过TF-IDF算法提取关键词。最后,应用LDA进行主题建模,为后续分析做好准备。
摘要由CSDN通过智能技术生成

主要实现在csv文件里对某一列进行提取,对其进行分词,去停用词,使用TF-IDF :提取关键词等操作,并把处理好的数据放入到csv文件中去。方便接下来的操作。

# -*- coding:utf-8 -*-
import jieba
import numpy as np
import pandas as pd
fileee="D:\PycharmProjects2020\qingganfenlei\data\weibo1.csv"
# 读取txt列
df = pd.read_csv(fileee,usecols=['name1','txt'],encoding='gbk')
# print(df)
df.dropna(axis=0,subset = ["txt"])   # 丢弃txt这列中有缺失值的行
# print(df.head(3))
# print(df.shape)

# 提取txt这一列进行结巴分词,然后把分号的放进content_S这个列表
txt = df.txt.values.tolist()
name=df.name1.values.tolist()
# print (txt[1])
content_S = []
for line in txt:
    current_segment = jieba.lcut(line)#直接生成一列jieba.lcut 直接生成的就是一个list
    if len(current_segment) > 1 and current_segment != '\r\n': #换行符
        content_S.append(current_segment)
# print(content_S[0])
#把content_S做成一列 起名字
df_content=pd.DataFrame({
   'content_S':content_S})

# print(df_content.head())
#加载停用词表
stopwords=pd.read_csv("data/结巴stopwords.txt", index_col
  • 6
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的处理和建立情绪分类模型的Python代码及注释: # 导入所需的库 import pandas as pd # 用于数据处理和存储 import jieba # 用于中文分词 import nltk # 用于英文分词 from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer # 用于文本向量化 from sklearn.decomposition import LatentDirichletAllocation # 用于LDA主题建模 from sklearn.model_selection import train_test_split # 用于划分训练集和测试集 from sklearn.naive_bayes import MultinomialNB # 用于朴素贝叶斯分类 from sklearn.metrics import accuracy_score, confusion_matrix # 用于模型评估 # 读取数据 data = pd.read_excel('情绪分类数据.xlsx') # 数据预处理:去除无用列,重命名标签列,缺失值处理等 data = data.drop(columns=['微博ID', '用户昵称', '发布时间']) data = data.rename(columns={'情感倾向': 'label'}) data = data.dropna() # 分词操作:中文使用jieba库,英文使用nltk库 def tokenizer(text): if isinstance(text, str): # 判断是否为字符串类型 words = jieba.cut(text) # 中文分词 return ' '.join(words) else: words = nltk.word_tokenize(text) # 英文分词 return ' '.join(words) data['text'] = data['text'].apply(tokenizer) # 对文本列进行分词操作 # 特征向量化:使用CountVectorizer、TfidfVectorizer等进行文本向量化 vectorizer = TfidfVectorizer(stop_words='english') # 初始化向量化器 X = vectorizer.fit_transform(data['text']) # 对文本进行向量化 y = data['label'] # 获取标签列 # LDA主题建模:使用LatentDirichletAllocation进行LDA主题建模,并提取主题特征 lda = LatentDirichletAllocation(n_components=5, random_state=42) # 初始化LDA模型 lda.fit(X) # 训练LDA模型 topic_feature = lda.transform(X) # 提取主题特征 # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(topic_feature, y, test_size=0.2, random_state=42) # 建立朴素贝叶斯分类模型 nb = MultinomialNB() # 初始化朴素贝叶斯分类器 nb.fit(X_train, y_train) # 训练朴素贝叶斯模型 y_pred = nb.predict(X_test) # 预测测试集标签 # 模型评估:使用accuracy_score、confusion_matrix等进行模型评估 accuracy = accuracy_score(y_test, y_pred) # 计算分类准确率 cm = confusion_matrix(y_test, y_pred) # 计算混淆矩阵 print('模型准确率:', accuracy) print('混淆矩阵:\n', cm)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值