标签 py 下的文章 - 云戈云
首页
关于
Search
1
油猴脚本,解锁CSDN VIP、超级VIP免费文章
401 阅读
2
大师兄影视 v3.3.8 1080P画质,极速点播,可缓存,解锁会员去广告纯净版
130 阅读
3
【引流必备】全平台全功能引流软件大全,解放双手自动引流【永久脚本+使用教程】
114 阅读
4
解密导出 微信 本地聊天记录 WechatBakTool v0.9.7.6
90 阅读
5
手机号码中间四位补齐工具
76 阅读
软件仓库
安卓端
电脑端
苹果端
开源软件
模块系列
root系列
教程教学
建站知识
逆向教程
技术教程
网络技术
技巧教程
游戏教程
网站源码
站长必备
卡网必备
主题免授
付费源码
易码源码
游戏源码
商业源码
网站插件
普通源码
付费项目
网赚课程
技术课程
Java系列
前端系列
引流必备
福利仓库
免费知识
脚本插件
油猴脚本
登录
/
注册
找到
3
篇与
py
相关的结果
2024-12-26
Python初步实现word2vec:从入门到实践
一、前言 word2vec的实现有多种方式,虽然C语言版本性能更好,但安装配置较为复杂。使用Python的gensim库可以快速实现word2vec模型,特别适合初学者。需要注意的是,gensim主要实现了skip-gram模型。 二、语料准备 首先需要准备分词后的文本文件,使用结巴分词处理原始文本: '''python import jieba def prepare_corpus(): f1 = open("fenci.txt") f2 = open("fenci_result.txt", 'a') lines = f1.readlines() # 读取全部内容 for line in lines: line = line.replace('\t', '').replace('\n', '').replace(' ', '') seg_list = jieba.cut(line, cut_all=False) f2.write(" ".join(seg_list)) f1.close() f2.close()''' 注意事项: 词与词之间必须用空格分隔 语料量要足够大(建议至少几千条文本) 示例使用了7000条新闻作为语料 三、模型训练 使用gensim的word2vec进行模型训练: '''python from gensim.models import word2vec import logging def train_word2vec(): # 设置日志 logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) # 加载语料 sentences = word2vec.Text8Corpus("fenci_result.txt") # 训练模型 model = word2vec.Word2Vec(sentences, vector_size=200) # vector_size 是词向量维度 return model''' 四、模型测试 '''python def test_model(model): # 1. 计算词语相似度 try: similarity = model.wv.similarity("国家", "国务院") print(f"【国家】和【国务院】的相似度为:{similarity}") except KeyError: print("词语不在词汇表中") # 2. 计算相关词列表 similar_words = model.wv.most_similar("控烟", topn=20) print("\n和【控烟】最相关的词有:") for word, score in similar_words: print(f"{word} {score}") # 3. 寻找对应关系 print("\n书-不错,质量-") result = model.wv.most_similar(positive=['质量', '不错'], negative=['书'], topn=3) for word, score in result: print(f"{word} {score}") # 4. 寻找不合群的词 odd_word = model.wv.doesnt_match("书 书籍 教材 很".split()) print(f"\n不合群的词:{odd_word}")''' 五、保存模型 '''python def save_model(model): # 保存模型 model.save("book_review.model") # 保存为C语言格式 model.wv.save_word2vec_format("book_review.model.bin", binary=True)''' 六、完整运行示例 '''python if name == "__main__": # 1. 准备语料 prepare_corpus() # 2. 训练模型 model = train_word2vec() # 3. 测试模型 test_model(model) # 4. 保存模型 save_model(model)''' 七、注意事项 语料大小:推荐使用大规模语料(GB级别),测试时至少需要几千条文本,语料太小会导致结果不准确。 参数设置: vector_size:词向量维度,一般设置100-300 window:上下文窗口大小,默认为5 min_count:最小词频,可以过滤低频词 八、模型加载 '''python 加载模型 model = word2vec.Word2Vec.load("book_review.model") 加载二进制格式 model = word2vec.Word2Vec.load_word2vec_format("book_review.model.bin", binary=True) ''' 九、运行结果示例 模型训练后可以进行多种词向量运算: 词语相似度计算 相关词查找 词语类比关系 异常词检测 具体输出示例: 国家和国务院的相似度:0.387 与"控烟"相关的词:禁烟(0.603)、防烟(0.585)等 不合群词检测:"很"在"书 书籍 教材 很"中最不相关
教程教学
技术教程
网络技术
# py
教主
一天前
0
32
0
2024-12-15
Python利用无头浏览器爬虫爬取笔趣阁小说教程
正文 前言 笔趣阁作为一个免费的小说阅读网站,其动态加载的内容为许多读者提供了便利。但由于反爬措施和JS生成的内容,传统的Python爬虫(如requests或BeautifulSoup)已经难以应对。本教程通过使用类似Selenium的无头浏览器——pyppeteer,实现笔趣阁小说的批量爬取并保存为Word文档的方法。 教程步骤 步骤1:下载安装Chromium 下载方式一:通过 Chromium官网下载 下载最新安装包。 安装完成后,确保能正确运行浏览器。 步骤2:确认Chromium安装路径 安装路径在代码中会用到。例如: C:\Users\AW\AppData\Local\Chromium\Application\chrome.exe 根据自己的系统用户调整路径。 步骤3:编写代码 爬虫代码使用了pyppeteer和python-docx两个主要库,需要提前安装: pip install pyppeteer python-docx 以下为完整代码示例: import asyncio import os from docx import Document from pyppeteer import launch # 禁用自动下载 Chromium os.environ["PYPPETEER_SKIP_CHROMIUM_DOWNLOAD"] = "true" async def main(): wordName = "小说1~3章.docx" netName = "https://www.22biqu.com" firstPagePath = "/biqu5251/5259122.html" endPagePath = "/biqu5251/5259124.html" catchUrl = netName + firstPagePath pageCount = 0 endFlag = False while True: try: doc = Document(wordName) except: doc = Document() browser = await launch(executablePath=r'C:\Users\AW\AppData\Local\Chromium\Application\chrome.exe', headless=True) page = await browser.newPage() await page.goto(catchUrl) title_element = await page.querySelector('h1.title') if title_element: title_text = await page.evaluate('(element) => element.innerText', title_element) doc.add_heading(title_text, level=1) content_element = await page.querySelector('#content') if content_element: paragraphs = await content_element.querySelectorAll('p') for p in paragraphs: text = await page.evaluate('(p) => p.innerText', p) doc.add_paragraph(text) next_url_element = await page.querySelector('#next_url') if next_url_element: next_url = await page.evaluate('(element) => element.getAttribute("href")', next_url_element) catchUrl = netName + next_url else: print("未找到下一页链接,结束爬取。") endFlag = True await browser.close() doc.save(wordName) if endFlag or catchUrl.endswith(endPagePath): break pageCount += 1 print(f"已完成页码:{pageCount}") asyncio.run(main()) 步骤4:参数设置与注意事项 文件名:wordName,建议以章节范围命名,例如小说1~3章.docx。 起始页与结束页路径:firstPagePath 和 endPagePath,根据小说章节的具体URL填写。 分段爬取:由于文档太大可能导致卡顿,建议每次爬取几章,分批保存。 步骤5:运行代码并开始爬取 完成参数设置后,运行代码开始爬取小说内容。如爬取《宿命之环》第1~5章,可按以下参数设置: python 复制代码 firstPagePath = "/biqu5251/5259122.html" endPagePath = "/biqu5251/5259126.html" 运行后,Word文档会自动保存小说内容,章节名作为标题。 步骤6:查看爬取结果 打开生成的Word文档,章节名已生成导航,可以点击快速定位到对应章节,阅读体验更加流畅! 结语 以上是幽络源基于Python无头浏览器爬虫的完整教程。如果需要更高效的方式,可以进一步优化为GUI程序(如使用PyQT)。希望本教程能为大家提供便捷的解决方案!
技术教程
# 教程
# py
# 技术
# 爬虫
# 笔趣阁
教主
12月15日
0
34
1
2024-12-12
matplotlib画混淆矩阵和正确率曲线
混淆矩阵 找不到参看的那篇博客啦~~希望原博主不要讨伐我 #!/usr/bin/python3.5 # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['FangSong'] #可显示中文字符 plt.rcParams['axes.unicode_minus']=False classes = ['a','b','c','d','e','f','g'] confusion_matrix = np.array([(99,1,2,2,0,0,6),(1,98,7,6,2,1,1),(0,0,86,0,0,2,0),(0,0,0,86,1,0,0),(0,0,0,1,94,1,0),(0,1,5,1,0,96,8),(0,0,0,4,3,0,85)],dtype=np.float64) plt.imshow(confusion_matrix, interpolation='nearest', cmap=plt.cm.Oranges) #按照像素显示出矩阵 plt.title('混淆矩阵') plt.colorbar() tick_marks = np.arange(len(classes)) plt.xticks(tick_marks, classes, rotation=-45) plt.yticks(tick_marks, classes) thresh = confusion_matrix.max() / 2. #iters = [[i,j] for i in range(len(classes)) for j in range((classes))] #ij配对,遍历矩阵迭代器 iters = np.reshape([[[i,j] for j in range(7)] for i in range(7)],(confusion_matrix.size,2)) for i, j in iters: plt.text(j, i, format(confusion_matrix[i, j]),fontsize=7) #显示对应的数字 plt.ylabel('真实类别') plt.xlabel('预测类别') plt.tight_layout() plt.show()正确率曲线 fig ,ax= plt.subplots() plt.plot(np.arange(iterations), fig_acc,'b') plt.plot(np.arange(iterations), fig_realacc, 'r') ax.set_xlabel('迭代次数') ax.set_ylabel('正确率(%)') labels = ["训练正确率", "测试正确率"] # labels = [l.get_label() for l in lns] plt.legend( labels, loc=7) plt.show()
教程教学
技术教程
# py
# 技术
教主
12月12日
0
26
0
易航博客