python利用jieba进行切词 词频统计 两种写法 用于绘制词云图

也可以用使用jieba_fast优化切词速度 jieba_fast介绍
import jieba_fast as jieba

import jieba
from collections import Counter
import pandas as pd 
import re
 
import warnings
warnings.filterwarnings('ignore')
"""
	df:Dataframe格式数据
	df['content']:要进行词云统计的那列文本名称
"""
def cipin(df):
    cut_words=""
    for i in range(len(df)):
        df['content'][i] = re.sub("[A-Za-z0-9\:\·\—\,\。\“ \”\#\\u200b\&,\_\.]", "", df['content'][i])
        seg_list=jieba.cut(df['content'][i],cut_all=False)
        cut_words+=(" ".join(seg_list))
    df = 0
    all_words=cut_words.split()
    c=Counter()
    for x in all_words:
        if len(x)>1 and x != '\r\n':
            c[x] += 1
    data = pd.DataFrame([])
    for (k,v) in c.most_common(500):# 输出词频最高的前500个词
        data = data.append(pd.DataFrame({"key_word":[k], "count":[v]}), ignore_index=True)
    print(display(data.head(5)))
    return data

结果
在这里插入图片描述
另外一种超简洁的写法

import pandas as pd
import jieba

def cal_word_freq(texts):
    words = []
    for text in texts:
        words.extend(list(jieba.cut(text)))
    return pd.Series(words).value_counts()

但是缺点是数据基本没有预处理,所以效果不太理想,请自行探索

示例

sents = ["""抱一抱就当作从没有在一起
好不好要解释都已经来不及
算了吧我付出过什么没关系
我忽略自己就因为遇见你
没办法好可怕那个我不像话
一直奋不顾身是我太傻
"""]

cal_word_freq(sents)

结果
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据闲逛人

谢谢大嘎喔~ 开心就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值