当前位置: 首页 > wzjs >正文

怎么查找一个网站开发时间网站设计有什么前景

怎么查找一个网站开发时间,网站设计有什么前景,开发网站过程,沧州纵横人才网本文将详细解析一段用于从 PDF 文件中提取文本,对文本进行处理、词频统计,过滤排除词,排序输出结果并生成词云的 Python 代码。 1. 导入必要的库 python import jieba import fitz from wordcloud import WordCloud import matplotlib.pypl…

本文将详细解析一段用于从 PDF 文件中提取文本,对文本进行处理、词频统计,过滤排除词,排序输出结果并生成词云的 Python 代码。

1. 导入必要的库

python

import jieba
import fitz
from wordcloud import WordCloud
import matplotlib.pyplot as plt

  • jieba:用于中文分词,将文本拆分成单个词语。
  • fitz:是 PyMuPDF 库的别名,用于读取 PDF 文件并提取文本。
  • WordCloud:用于生成词云图。
  • matplotlib.pyplot:用于展示生成的词云图。

2. 词云生成函数 createWordCloud

python

def createWordCloud(items):word_freq = {name: count for name, count in items}font_path = 'simhei.ttf'  # 按需修改字体路径wc = WordCloud(font_path=font_path,background_color='white',width=500,height=300,max_font_size=100,margin=1,relative_scaling=0.4,scale=3,prefer_horizontal=0.8)wordcloud = wc.generate_from_frequencies(word_freq)plt.imshow(wordcloud, interpolation='bilinear')plt.axis('off')plt.show()

  • 此函数接收一个元素为元组的列表 items,每个元组包含词语和其对应的词频。
  • 首先将 items 转换为字典 word_freq,键为词语,值为词频。
  • 接着创建 WordCloud 对象 wc,设置字体路径、背景颜色、宽度、高度等参数。
  • 调用 generate_from_frequencies 方法根据词频生成词云图。
  • 最后使用 matplotlib 展示词云图,同时关闭坐标轴显示。

3. 辅助排序函数 takeSecond

python

def takeSecond(elem):return elem[1]

此函数用于返回元素的第二个值,在后续排序操作中作为排序的依据。

4. PDF 文本提取函数 extract_text_from_pdf

python

def extract_text_from_pdf(path):doc = fitz.open(path)text = ""for page in doc:text += page.get_text()return text

  • 该函数接收 PDF 文件的路径 path 作为参数。
  • 使用 fitz.open 打开 PDF 文件,得到一个文档对象 doc
  • 遍历文档的每一页,使用 page.get_text 方法提取文本,并将其累加到字符串 text 中。
  • 最后返回提取的文本。

5. 文本处理与词频统计函数 process_text

python

def process_text(text):words = jieba.lcut(text)counts = {}# 角色名称合并role_mapping = {"宝玉": ["二爷","绛洞花主", "富贵闲人"],"黛玉": ["林姑娘", "颦儿", "林妹妹"],"宝钗": ["宝姐姐", "宝姑娘", "蘅芜君"],"熙凤": ["凤姐", "琏二奶奶", "凤辣子"],"贾母": ["老祖宗", "史太君"],"湘云": ["云妹妹", "枕霞旧友"]}# 使用字典推导式生成同义词映射synonym_map = {alias: role for role, aliases in role_mapping.items() for alias in aliases}for word in words:if len(word) == 1:continuerword = synonym_map.get(word, word)counts[rword] = counts.get(rword, 0) + 1return counts

  • 首先使用 jieba.lcut 对输入的文本 text 进行分词,得到词语列表 words
  • 创建一个空字典 counts 用于存储词频。
  • 定义一个 role_mapping 字典,用于将同义词映射到统一的名称。
  • 使用字典推导式生成 synonym_map,键为同义词,值为统一名称。
  • 遍历词语列表 words,过滤掉单个字符的词语。
  • 对于每个词语,通过 synonym_map 查找其统一名称 rword,若不存在则使用原词。
  • 更新 counts 字典中该词语的词频。
  • 最后返回词频统计结果。

6. 过滤排除词函数 filter_excluded_words

python

def filter_excluded_words(counts):file = open("excludes.txt", "r", encoding='utf-8')excludes = file.read().split(",")file.close  # 保持原始实现方式for word in excludes:if word in counts:del counts[word]

  • 此函数接收词频统计结果 counts 作为参数。
  • 打开 excludes.txt 文件,读取其中的排除词,以中文逗号分割成列表 excludes
  • 遍历 excludes 列表,若某个排除词存在于 counts 字典中,则将其删除。

