python计算机二级综合应用,词频统计,以及统计词频所在的句子。

问题描述:

python计算机二级综合应用,词频统计,以及统计词频所在的句子。

问题解答:

本人写的代码可能有点拙劣,可能不如准确答案简介,仅提供一种思路。

第一问:

#
# 请在此文件作答
#
import jieba
fi=open("data3.txt","r")
lines=fi.readlines()
d={}
for line in lines:
    line=jieba.lcut(line)
    for i in line:
        if len(i)>=2:
          d[i]=d.get(i,0)+1
ls=list(d.items())
ls.sort(key= lambda x:x[1],reverse=True)
for i in ls[:10]:
    print("{}:{}".format(i[0],i[1]))
fi.close()

第二问:关键点,我觉得先用句号分割,然后再用逗号分割比较好。

#
# 请在此文件作答
#
import jieba
fi=open("data3.txt","r")
fo=open("out.txt","w")
lines=fi.readlines()
d={}
for line in lines:
    line=line.strip()
    line=jieba.lcut(line)
    for i in line:
        if len(i)>=2:
          d[i]=d.get(i,0)+1
ls=list(d.items())
ls.sort(key= lambda x:x[1],reverse=True)
sss=ls[0][0]
lt=[]
for line in lines:
    line=line.strip()
    line=line.split("。")
    for i in line:
        i=i.split(",")
        lt.append(i)
for line in lt:
    for i in line:
        if sss in i:
            fo.write(i+"\n")

fi.close()
fo.close()

标准答案的第二问确实简洁一些,如下,他首先把逗号全部替换为句号,然后进行的分割,这样确实好了很多,不会出现列表中的元素仍为列表的情况。

#
# 请在此文件作答
#
import jieba
f = open('data3.txt')
fo = open('out.txt','w')
datas = f.read()
data1 = jieba.lcut(datas)
data2 = datas.replace(',','。')
data2 = data2.split('。')
d = {}
for i in data1:
    if len(i) >= 2:
        d[i] = d.get(i,0) + 1
ls = list(d.items())
ls.sort(key=lambda x:x[1],reverse=True)
for j in data2:
    if ls[0][0] in j:
        fo.write(j.strip('\n')+'\n')
f.close()
fo.close()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

神笔馬良

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

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

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

打赏作者

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

抵扣说明:

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

余额充值