做网站联系/便宜的seo官网优化

做网站联系,便宜的seo官网优化,ae模板免费网站,做竞赛的平台或网站前言:日常生活中,我们有时后就会遇见这样的情形:我们需要将给定的数据进行可视化处理,同时保证呈现比较良好的量化效果。这时候我们可能就会用到词云图。词云图(Word cloud)又称文字云,是一种文…

前言:日常生活中,我们有时后就会遇见这样的情形:我们需要将给定的数据进行可视化处理,同时保证呈现比较良好的量化效果。这时候我们可能就会用到词云图。词云图(Word cloud)又称文字云,是一种文本数据的图片视觉表达方式,一般是由词汇组成类似云的图形,用于展示大量文本数据。词云这个概念首先是由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登提出的,通常用于描述网站上的关键字元数据(标签),或可视化自由格式文本。“词云”就是通过形成“关键词云层”或“关键词渲染”,对网络文本中出现频率较高的“关键词”的视觉上的突出,每个词的重要性以字体大小或颜色显示。今天,我们就一起来学习如何利用Python制作一个简单的智能词云生成器。与上次不同的是,我们这次将给原程序扩展额外功能-从文本文件中提取文本数据(包括纯文本文件(TXT文件),PDF文件Word文件)。

 编程思路:本次编程我们将会调用到调用到wordcloud,PyQt5,pillow(PIL),numpy,sys,os,pytesseract,docx,pdfplumber等库。其中,wordcloud是本次编程的主体,它可以指定词云的形状,颜色,字体,背景等,帮助我们轻松地生成美观、直观的词云。PyQt5被用于创建一个图形用户界面,包括按钮、文本框、标签、布局管理器等组件,以及处理用户交互和事件,它将在词云生成的功能与用户界面相结合方面会很有用。pillow是Python的一个很重要的图像处理库,它被用于读取我们选择好的词云的形状图片,并将其转换为numpy数组,以便在生成词云时使用。numpy则负责进行数据处理(包括我们输入的文本以及传入的图片等信息)。sysos将会帮助我们与Python解释器(PyCharm)进行交互,以及控制程序的执行,并对系统文件进行相关操作。与上次相比,我们导入了新的库:pytesseract,它可以将图像中的文字转换为字符串,从而实现了对扫描版PDF文件的文字提取。pdfplumber让我们可以很方便地从 PDF 文件中提取文本内容(包括普通的文本型PDF和扫描版的PDF)。docx是Python的一个很强大的文本文件处理库,有了docx 库,我们可以方便地从docx文件(扩展名为.docx)中提取文本内容,并将其显示在文本编辑框中。

第一步:导入库

标准库:sys,os。

第三方库:PyQt5,pillow(PIL),wordcloud,numpy,docx,pdfplumber,pytesseract。

#导入必要库
import sys
import os
import numpy as np
from PIL import Image
from wordcloud import WordCloud
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import Qt
import docx
import pdfplumber
import pytesseract

第二步:创建内部功能类

我们用PyQt5库创建了一个功能丰富的GUI类(词云生成器类),允许用户选择形状图片、输入文本内容、选择字体文件、生成词云并保存生成的词云图片。在词云生成器类这个类中,我们创建了总共11个函数(初始化函数,UI初始化函数,系统图片文件夹获取函数,词云形状图片加载函数,字体文件选择函数,词云生成核心逻辑函数和词云图片保存函数等),它们将执行各自的功能,共同完成生成词云图的工作。值得一提的是,相比于上次的代码,本次扩展了4个函数,其功能围绕从文本文件中提取文本数据展开。

