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

求解: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 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料