如何统计文本长度和句子长度累积函数

做文本挖掘分词的时候很多的时候,都需要统计一下文本的长度,之前自己做的时候很头疼,画的头疼。

今天看到了一个新的绘图方法很好,记录一下。

import pandas as pd
import matplotlib.pyplot as plt
from itertools import accumulate

查看数据

在这里插入图片描述

# 统计句子长度及长度出现的频数
df = pd.read_csv('./data_single.csv')
print(df.groupby('label')['label'].count())

在这里插入图片描述

#  统计样本长度
df['length'] = df['evaluation'].apply(lambda x: len(x))
len_df = df.groupby('length').count()
sent_length = len_df.index.tolist()
sent_freq = len_df['evaluation'].tolist()
plt.rcParams['font.sans-serif']=['SimHei'] #图中文字体设置为黑体
# 绘制句子长度及出现频数统计图
plt.figure(figsize=(10,12))
plt.bar(sent_length, sent_freq,2)
plt.title("句子长度及出现频数统计图", )
plt.xlabel("句子长度")
plt.ylabel("句子长度出现的频数")
plt.savefig("./句子长度及出现频数统计图.png")
plt.show

在这里插入图片描述

绘制长度累积函数

#绘制句子长度累积分布函数(CDF)
sent_pentage_list = [(count/sum(sent_freq)) for count in accumulate(sent_freq)]
plt.figure(figsize=(10,12))
# 绘制CDF
plt.plot(sent_length, sent_pentage_list)

# 寻找分位点为quantile的句子长度
quantile = 0.90

for length, per in zip(sent_length, sent_pentage_list):
    if round(per, 2) == quantile:
        index = length
        break
print("\n分位点为%s的句子长度:%d." % (quantile, index))

# 绘制句子长度累积分布函数图

plt.plot(sent_length, sent_pentage_list,linewidth=4)
plt.hlines(quantile, 0, index, colors="c", linestyles="dashed",linewidth=4)
plt.vlines(index, 0, quantile, colors="c", linestyles="dashed",linewidth=4)
plt.text(0, quantile, str(quantile),fontsize=10)
plt.text(index, 0, str(index))
plt.title("句子长度累积分布函数图",fontsize=20)
plt.xlabel("句子长度",fontsize=15)
plt.ylabel("句子长度累积频率",fontsize=15)
plt.savefig("./句子长度累积分布函数图.png")
plt.show

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

驭风少年君

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值