#词云生成器类
class WordCloudGenerator(QWidget):#初始化函数def __init__(self):super().__init__()self.mask_image = Noneself.font_path = Noneself.temp_path = self.get_pictures_path()self.initUI()#UI初始化函数def initUI(self):# 主布局main_layout = QHBoxLayout()# 左侧面板left_panel = QVBoxLayout()# 文件导入按钮self.import_btn = QPushButton('导入文本文件(txt/docx/pdf(支持OCR识别))', self)self.import_btn.clicked.connect(self.import_text)# 形状图片选择self.image_btn = QPushButton('选择形状图片', self)self.image_btn.clicked.connect(self.load_image)# 图片预览self.image_preview = QLabel('图片预览区域')self.image_preview.setFixedSize(300, 300)self.image_preview.setFrameShape(QFrame.Box)self.image_preview.setAlignment(Qt.AlignCenter)# 文本输入框self.text_edit = QTextEdit()self.text_edit.setPlaceholderText("在此输入文本内容,或使用上方按钮导入文件...")# 字体选择self.font_btn = QPushButton('选择字体文件(存在中文字体时需要)', self)self.font_btn.clicked.connect(self.select_font)# 生成按钮self.generate_btn = QPushButton('生成词云', self)self.generate_btn.clicked.connect(self.generate_wordcloud)# 保存按钮self.save_btn = QPushButton('保存词云', self)self.save_btn.clicked.connect(self.save_wordcloud)# 添加左侧组件left_panel.addWidget(self.import_btn)left_panel.addWidget(self.image_btn)left_panel.addWidget(self.image_preview)left_panel.addWidget(QLabel('输入文本:'))left_panel.addWidget(self.text_edit)left_panel.addWidget(self.font_btn)left_panel.addWidget(self.generate_btn)left_panel.addWidget(self.save_btn)# 右侧面板right_panel = QVBoxLayout()self.result_preview = QLabel('词云预览区域')self.result_preview.setFixedSize(400, 485)self.result_preview.setFrameShape(QFrame.Box)self.result_preview.setAlignment(Qt.AlignCenter)# 状态栏self.status_bar = QStatusBar()# 添加右侧组件right_panel.addWidget(QLabel('词云图预览:'))right_panel.addWidget(self.result_preview)right_panel.addWidget(self.status_bar)# 组合主布局main_layout.addLayout(left_panel, 40)main_layout.addLayout(right_panel, 60)self.setLayout(main_layout)# 窗口设置self.setWindowTitle('智能词云生成器(进阶版)')self.resize(800, 600)self.show()def get_pictures_path(self):#获取系统图片文件夹路径if os.name == 'nt':return os.path.join(os.environ['USERPROFILE'], 'Pictures')else:return os.path.expanduser('~/Pictures')def import_text(self):#导入文本文件(支持TXT/DOCX/PDF)path, _ = QFileDialog.getOpenFileName(self,'选择文本文件','','所有支持格式 (*.txt *.docx *.pdf);;文本文件 (*.txt);;Word文档 (*.docx);;PDF文件 (*.pdf)')if path:try:text = ""if path.lower().endswith('.txt'):with open(path, 'r', encoding='utf-8') as f:text = f.read()elif path.lower().endswith('.docx'):doc = docx.Document(path)text = '\n'.join([para.text for para in doc.paragraphs])elif path.lower().endswith('.pdf'):text = self.extract_pdf_text(path)else:QMessageBox.warning(self, '格式错误', '不支持的文本格式!')returnself.text_edit.setPlainText(text)QMessageBox.information(self, '导入成功', '文件内容已加载到文本框')except Exception as e:QMessageBox.critical(self, '读取错误', f'文件读取失败:{str(e)}')def extract_pdf_text(self, pdf_path):#智能PDF文本提取text = ""try:# 先尝试普通文本提取with pdfplumber.open(pdf_path) as pdf:total_pages = len(pdf.pages)for i, page in enumerate(pdf.pages):self.update_status(f"解析PDF第 {i + 1}/{total_pages} 页...")page_text = page.extract_text()text += page_text + "\n" if page_text else ""QApplication.processEvents()# 如果文本过少则尝试OCRif len(text.strip()) < total_pages * 50:  # 假设每页至少应有50个字符self.update_status("检测到扫描版PDF,启用OCR识别...")return self.extract_scanned_pdf(pdf_path)return textexcept Exception as e:raise Exception(f"PDF解析失败: {str(e)}")def extract_scanned_pdf(self, pdf_path):#处理扫描版PDF(OCR识别)text = ""try:with pdfplumber.open(pdf_path) as pdf:total_pages = len(pdf.pages)for i, page in enumerate(pdf.pages):self.update_status(f"OCR识别第 {i + 1}/{total_pages} 页...")# 转换为高分辨率图像(300 DPI)img = page.to_image(resolution=300).original# 图像预处理img = Image.fromarray(img).convert('L')  # 转为灰度图# OCR识别page_text = pytesseract.image_to_string(img, lang='chi_sim+eng')text += page_text + "\n"# 保持界面响应QApplication.processEvents()return textexcept Exception as e:raise Exception(f"OCR处理失败: {str(e)}")def update_status(self, message):#更新状态栏self.status_bar.showMessage(message)QApplication.processEvents()  # 强制刷新界面def load_image(self):#加载形状图片path, _ = QFileDialog.getOpenFileName(self, '选择形状图片', '', '图像文件 (*.jpg *.jpeg *.png *.bmp)')if path:self.mask_image = np.array(Image.open(path))pixmap = QPixmap(path).scaled(300, 300, Qt.KeepAspectRatio)self.image_preview.setPixmap(pixmap)def select_font(self):#选择字体文件path, _ = QFileDialog.getOpenFileName(self, '选择字体文件', '', '字体文件 (*.ttf *.otf)')if path:self.font_path = pathdef generate_wordcloud(self):#生成词云text = self.text_edit.toPlainText()if not text.strip():QMessageBox.warning(self, '内容缺失', '请输入需要生成词云的文本内容!')returnif self.mask_image is None:QMessageBox.warning(self, '形状未选', '请先选择词云形状图片!')returntry:# 配置词云参数wc = WordCloud(background_color='white',mask=self.mask_image,font_path=self.font_path,max_words=200,width=800,height=600)wc.generate(text)# 保存临时文件temp_file = os.path.join(self.temp_path, "wordcloud_temp.png")wc.to_file(temp_file)# 显示预览pixmap = QPixmap(temp_file).scaled(400, 400, Qt.KeepAspectRatio)self.result_preview.setPixmap(pixmap)except Exception as e:QMessageBox.critical(self, '生成错误', f'词云生成失败: {str(e)}')def save_wordcloud(self):#保存词云图片if not self.result_preview.pixmap():QMessageBox.warning(self, '无内容', '请先生成词云!')returndefault_path = os.path.join(self.temp_path, "我的词云.png")path, _ = QFileDialog.getSaveFileName(self,'保存词云',default_path,'PNG图像 (*.png);;JPEG图像 (*.jpg);;所有文件 (*)')if path:# 保持原始分辨率保存Image.open(os.path.join(self.temp_path, "wordcloud_temp.png")).save(path)QMessageBox.information(self, '保存成功', f'词云已保存至:\n{path}')

