weixin_52721993
weixin_52721993
2021-01-13 14:15
采纳率: 0%
浏览 220

python小白想请问一下怎样对一个txt文本进行停用词过滤(有停用词表)的代码应该如何编写,求教!

import matplotlib.pyplot as plt #数据可视化
import jieba #词语切割
import wordcloud #分词
from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS #词云,颜色生成器,停止词
import numpy as np #科学计算
from PIL import Image #处理图片


def ciyun():
    with open('夺冠.txt','r',encoding='gbk') as f:  #打开新的文本转码为gbk
        textfile= f.read()  #读取文本内容
    wordlist = jieba.lcut(textfile)#切割词语
    space_list = ' '.join(wordlist) #空格链接词语
    #print(space_list)
    backgroud = np.array(Image.open('6.jpg')) 

     
    wc = WordCloud(width=1400, height=2200,
            background_color='white',
            mode='RGB', 
			mask=backgroud, #添加蒙版,生成指定形状的词云,并且词云图的颜色可从蒙版里提取
			max_words=500,
            stopwords=STOPWORDS.add('我',),#内置的屏蔽词,并添加自己设置的词语
            font_path='C:\Windows\Fonts\msyh.ttc',
			max_font_size=400,
            min_font_size=25,
			relative_scaling=0.1, #设置字体大小与词频的关联程度
			random_state=50, 
			scale=2 
			).generate(space_list) 
			
    image_color = ImageColorGenerator(backgroud)#设置生成词云的颜色,如去掉这两行则字体为默认颜色
    wc.recolor(color_func=image_color)
    
    plt.imshow(wc) #显示词云
    plt.axis('off') #关闭x,y轴
    plt.show()#显示
    wc.to_file('test1_ciyun.jpg') #保存词云图

    
def main():
    ciyun()
 
if __name__ == '__main__':
    main()

这段代码可以运行但有些停用词无法过滤,请教各位大佬应该如何在这段代码中插入、编写过滤停用词表的代码。

过滤停用词表为cn_stopwords.txt

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • ykf173
    ykf173 2021-01-13 16:15

    提供个思路,code自己写:

    1.对文本进行中文分词,建议用jieba(0.4.0之后支持paddle分词,准确率更高,速度更慢)

    2.停用词放到列表中,循环判断,不在列表中的就不是停用词,可以写到新的列表中,或者删除当前文本中的停用词。

    3.列表转字符串就行了。

    小提示:有一些其他自己不想要的停用词,可以自己定义,放到停用词表中。

    点赞 2 评论
  • weixin_44037569
    今天加油鸭� 2021-05-27 20:29

    我有,今天刚写出来

    点赞 评论

相关推荐