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

求解: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条回答 默认 最新

    报告相同问题?

    相关推荐 更多相似问题

    问题事件

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

    悬赏问题

    • ¥15 逆向基础题 第一次做 有很多不懂需要请教
    • ¥16 基于Python的数据库系统开发
    • ¥15 某企业对员工采用计件工资管理制度。通过编写程序,要达到以下目的
    • ¥15 关于C# 英文打字练习器程序设计
    • ¥15 wfp应用层设计规则如何能传递到内核层
    • ¥15 关于机器学习创新点几个问题
    • ¥15 python程序编写
    • ¥15 Type-C扩展坞的RTL8153地址硬改
    • ¥15 uniapp websocket 发送 sub 监听后,代码自动发送了 unsub ,解除了监听
    • ¥15 nativefier封装electron的应用遇到alert弹窗后input栏获取不到焦点,confirm不弹出的问题。