第三步:创建驱动单元

与上次一样,我们需要创建一段程序,它是Python程序的入口点,我们将利用它来驱动以上词云生成器类并执行相关系统程序。

if __name__ == '__main__':app = QApplication(sys.argv)window = WordCloudGenerator()sys.exit(app.exec_())

第四步:完整代码展示

#导入必要库
import sys
import os
import numpy as np
from PIL import Image
from wordcloud import WordCloud
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import Qt
import docx
import pdfplumber
import pytesseract#词云生成器类
class WordCloudGenerator(QWidget):#初始化函数def __init__(self):super().__init__()self.mask_image = Noneself.font_path = Noneself.temp_path = self.get_pictures_path()self.initUI()#UI初始化函数def initUI(self):# 主布局main_layout = QHBoxLayout()# 左侧面板left_panel = QVBoxLayout()# 文件导入按钮self.import_btn = QPushButton('导入文本文件(txt/docx/pdf(支持OCR识别))', self)self.import_btn.clicked.connect(self.import_text)# 形状图片选择self.image_btn = QPushButton('选择形状图片', self)self.image_btn.clicked.connect(self.load_image)# 图片预览self.image_preview = QLabel('图片预览区域')self.image_preview.setFixedSize(300, 300)self.image_preview.setFrameShape(QFrame.Box)self.image_preview.setAlignment(Qt.AlignCenter)# 文本输入框self.text_edit = QTextEdit()self.text_edit.setPlaceholderText("在此输入文本内容,或使用上方按钮导入文件...")# 字体选择self.font_btn = QPushButton('选择字体文件(存在中文字体时需要)', self)self.font_btn.clicked.connect(self.select_font)# 生成按钮self.generate_btn = QPushButton('生成词云', self)self.generate_btn.clicked.connect(self.generate_wordcloud)# 保存按钮self.save_btn = QPushButton('保存词云', self)self.save_btn.clicked.connect(self.save_wordcloud)# 添加左侧组件left_panel.addWidget(self.import_btn)left_panel.addWidget(self.image_btn)left_panel.addWidget(self.image_preview)left_panel.addWidget(QLabel('输入文本:'))left_panel.addWidget(self.text_edit)left_panel.addWidget(self.font_btn)left_panel.addWidget(self.generate_btn)left_panel.addWidget(self.save_btn)# 右侧面板right_panel = QVBoxLayout()self.result_preview = QLabel('词云预览区域')self.result_preview.setFixedSize(400, 485)self.result_preview.setFrameShape(QFrame.Box)self.result_preview.setAlignment(Qt.AlignCenter)# 状态栏self.status_bar = QStatusBar()# 添加右侧组件right_panel.addWidget(QLabel('词云图预览:'))right_panel.addWidget(self.result_preview)right_panel.addWidget(self.status_bar)# 组合主布局main_layout.addLayout(left_panel, 40)main_layout.addLayout(right_panel, 60)self.setLayout(main_layout)# 窗口设置self.setWindowTitle('智能词云生成器(进阶版)')self.resize(800, 600)self.show()def get_pictures_path(self):#获取系统图片文件夹路径if os.name == 'nt':return os.path.join(os.environ['USERPROFILE'], 'Pictures')else:return os.path.expanduser('~/Pictures')def import_text(self):#导入文本文件(支持TXT/DOCX/PDF)path, _ = QFileDialog.getOpenFileName(self,'选择文本文件','','所有支持格式 (*.txt *.docx *.pdf);;文本文件 (*.txt);;Word文档 (*.docx);;PDF文件 (*.pdf)')if path:try:text = ""if path.lower().endswith('.txt'):with open(path, 'r', encoding='utf-8') as f:text = f.read()elif path.lower().endswith('.docx'):doc = docx.Document(path)text = '\n'.join([para.text for para in doc.paragraphs])elif path.lower().endswith('.pdf'):text = self.extract_pdf_text(path)else:QMessageBox.warning(self, '格式错误', '不支持的文本格式!')returnself.text_edit.setPlainText(text)QMessageBox.information(self, '导入成功', '文件内容已加载到文本框')except Exception as e:QMessageBox.critical(self, '读取错误', f'文件读取失败:{str(e)}')def extract_pdf_text(self, pdf_path):#智能PDF文本提取text = ""try:# 先尝试普通文本提取with pdfplumber.open(pdf_path) as pdf:total_pages = len(pdf.pages)for i, page in enumerate(pdf.pages):self.update_status(f"解析PDF第 {i + 1}/{total_pages} 页...")page_text = page.extract_text()text += page_text + "\n" if page_text else ""QApplication.processEvents()# 如果文本过少则尝试OCRif len(text.strip()) < total_pages * 50:  # 假设每页至少应有50个字符self.update_status("检测到扫描版PDF,启用OCR识别...")return self.extract_scanned_pdf(pdf_path)return textexcept Exception as e:raise Exception(f"PDF解析失败: {str(e)}")def extract_scanned_pdf(self, pdf_path):#处理扫描版PDF(OCR识别)text = ""try:with pdfplumber.open(pdf_path) as pdf:total_pages = len(pdf.pages)for i, page in enumerate(pdf.pages):self.update_status(f"OCR识别第 {i + 1}/{total_pages} 页...")# 转换为高分辨率图像(300 DPI)img = page.to_image(resolution=300).original# 图像预处理img = Image.fromarray(img).convert('L')  # 转为灰度图# OCR识别page_text = pytesseract.image_to_string(img, lang='chi_sim+eng')text += page_text + "\n"# 保持界面响应QApplication.processEvents()return textexcept Exception as e:raise Exception(f"OCR处理失败: {str(e)}")def update_status(self, message):#更新状态栏self.status_bar.showMessage(message)QApplication.processEvents()  # 强制刷新界面def load_image(self):#加载形状图片path, _ = QFileDialog.getOpenFileName(self, '选择形状图片', '', '图像文件 (*.jpg *.jpeg *.png *.bmp)')if path:self.mask_image = np.array(Image.open(path))pixmap = QPixmap(path).scaled(300, 300, Qt.KeepAspectRatio)self.image_preview.setPixmap(pixmap)def select_font(self):#选择字体文件path, _ = QFileDialog.getOpenFileName(self, '选择字体文件', '', '字体文件 (*.ttf *.otf)')if path:self.font_path = pathdef generate_wordcloud(self):#生成词云text = self.text_edit.toPlainText()if not text.strip():QMessageBox.warning(self, '内容缺失', '请输入需要生成词云的文本内容!')returnif self.mask_image is None:QMessageBox.warning(self, '形状未选', '请先选择词云形状图片!')returntry:# 配置词云参数wc = WordCloud(background_color='white',mask=self.mask_image,font_path=self.font_path,max_words=200,width=800,height=600)wc.generate(text)# 保存临时文件temp_file = os.path.join(self.temp_path, "wordcloud_temp.png")wc.to_file(temp_file)# 显示预览pixmap = QPixmap(temp_file).scaled(400, 400, Qt.KeepAspectRatio)self.result_preview.setPixmap(pixmap)except Exception as e:QMessageBox.critical(self, '生成错误', f'词云生成失败: {str(e)}')def save_wordcloud(self):#保存词云图片if not self.result_preview.pixmap():QMessageBox.warning(self, '无内容', '请先生成词云!')returndefault_path = os.path.join(self.temp_path, "我的词云.png")path, _ = QFileDialog.getSaveFileName(self,'保存词云',default_path,'PNG图像 (*.png);;JPEG图像 (*.jpg);;所有文件 (*)')if path:# 保持原始分辨率保存Image.open(os.path.join(self.temp_path, "wordcloud_temp.png")).save(path)QMessageBox.information(self, '保存成功', f'词云已保存至:\n{path}')if __name__ == '__main__':app = QApplication(sys.argv)window = WordCloudGenerator()sys.exit(app.exec_())

