鱼C论坛

 找回密码
 立即注册
查看: 1241|回复: 7

Python统计本地某个文件中所有单词词频

[复制链接]
发表于 2018-11-13 09:42:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,本地电脑的某个pdf文件,求一段代码统计出所有单词出现的词频,或者前100个,谢谢了...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-13 10:22:51 | 显示全部楼层
你可以先安装一下读取pdf的库,然后接下来就可以简单的统计了。
建议:
pip install pdfminer3k
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-13 10:26:13 | 显示全部楼层
这是我参考别人的读取pdf内容的函数,给你参考一下,希望有帮助。
  1. # 读取pdf的函数,返回内容
  2. def readPdf(pdf_file):
  3.     rsrcmgr = PDFResourceManager()
  4.     retstr = StringIO()
  5.     laparams = LAParams()
  6.     device = TextConverter(rsrcmgr=rsrcmgr, outfp=retstr, laparams=laparams)
  7.     process_pdf(rsrcmgr=rsrcmgr, device=device, fp=pdf_file)
  8.     device.close()
  9.     content = retstr.getvalue()
  10.     retstr.close()
  11.     return content
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-13 12:26:42 | 显示全部楼层
喜欢吃菠菜 发表于 2018-11-13 10:26
这是我参考别人的读取pdf内容的函数,给你参考一下,希望有帮助。

额其实我是想问怎么写统计词频的code啦,输出是单词加频数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-13 14:38:15 | 显示全部楼层
  1. from pdfminer.pdfinterp import PDFResourceManager,process_pdf
  2. from pdfminer.converter import TextConverter
  3. from pdfminer.layout import LAParams
  4. from io import StringIO
  5. from io import open
  6. # 读取pdf的函数,返回内容
  7. def readPdf(pdf_file):
  8.     rsrcmgr = PDFResourceManager()
  9.     retstr = StringIO()
  10.     laparams = LAParams()
  11.     device = TextConverter(rsrcmgr=rsrcmgr, outfp=retstr, laparams=laparams)
  12.     process_pdf(rsrcmgr=rsrcmgr, device=device, fp=pdf_file)
  13.     device.close()
  14.     content = retstr.getvalue()
  15.     retstr.close()
  16.     return content

  17. if __name__=='__main__':
  18.     pdffile=open(r'c:\temp\ilovethisgame.pdf','rb')
  19.     s=readPdf(pdffile)
  20.     import re
  21.     from collections import Counter
  22.     pattern=re.compile(r'\w+',re.RegexFlag.I)
  23.     words=pattern.findall(s)
  24.     words_count=Counter(words)
  25.     print(words_count)
复制代码

把我的文件:c:\temp\ilovethisgame.pdf换成你自己的文件试试看。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-11-14 08:03:27 | 显示全部楼层
喜欢吃菠菜 发表于 2018-11-13 14:38
把我的文件:c:\temp\ilovethisgame.pdf换成你自己的文件试试看。

请问用的是哪版python,报错说pdfminer这个包没有
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-14 08:17:55 | 显示全部楼层
离别ai殇 发表于 2018-11-14 08:03
请问用的是哪版python,报错说pdfminer这个包没有

标准库是打不开pdf文件的,跟你说了要安装第三方库的。
在cmd命令行模式下:
pip install pdfminer3k
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-14 09:25:36 | 显示全部楼层
过来顶一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-5 22:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表