7. 排序并输出结果函数 sort_and_print_results

python

def sort_and_print_results(counts, top_n=36):items = list(counts.items())items.sort(key=takeSecond, reverse=True)print("频率TOP{}词汇:".format(top_n))for i in range(top_n):item = items[i]print("{0:<10}{1:>5}".format(item[0], item[1]))return items[:top_n]

  • 该函数接收词频统计结果 counts 和要输出的前 top_n 个词语(默认为 36)作为参数。
  • 将 counts 字典转换为元素为元组的列表 items
  • 使用 sort 方法对 items 列表进行排序,排序依据为每个元组的第二个元素(词频),并按降序排列。
  • 打印前 top_n 个词语及其词频。
  • 最后返回前 top_n 个词语及其词频的列表。

8. 主流程函数 main

python

def main():path = '红楼梦.pdf'text = extract_text_from_pdf(path)counts = process_text(text)filter_excluded_words(counts)top_items = sort_and_print_results(counts)createWordCloud(top_items)if __name__ == "__main__":main()

  • 定义 PDF 文件的路径 path
  • 调用 extract_text_from_pdf 函数提取 PDF 文本。
  • 调用 process_text 函数对文本进行处理并统计词频。
  • 调用 filter_excluded_words 函数过滤排除词。
  • 调用 sort_and_print_results 函数排序并输出前 top_n 个词语及其词频。
  • 调用 createWordCloud 函数生成并展示词云图。

通过以上核心代码,我们可以从 PDF 文件中提取文本,进行一系列处理后生成词云图,直观地展示文本中高频词汇的分布情况。

最后输出:

频率TOP36词汇:
宝玉         4129
贾母         2278
熙凤         1150
王夫人        1016
黛玉          834
贾琏          679
宝钗          667
袭人          607
平儿          590
凤姐儿         436
薛姨妈         433
探春          424
鸳鸯          419
贾政          361
晴雯          331
湘云          331
贾珍          292
刘姥姥         278
紫鹃          278
邢夫人         267
香菱          265
尤氏          238
林黛玉         204
薛蟠          190
贾赦          184
周瑞家         162
贾蓉          151
贾芸          145
迎春          143
林之孝         138
雨村          136
大爷          130
赵姨娘         128
贾环          103
金桂           96
芳官           94

完整代码下载地址:https://download.csdn.net/download/u011321546/90705070

http://www.dtcms.com/wzjs/543078.html

相关文章:

  • 潘多拉固件建设网站好的摄影网站推荐
  • 北京社交网站建设网站首页关键如何优化
  • opencms做网站 谁优质的seo网站排名优化软件
  • 做网站需要画原型图么泰州网站建设制作工作室
  • 网站运营 策划 推广 维护新手如何做网站维护
  • 甘肃网站建设推广手机建网站 优帮云
  • 厦门网页设计培训班深圳推广优化公司
  • 古蔺网站建设漳州做网站含博大选
  • 旅游类网站做百度竞价沈阳造价信息网官网
  • 网站开发用px好还是em好江苏华江建设集团网站
  • 如何 做镜像网站个人备案做分站的网站吗
  • 深入网站开发和运维 pdf做网站用到的技术
  • 我要在58上面做网站上海专业网站建设信息
  • 吉安工商注册官方网站外贸seo是什么意思啊
  • 企业门户定制网站建设公司东莞厚街做网站
  • 为什么要立刻做网站南京安居建设集团网站
  • 福田企业网站推广公司广州seo排名
  • 深圳网站开发设计wordpress带支付功能主题
  • 网站做外国生意如何开发微信网站
  • 没有网站也可以做外贸吗零陵做网站
  • 徐州哪家做网站好网店推广常用的方法
  • 自己想做个网站怎么做的饰品行业网站开发
  • 网站设计网站机构wordpress分享到微博才能看到
  • 做平面设计的网站有哪些wordpress标签说明
  • 海淘网站建设的目的邢台网站设计哪家好
  • 站长之家 站长工具WordPress 调整语言
  • 兰州哪有建设网站的写软文赚钱的平台都有哪些
  • 网站建设的课件17素材网下载
  • 个人手机版网站建设技能培训网站
  • 西城专业网站建设公司邻水网站建设