第五步:运行效果展示

第六步:操作指南

点击"导入文本文件(txt/docx/pdf(支持OCR识别)),然后选择你想要提取的文本数据的文本文件(当然,你也可以手动输入文本数据)。"点击"选择形状图片",选择你想生成的词云图的形状(注意:图片最好分辨率高,以白色为背景为好,这样生成的词云图清晰美观),接着在"输入文本"下面的输入框中输入你想要生成的词云图的内容,接着点击下方的"选择字体文件(存在中文字体时需要)"(注意:如果你的文本数据存在中文文本时需要你自行准备相关的中文字体文件,TTF或OTF都行;如果是纯英文字符的话不用)。再点击下方"生成词云",你就可以在窗口右方看到生成的预览词云图(如果不满意,可以再次点击"生成词云"重新生成词云)。如果满意生成的词云,可以点击下方"保存词云",填写你的词云图片文件名,并选择文件类型(当然,你也可以默认该操作),点击保存,系统会弹出一个信息框,提醒你图片的保存位置,记住这个位置,点击保存。返回计算机系统,按照位置搜索即可找到你生成的词云图。

第七步:温馨提示

1,导入文本文件后文本框中的数据可以手动修改。

2,白色背景的图片可以通过手机"醒图"软件中的"抠图"功能实现。

