smuuucwy 2022-09-06 16:46 采纳率: 100%
浏览 41
已结题

求解:Python主题模型停用词过滤失效

对微博文本进行LDA模型分析,但出来的关键词结果中总是包含停用词。

附上前期预处理部分的代码,可以请老哥们指导一下哪里出现问题了吗?万分感谢!

import os
import pandas as pd
import re
import jieba
import jieba.posseg as psg


####### 预处理

output_path = '/Users/mac/Desktop/pycharm/lda/result' 
file_path = '/Users/mac/Desktop/pycharm/lda/data' 
os.chdir(file_path)
data = pd.read_excel("data.xlsx")  
os.chdir(output_path)
dic_file = "/Users/mac/Desktop/pycharm/lda/dict.txt" 
stop_file = "/Users/mac/Desktop/pycharm/lda/stop_dic/stopwords.txt" 

def chinese_word_cut(mytext):
    jieba.load_userdict(dic_file) 
    jieba.initialize() 

    # 加载停用词词典
    try:
        stopword_list = open(stop_file, encoding='utf-8')
    except:
        stopword_list = []
        print("error in stop_file")
        
    stop_list = [] 
    flag_list = ['n', 'nz', 'vn'] 
    for line in stopword_list:
        line = re.sub(u' ', '', line)
        stop_list.append(line)
    word_list = []

    # jieba分词
    seg_list = psg.cut(mytext)
    for seg_word in seg_list:
        word = re.sub(u'[^\u4e00-\u9fa5]','',seg_word.word)  
        # word = seg_word.word 
        find = 0 
        for stop_word in stop_list:
            if stop_word == word or len(word) < 2:  
                find = 1
                break
        if find == 0:  # and seg_word.flag in flag_list 如英语文本,则需注释后半部分
            word_list.append(word) 
    return " ".join(word_list)

data["content_cutted"] = data.content.apply(chinese_word_cut)
运行结果及报错内容
Topic #0:
一个 这个 未来 元周 可能 就是 我们 自己 什么 世界
Topic #1:
市场 全球 科技 免税 游戏 股份 行业 零售 关注 集团
Topic #2:
可以 盲盒 游戏 社交 用户 现实 世界 元气 平台 使用
Topic #3:
国际 消费 首届 消费品 企业 全球 博览会 发展 品牌 参展
Topic #4:
频道 国际 海南省 旅游 官方 卫视 博览会 消费品 免税 微博
尝试过在停用词文档中重新添加,但并不可行,求问是读取代码出错了吗?
  • 写回答

1条回答 默认 最新

  • 於黾 2022-09-06 16:56
    关注

    直接整篇文章替换字符串,不要先分解成单个汉字
    你用文章里的单个汉字去跟词典进行比较,当然不一致了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月15日
  • 已采纳回答 9月7日
  • 修改了问题 9月6日
  • 创建了问题 9月6日

悬赏问题

  • ¥15 数据库获取信息反馈出错,直接查询了ref字段并且还使用了User文档的_id而不是自己的
  • ¥15 将安全信息用到以下对象时发生以下错误:c:dumpstack.log.tmp 另一个程序正在使用此文件,因此无法访问
  • ¥15 速度位置规划实现精确定位的问题
  • ¥15 代码问题:df = pd.read_excel('c:\User\18343\Desktop\wpsdata.xlxs')路径读不到
  • ¥15 为什么视频算法现在全是动作识别?
  • ¥15 编写一段matlab代码
  • ¥15 用Python做岩石类别鉴定软件
  • ¥15 关于调取、提交更新数据库记录的问题
  • ¥15 之前删了盘从下vs2022遇见这个问题 搞了一整天了
  • ¥15 从Freecad中宏下载的DesignSPHysics,出现如下问题是什么原因导致的(语言-python)