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

求解: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日

悬赏问题

  • ¥70 刚刚看到一个人的网站居然是通过cname访问的
  • ¥15 Attributeerror:super object has no attribute '__sklearn_tags__'_'
  • ¥15 逆置单链表输出不完整
  • ¥15 宇视vms-B200-A16@R启动不了,如下图所示,在软件工具搜不到,如何解决?(操作系统-linux)
  • ¥500 寻找一名电子工程师完成pcb主板设计(拒绝AI生成式答案)
  • ¥15 关于#mysql#的问题:UNION ALL(相关搜索:sql语句)
  • ¥15 matlab二位可视化能否针对不同数值范围分开分级?
  • ¥15 已经创建了模拟器但是不能用来运行app 怎么办😭自己搞两天了
  • ¥15 关于#极限编程#的问题,请各位专家解答!
  • ¥20 win11账户锁定时间设为0无法登录