3,TTF/OTF格式的各种字体文件可以在网站"字体天下"中免费下载。

第八步:注意事项

- 形状图片(建议使用透明背景PNG图片)
- 中文字体文件(如需处理中文内容)

- 首次运行时会在系统图片文件夹创建临时文件
- 保存时可自由修改文件名,但默认保存在系统图片目录
- 程序会自动处理文件夹不存在的情况(系统一般自带Pictures目录)

(我是闪云-微星,感谢你的点赞/关注)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/68763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek-R1论文研读:通过强化学习激励LLM中的推理能力

DeepSeek在朋友圈&#xff0c;媒体&#xff0c;霸屏了好长时间&#xff0c;春节期间&#xff0c;研读一下论文算是时下的回应。论文原址&#xff1a;[2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 摘要&#xff1a; 我们…

【深度分析】DeepSeek大模型技术解析:从架构到应用的全面探索

深度与创新&#xff1a;AI领域的革新者 DeepSeek&#xff0c;这个由幻方量化创立的人工智能公司推出的一系列AI模型&#xff0c;不仅在技术架构上展现出了前所未有的突破&#xff0c;更在应用领域中开启了无限可能的大门。从其混合专家架构&#xff08;MoE&#xff09;到多头潜…

万物皆有联系:驼鸟和布什

