分类 技术教程 下的文章 - 云戈云
首页
关于
Search
1
油猴脚本,解锁CSDN VIP、超级VIP免费文章
352 阅读
2
大师兄影视 v3.3.8 1080P画质,极速点播,可缓存,解锁会员去广告纯净版
125 阅读
3
【引流必备】全平台全功能引流软件大全,解放双手自动引流【永久脚本+使用教程】
111 阅读
4
解密导出 微信 本地聊天记录 WechatBakTool v0.9.7.6
87 阅读
5
微信QQ照片视频语音恢复工具 - 破解VIP版,轻松找回丢失数据!
73 阅读
软件仓库
安卓端
电脑端
苹果端
开源软件
模块系列
root系列
教程教学
建站知识
逆向教程
技术教程
网络技术
技巧教程
游戏教程
网站源码
站长必备
卡网必备
主题免授
付费源码
易码源码
游戏源码
商业源码
网站插件
普通源码
付费项目
网赚课程
技术课程
Java系列
前端系列
引流必备
福利仓库
免费知识
脚本插件
油猴脚本
登录
/
注册
找到
4
篇与
技术教程
相关的结果
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(u"fenci_result.txt") # 训练模型 model = word2vec.Word2Vec(sentences, size=200) # size是词向量维度 return model def test_model(模型): # 1。计算词语相似度 try: similarity = model.similarity(u“国家”, u“国务院”) print(f“【国家】和【国务院】的相似度为:{similarity}”) except KeyError: print(“词语不在词汇表中”) 定义 # 2. 计算相关词列表 similar_words = model.most_similar(u"控烟", topn=20) print("\n和【控烟】最相关的词有:") for word, score in similar_words: print(f"{word} {score}") # 3. 寻找对应关系 print("\n书-不错,质量-") result = model.most_similar([u'质量', u'不错'], [u'书'], topn=3) for word, score in result: print(f"{word} {score}") # 4. 寻找不合群的词 odd_word = model.doesnt_match(u"书 书籍 教材 很".split()) print(f"\n不合群的词:{odd_word}") def save_model(model): # 保存模型 model.save(u“book_review.model”) 定义 # 保存为C语言格式 model.save_word2vec_format(u"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级别) 测试时至少需要几千条文本 语料太小会导致结果不准确 参数设置 size:词向量维度,一般设置100-300 window:上下文窗口大小,默认为5 min_count:最小词频,可以过滤低频词 模型保存和加载 '''python 加载模型 模型 = word2vec 的 v.Word2Vec.load(“book_review.model”) 加载二进制格式 模型 = word2vec 的 v.Word2Vec.load_word2vec_format(“book_review.model.bin”, binary=True)六、运行结果示例 模型训练后可以进行多种词向量运算: 词语相似度计算 相关词查找 词语类比关系 异常词检测 具体输出示例: 国家和国务院的相似度:0.387 与"控烟"相关的词:禁烟(0.603)、防烟(0.585)等 不合群词检测:"很"在"书 书籍 教材 很"中最不相关
教程教学
技术教程
网络技术
# py
教主
昨天
0
28
0
2024-12-26
Python程序打包成exe完整指南:轻松实现跨平台分发
在软件开发中,我们经常需要将Python程序分发给不同的用户。本文将详细介绍如何将Python程序打包成独立的exe可执行文件。 一、基础环境准备 首先,我们需要安装必要的打包工具: 安装必要的依赖 pip install pywin32 pip install pyinstaller二、打包命令详解 2.1 基本打包命令 最简单的打包命令如下: 基本打包命令 pyinstaller -F your_script.py 命令执行后会在当前目录生成: - build/文件夹:包含中间文件 - dist/文件夹:包含最终的exe文件 - your_script.spec:打包配置文件2.2 GUI程序打包 GUI程序打包命令 pyinstaller -F your_script.py -w 参数说明: -F:生成单个exe文件 -w:不显示控制台窗口 --icon=app.ico:指定应用程序图标(可选)三、使用虚拟环境优化 1. 安装虚拟环境工具 pip install virtualenv 2. 创建虚拟环境 virtualenv py2exe_env 3. 激活虚拟环境 py2exe_env\Scripts\activate 4. 安装必要依赖 pip install pyinstaller 安装项目需要的其他包四、Selenium项目打包示例 4.1 ChromeDriver处理代码 import sys import os from selenium import webdriver def getDriver(): if getattr(sys, 'frozen', False): # 从exe包中读取ChromeDriver chromedriver_path = os.path.join(sys._MEIPASS, "chromedriver.exe") driver = webdriver.Chrome(chromedriver_path) else: # 开发环境中的路径 driver = webdriver.Chrome(executable_path='./chromedriver.exe') return driver 示例使用 if name == 'main': driver = getDriver() driver.get('https://www.example.com') driver.quit()4.2 GUI应用示例 import tkinter as tk from tkinter import messagebox class SimpleApp: def init(self, root): self.root = root self.root.title("简单GUI应用") undefined # 创建按钮 self.button = tk.Button(root, text="点击我", command=self.show_message) self.button.pack(pady=20) def show_message(self): messagebox.showinfo("消息", "Hello World!") if name == 'main': root = tk.Tk() app = SimpleApp(root) root.mainloop()4.3 配置文件管理示例 import json import os import sys class ConfigManager: def init(self): if getattr(sys, 'frozen', False): self.config_path = os.path.join(sys._MEIPASS, "config.json") else: self.config_path = "config.json" undefined def load_config(self): try: with open(self.config_path, 'r', encoding='utf-8') as f: return json.load(f) except Exception as e: print(f"加载配置文件失败: {e}") return {}4.4 打包命令 打包包含ChromeDriver的Selenium项目 pyinstaller -F --add-binary "chromedriver.exe;." your_script.py 完整打包命令示例 pyinstaller -F --add-binary "chromedriver.exe;." --icon=app.ico -w your_script.py五、资源文件处理 def get_resource_path(relative_path): """获取资源文件路径""" if getattr(sys, 'frozen', False): # 如果是打包后的exe base_path = sys._MEIPASS else: # 如果是开发环境 base_path = os.path.abspath(".") return os.path.join(base_path, relative_path) 使用示例 image_path = get_resource_path("images/logo.png") config_path = get_resource_path("config/settings.json")六、常见问题解决 6.1 模块导入问题 在打包命令中指定隐藏导入 pyinstaller -F --hidden-import=your_missing_module your_script.py
教程教学
技术教程
# 源码
# 软件
# 电脑
# 方便
教主
昨天
0
27
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
易航博客