布什&#xff1f;一块布十块钱吗&#xff1f;不是&#xff0c;大家都知道&#xff0c;美国有两个总统&#xff0c;叫老布什和小布什&#xff0c;因为两个布什总统&#xff08;父子俩&#xff09;&#xff0c;大家就这么叫来着&#xff0c;目的是为了好区分。 布什总统的布什&a…

Leetcode:350

1&#xff0c;题目 2&#xff0c;思路 首先判断那个短为什么呢因为我们用短的数组去挨个点名长的数组主要用map装长的数组max判断map里面有几个min数组的元素&#xff0c;list保存交集最后用数组返回list的内容 3&#xff0c;代码 import java.util.*;public class Leetcode…

Spring Boot 热部署实现指南

在开发 Spring Bot 项目时&#xff0c;热部署功能能够显著提升开发效率&#xff0c;让开发者无需频繁重启服务器就能看到代码修改后的效果。下面为大家详细介绍一种实现 Spring Boot 热部署的方法&#xff0c;同时也欢迎大家补充其他实现形式。 步骤一、开启 IDEA 自动编译功能…

LogicFlow 一款流程图编辑框架

LogicFlow是什么 LogicFlow是一款流程图编辑框架&#xff0c;提供了一系列流程图交互、编辑所必需的功能和灵活的节点自定义、插件等拓展机制。LogicFlow支持前端自定义开发各种逻辑编排场景&#xff0c;如流程图、ER图、BPMN流程等。在工作审批流配置、机器人逻辑编排、无代码…

Git进阶之旅:tag 标签 IDEA 整合 Git

第一章&#xff1a;tag 标签远程管理 git 标签 tag 管理&#xff1a; 标签有两种&#xff1a; 轻量级标签(lightweight)带有附注标签(annotated) git tag 标签名&#xff1a;创建一个标签git tag 标签名 -m 附注内容 &#xff1a;创建一个附注标签git tag -d 标签名…

riscv xv6学习笔记

文章目录 前言util实验sleeputil实验pingpongutil实验primesxv6初始化代码分析syscall实验tracesyscall实验sysinfoxv6内存学习笔记pgtbl实验Print a page tablepgtbl实验A kernel page table per processxv6 trap学习trap实验Backtracetrap实验Alarmlazy实验Lazy allocationxv…

Contrastive Imitation Learning

机器人模仿学习中对比解码的一致性采样 摘要 本文中&#xff0c;我们在机器人应用的对比模仿学习中&#xff0c;利用一致性采样来挖掘演示质量中的样本间关系。通过在排序后的演示对比解码过程中&#xff0c;引入相邻样本间的一致性机制&#xff0c;我们旨在改进用于机器人学习…

Baklib揭示内容中台与人工智能技术的创新协同效应

内容概要 在当今信息爆炸的时代&#xff0c;内容的高效生产与分发已成为各行业竞争的关键。内容中台与人工智能技术的结合&#xff0c;为企业提供了一种新颖的解决方案&#xff0c;使得内容创造的流程更加智能化和高效化。 内容中台作为信息流动的核心&#xff0c;能够集中管…

[论文阅读] (37)CCS21 DeepAID:基于深度学习的异常检测(解释)

祝大家新春快乐&#xff0c;蛇年吉祥&#xff01; 《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0…

JVM方法区

一、栈、堆、方法区的交互关系 二、方法区的理解: 尽管所有的方法区在逻辑上属于堆的一部分&#xff0c;但是一些简单的实现可能不会去进行垃圾收集或者进行压缩&#xff0c;方法区可以看作是一块独立于Java堆的内存空间。 方法区(Method Area)与Java堆一样&#xff0c;是各个…

火语言RPA--文本内容提取

&#x1f6a9;【组件功能】&#xff1a;通过前后截取、通配符参数组合或纯正则方式提取源字符串中指定的文本内容 配置预览 配置说明 源内容 支持T或# 默认FLOW输入项 进行处理、匹配的对象&#xff0c;若为空&#xff0c;以上一个组件的输出为源内容。 提取方式 前后截取…

JVM的GC详解

获取GC日志方式大抵有两种 第一种就是设定JVM参数在程序启动时查看&#xff0c;具体的命令参数为: -XX:PrintGCDetails # 打印GC日志 -XX:PrintGCTimeStamps # 打印每一次触发GC时发生的时间第二种则是在服务器上监控:使用jstat查看,如下所示&#xff0c;命令格式为jstat -gc…

芯片AI深度实战:给vim装上AI

系列文章&#xff1a; 芯片AI深度实战&#xff1a;私有模型deep seek r1&#xff0c;必会ollama-CSDN博客 芯片AI深度实战&#xff1a;自己的AI&#xff0c;必会LangChain-CSDN博客 芯片AI深度实战&#xff1a;给vim装上AI-CSDN博客 芯片AI深度实战&#xff1a;火的编程AI&…

供应链系统设计-供应链中台系统设计(十四)- 清结算中心设计篇(三)

关于清结算中心的设计&#xff0c;我们之前的两篇文章中&#xff0c;对于业务诉求的好的标准进行了初步的描述&#xff0c;如果没有看的同学可以参考一下两篇文章进行了解&#xff0c;这样更有利于理解本篇的内容。链接具体如下&#xff1a; 供应链系统设计-供应链中台系统设计…

搭建自己的专属AI——使用Ollama+AnythingLLM+Python实现DeepSeek本地部署

前言 最近DeepSeek模型非常火&#xff0c;其通过对大模型的蒸馏得到的小模型可以较轻松地在个人电脑上运行&#xff0c;这也使得我们有机会在本地构建一个专属于自己的AI&#xff0c;进而把AI“调教”为我们希望的样子。本篇文章中我将介绍如何使用OllamaAnythingLLMPython实现…

Golang 并发机制-1:Golang并发特性概述

并发是现代软件开发中的一个基本概念&#xff0c;它使程序能够同时执行多个任务&#xff0c;从而提高效率和响应能力。在本文中&#xff0c;我们将探讨并发性在现代软件开发中的重要性&#xff0c;并深入研究Go处理并发任务的独特方法。 并发的重要性 增强性能 并发在提高软…

【算法应用】基于鲸鱼优化算法求解OTSU多阈值图像分割问题

目录 1.鲸鱼优化算法WOA 原理2.OTSU多阈值图像分割模型3.结果展示4.参考文献5.代码获取 1.鲸鱼优化算法WOA 原理 SCI二区|鲸鱼优化算法&#xff08;WOA&#xff09;原理及实现 2.OTSU多阈值图像分割模型 Otsu 算法&#xff08;最大类间方差法&#xff09;设灰度图像有 L L …

项目升级Sass版本或升级Element Plus版本遇到的问题

项目升级Sass版本或升级Element Plus版本遇到的问题 如果项目有需求需要用到高版本的Element Plus组件&#xff0c;则需要升级相对应的sass版本&#xff0c;Element 文档中有提示&#xff0c;2.8.5及以后得版本&#xff0c;sass最低支持的版本为1.79.0&#xff0c;所升级sass、…