爬虫后的数据处理与使用(处理篇)

紧接上文爬虫,我们获取到了一些数据,接下来就是使用和分析了~爬虫阶段式教学——从数据获取到格式化存储(附代码与效果图)_爬虫网页数据格式化-CSDN博客

为保证数据的正确性和有效性需要对数据进行筛选,保存有效信息,但很显然数据量大的话,数据庞杂很难说提取所有特征,进行分类和后续的操作,而且一旦出错……整个人都要崩溃了……于是便尝试了几种算法辅助完成。

同时,有些数据中存在人名、地址等敏感信息,需要进行加密处理,由于为个人非商业使用,所以采取了简单的文字替换方式,完成加密要求并不影响可读性。

(筛选和加密这两步,自由决定先后) 

采取环境:python 3.11

一、数据加密

1、字符串偏移法

汉字通过 Unicode 编码来进行存储,最直接的便是对它的编码向前/后推。

import openpyxl
import random# 打开 Excel 文件
workbook = openpyxl.load_workbook('你的文件名.xlsx')
sheet = workbook.active   
# 选定表格,sheet# 汉字的 Unicode 范围
zh_start = 0x4E00  # 汉字起始
zh_end = 0x9FFF    # 汉字结束# 对第2列(姓名列)进行字符偏移加密,改成你的列
for row in range(2, sheet.max_row + 1):name = sheet.cell(row=row, column=1).valueif name:encrypted_name = []for char in name:offset = random.randint(-2, -1)  # 随机调整偏移量,随机1-2位new_char = chr(ord(char) + offset)# 确保新字符在汉字范围内if zh_start <= ord(new_char) <= zh_end:encrypted_name.append(new_char)else:# 如果超出范围,保持原字符encrypted_name.append(char)# 将加密后的姓名保存到 Excelsheet.cell(row=row, column=2, value=''.join(encrypted_name))# 保存加密后的 Excel
workbook.save('保存的文件名.xlsx')# 此方法虽然可行,但整体影响可读性

效果如下:

很显然不容易解读,不适合当前使用。

2、常用词替换

此种方法,即为用常见的汉字来对名字进行替换,自建常用词列表,对名字进行:

import randomimport openpyxl# 打开 Excel 文件
workbook = openpyxl.load_workbook('你需要进行加密处理的文件.xlsx')
sheet = workbook.active# 一个常用汉字列表,用于替换
common_chars = ['明', '伟', '芳', '丽', '军', '静', '鹏', '霞', '婷', '波','强', '娟', '斌', '欣', '勇', '峰', '璐', '涛', '雪', '超','华', '莹', '媛', '杰', '玲', '蕾', '东', '春', '浩', '颖','志', '琪', '蕊', '晓', '俊', '琴', '义', '义', '凡', '燕','玥', '冰', '悦', '皓', '妍', '露', '阳', '欣', '明', '达','淼', '伟', '豪', '洁', '博', '鑫', '凯', '峰', '琪', '捷','晗', '瑞', '梦', '航', '娜', '睿', '佳', '晓', '泽', '宁','世', '皓', '瑜', '哲', '瑜', '昊', '博', '睿', '璇', '思','莺', '秋', '宇', '琦', '彦', '晨', '华', '星', '莉', '珊','雪', '慧', '妮', '凡', '蕙', '文', '馨', '晴', '斌', '凡'
]# 替换汉字列表# 对第2列(为我表的姓名列)进行字符替换
for row in range(2, sheet.max_row + 1):name = sheet.cell(row=row, column=1).value  # 假设姓名在第一列if name:name_length = len(name)# 随机选择要替换的字的位置num_replacements = random.randint(1, 2)  # 1到2个字进行替换indices_to_replace = random.sample(range(name_length), num_replacements)encrypted_name = list(name)  # 将姓名转为列表以便修改for index in indices_to_replace:# 替换指定位置的字encrypted_name[index] = random.choice(common_chars)# 将加密后的姓名保存到 文件中sheet.cell(row=row, column=2, value=''.join(encrypted_name))# 保存加密后的 Excel
workbook.save('encrypted_alumni.xlsx')print("姓名加密完成,结果已保存为 '加密后文件.xlsx'。")

效果图:

,整体还是可以的。

二、数据分类与有效提取

前言:

对敏感数据完成加密后,接下来就是对提取到的数据进行筛选了。主要就是分类和有效信息提取。这里引入两个无监督算法:k-means聚类DBSCAN 聚类,虽然不一定全适用。(但毕竟嘛,如果是论文里,加上这东西,那不就是创新点和亮点了嘛😆)

注意:如果当前你获取到的数据本身就已经是很规范的,那就没必要进行这一步了~直接用就行

以下将从两种聚类方法进行逐个讲解。

这里说点题外话,简单说说我对这些分类、聚类算法等的理解。

        这些算法无非就是特征的选择与提取,那要怎么寻找特征呢?我们不妨拆借一下 “特征” 二字,它是 "相似" 文字特点提取后的抽象。转换一下:我们找到相似的文字,便可得出这个特征,而要衡量这种相似,必须要量化,即可以数字计算。

        如果计算,那什么最直观可以表示字与字之间的联系呢?距离的远近

        那有没有什么方法可以实现这种想法呢?坐标!?我们不如设定一套规则,将所有文字数字化,句子则为一个多维度的坐标,而这套规则的准确度、适用度决定了相似判定的准确性。而要保证这种准确性,这需要考虑文字的位置、语义、出现频次等等信息,这里有对应的算法表示(比如TF-IDF,不再赘述)

 

1、K-means聚类

(1)简述:

简单说一下k-means,它是无监督算法的一种,基本逻辑是依据一些特征将数据集分成若干个簇(Cluster,其实就是子集)。在数据坐标化后,先随便选择几个质心,将数据点分配到离它最近的簇中。然后在几个簇中不断重复这两步。直到质心不再开始变化。

(2)代码:

# 这个是通用的配置:两个聚类算法实际都需要这个
import pandas as pd
# 读取Excel文件
file_path = 'tieba.xlsx'  # 替换为你的文件路径
sheet_name = '贴吧数据'  # 数据位置,对应的sheet,我这儿sheet的名称是“贴吧数据”# 读取Excel表格
df = pd.read_excel(file_path, sheet_name=sheet_name)# 选择你要处理的内容列
texts = df['标题'].fillna('').tolist()  # 将空值处理为空字符串# 测试一下看有无数据,打印前几个帖子内容
print(texts[:5])

以下是基础版本代码: 

# 这是具体的聚类算法代码
import matplotlib.pyplot as plt
import numpy as np
from sklearn.decomposition import PCA
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
import re
import matplotlib# 设置字体为支持中文的字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 选择中文字体
matplotlib.rcParams['axes.unicode_minus'] = False  # 处理负号显示问题# 文本清洗,这一步很有必要
def clean_text(text):text = re.sub(r'<[^>]+>', '', text)  # 去掉HTML标签text = re.sub(r'[^\w\s]', '', text)  # 去掉标点符号return text.lower()# 对文本进行清洗
texts_cleaned = [clean_text(text) for text in texts]# 使用TF-IDF将文本转为向量,
vectorizer = TfidfVectorizer(max_features=5000)
X = vectorizer.fit_transform(texts_cleaned)# 使用K-means进行聚类,这里的n_clusters:表示 聚类数量 ,具体哪个最精确需要动态调整。
kmeans = KMeans(n_clusters=5, random_state=42)
kmeans.fit(X)# 获取每个帖子所属的聚类
labels = kmeans.labels_# 使用PCA将数据降维到2D
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X.toarray())# 创建一个散点图,使用不同颜色表示不同类别
plt.figure(figsize=(10, 6))
unique_labels = np.unique(labels)
colors = plt.cm.get_cmap('tab10', len(unique_labels))for label in unique_labels:indices = np.where(labels == label)plt.scatter(X_pca[indices, 0], X_pca[indices, 1], label=f'类别 {label}', s=50, alpha=0.7)# 添加中文标题和坐标轴标签
plt.title('贴吧帖子 K-Means 聚类结果')
plt.xlabel('主成分 1')
plt.ylabel('主成分 2')
plt.legend(loc='best', title='聚类类别')
plt.grid()# 显示图形
plt.show()

 (3)结果:

展示如下:

        当前展现出的结果:说明特征值过小,大概是我直接从贴吧获取到的数据基本都一个样……

(4)扩展:

接下来我们就此种算法进行轮廓系数总内聚度 评估(我这儿只是举个例子,大家学个方法就行)。

import matplotlib.pyplot as plt
import numpy as np
from sklearn.decomposition import PCA
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
import re
import matplotlib# 设置字体为支持中文的字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 选择中文字体
matplotlib.rcParams['axes.unicode_minus'] = False  # 处理负号显示问题# 文本清洗函数
def clean_text(text):text = re.sub(r'<[^>]+>', '', text)  # 去掉HTML标签text = re.sub(r'[^\w\s]', '', text)  # 去掉标点符号return text.lower()# 对文本进行清洗
texts_cleaned = [clean_text(text) for text in texts]# 使用TF-IDF将文本转为向量
vectorizer = TfidfVectorizer(max_features=5000)
X = vectorizer.fit_transform(texts_cleaned)# 绘制肘部法则图,选择最合适的K
inertia_values = []
silhouette_scores = []# 计算不同K值下的inertia和silhouette_score
for k in range(2, 11):kmeans = KMeans(n_clusters=k, random_state=42)kmeans.fit(X)inertia_values.append(kmeans.inertia_)# 计算轮廓系数score = silhouette_score(X, kmeans.labels_)silhouette_scores.append(score)# 绘制肘部法则图
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.plot(range(2, 11), inertia_values, marker='o', color='b')
plt.title('肘部法则')
plt.xlabel('K 值')
plt.ylabel('总内聚度 (Inertia)')
plt.grid()# 绘制轮廓系数图
plt.subplot(1, 2, 2)
plt.plot(range(2, 11), silhouette_scores, marker='o', color='g')
plt.title('轮廓系数')
plt.xlabel('K 值')
plt.ylabel('轮廓系数')
plt.grid()plt.tight_layout()
plt.show()# 选择合适的K值,比如5,进行最终的聚类
kmeans = KMeans(n_clusters=5, random_state=42)
kmeans.fit(X)# 获取每个帖子所属的聚类
labels = kmeans.labels_# 使用PCA将数据降维到2D
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X.toarray())# 创建一个散点图,使用不同颜色表示不同类别
plt.figure(figsize=(10, 6))
unique_labels = np.unique(labels)
colors = plt.cm.get_cmap('tab10', len(unique_labels))for label in unique_labels:indices = np.where(labels == label)plt.scatter(X_pca[indices, 0], X_pca[indices, 1], label=f'类别 {label}', s=50, alpha=0.7)# 添加中文标题和坐标轴标签
plt.title('贴吧帖子 K-Means 聚类结果')
plt.xlabel('主成分 1')
plt.ylabel('主成分 2')
plt.legend(loc='best', title='聚类类别')
plt.grid()# 显示图形
plt.show()

总之呢:总内聚度值越小,聚类效果越好,轮廓系数越接近1越好。我这儿最佳k值为7,但整体聚类效果是在不大行,哈哈。

大家可以尝试一下。

2、DBSCAN 聚类

(1)简述

DBSCAN 聚类不同于K-means,它是基于密度的聚类算法,通过寻找数据点的密度区域来形成簇。核心思想是“密集区域”的数据点属于同一簇,而密度较低的区域被视为噪声或离群点。

具体的就不说了,我们直接上代码吧

(2)代码:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.decomposition import PCA
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import silhouette_score, homogeneity_score, completeness_score, v_measure_score, davies_bouldin_score, calinski_harabasz_score, adjusted_rand_score, fowlkes_mallows_score
import re
import matplotlib# 设置字体为支持中文的字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 选择中文字体
matplotlib.rcParams['axes.unicode_minus'] = False  # 处理负号显示问题# 文本清洗函数
def clean_text(text):text = re.sub(r'<[^>]+>', '', text)  # 去掉HTML标签text = re.sub(r'[^\w\s]', '', text)  # 去掉标点符号return text.lower()# texts = [...]  # 这里的texts,和上文k-means的一致,直接调用即可# 对文本进行清洗
texts_cleaned = [clean_text(text) for text in texts]# 使用TF-IDF将文本转为向量
vectorizer = TfidfVectorizer(max_features=5000)
X = vectorizer.fit_transform(texts_cleaned)# 标准化数据
X_scaled = StandardScaler().fit_transform(X.toarray())# 使用DBSCAN进行聚类
dbscan = DBSCAN(eps=0.5, min_samples=5)
dbscan_labels = dbscan.fit_predict(X_scaled)# 将聚类标签存储到 DataFrame 中
df = pd.DataFrame({'文本内容': texts, '聚类标签': dbscan_labels})# 使用PCA将数据降维到2D
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)# 创建一个散点图,使用不同颜色表示不同类别
plt.figure(figsize=(12, 8))
colors = plt.cm.get_cmap('tab10', len(np.unique(dbscan_labels)))for label in np.unique(dbscan_labels):if label == -1:  # -1表示噪声点plt.scatter(X_pca[dbscan_labels == label, 0], X_pca[dbscan_labels == label, 1],color='k', label='噪声', s=50, alpha=0.5, edgecolor='k')else:plt.scatter(X_pca[dbscan_labels == label, 0], X_pca[dbscan_labels == label, 1],label=f'类别 {label}', s=100, alpha=0.7, edgecolor='k')# 添加数据点编号
for i, txt in enumerate(range(len(texts))):plt.annotate(txt, (X_pca[i, 0], X_pca[i, 1]), fontsize=8, alpha=0.7)# 添加中文标题和坐标轴标签
plt.title('贴吧帖子 DBSCAN 聚类结果', fontsize=16)
plt.xlabel('主成分 1', fontsize=14)
plt.ylabel('主成分 2', fontsize=14)
plt.legend(loc='best', title='聚类类别', fontsize=12)
plt.grid()# 显示图形
plt.tight_layout()
plt.show()# 保存聚类结果到Excel
df.to_excel('聚类标签-DBSCAN.xlsx', index=False)# 评估指标:轮廓系数、同质性、完整性、V-Measure、Davies-Bouldin指数、Calinski-Harabasz指数等# 由于DBSCAN会生成噪声点(-1),我们只计算除噪声外的数据点的评估指标# 去除噪声标签 (-1)
non_noise_indices = dbscan_labels != -1
X_non_noise = X_scaled[non_noise_indices]
dbscan_labels_non_noise = dbscan_labels[non_noise_indices]# 计算轮廓系数
silhouette_avg = silhouette_score(X_non_noise, dbscan_labels_non_noise)
print(f'轮廓系数(Silhouette Score):{silhouette_avg}')# 计算同质性、完整性和V-Measure
# 如果没有真实标签,可以跳过
# homogeneity = homogeneity_score(true_labels, dbscan_labels_non_noise)
# completeness = completeness_score(true_labels, dbscan_labels_non_noise)
# v_measure = v_measure_score(true_labels, dbscan_labels_non_noise)# 计算Davies-Bouldin指数(值越小越好)
db_index = davies_bouldin_score(X_non_noise, dbscan_labels_non_noise)
print(f'Davies-Bouldin指数:{db_index}')# 计算Calinski-Harabasz指数(值越大越好)
ch_index = calinski_harabasz_score(X_non_noise, dbscan_labels_non_noise)
print(f'Calinski-Harabasz指数:{ch_index}')# 真实标签:就是你这儿实际弄好的,大多是人工分辨得出。
# 计算Adjusted Rand Index(ARI)
# 如果没有真实标签,则不能计算ARI
# ari = adjusted_rand_score(true_labels, dbscan_labels_non_noise)
# print(f'Adjusted Rand Index:{ari}')# 计算Fowlkes-Mallows指数(FMI)
# 如果没有真实标签,则不能计算FMI
# fmi = fowlkes_mallows_score(true_labels, dbscan_labels_non_noise)
# print(f'Fowlkes-Mallows Index:{fmi}')# 如果没有真实标签,则输出如下
print(f'同质性(Homogeneity):{silhouette_avg}')  # 用轮廓系数作为示例
print(f'完整性(Completeness):{silhouette_avg}')  # 用轮廓系数作为示例
print(f'V-Measure:{silhouette_avg}')  # 用轮廓系数作为示例

(3)结果:

以下是:输出的结果

轮廓系数(Silhouette Score):0.999999995613945
Davies-Bouldin指数:4.570585821073591e-07
Calinski-Harabasz指数:1.7907473496544669e+31
同质性(Homogeneity):0.999999995613945
完整性(Completeness):0.999999995613945
V-Measure:0.999999995613945

看看这聚类效果!图基本汇聚到一个点,非常好!数据点在其所在簇内很紧密,并且与其他簇之间有很好的分离!簇之间的分离度很行,簇内的紧密度也很高!

但是,似乎我本来是想分类来着……搞着一出,分不出来,咋整??

我们似乎要想另一种办法了……那还有什么办法呢……

监督学习!!!

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

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

相关文章

人工智能之基于阿里云图像人脸融合部署

人工智能之基于阿里云图像人脸融合部署 需求描述 基于阿里云搭建图像人脸融合模型&#xff0c;模型名称&#xff1a;iic/cv_unet-image-face-fusion_damo使用上述模型输出人脸融合照片 模型路径&#xff1a;人脸融合 业务实现 阿里云配置 阿里云配置如下&#xff1a; SD…

【TextIn—智能文档解析与DocFlow票据AI自动化处理:赋能企业文档数字化管理与数据治理的双重利器】

TextIn—智能文档解析与票据AI自动化处理&#xff1a;赋能企业文档数字化管理与数据治理的双重利器 ​ 在数据驱动的时代&#xff0c;企业面临的挑战不仅在于海量数据的整理和响应速度的提高&#xff0c;更在于如何有效管理和利用这些日益增长的海量信息。尤其是在信息日趋多样…

AI大模型系列之七:Transformer架构讲解

目录 Transformer网络是什么&#xff1f; 输入模块结构&#xff1a; 编码器模块结构&#xff1a; 解码器模块: 输出模块结构&#xff1a; Transformer 具体是如何工作的&#xff1f; Transformer核心思想是什么&#xff1f; Transformer的代码架构 自注意力机制是什么…

uni-ui样式修改

因为之前官网uni-ui有些组件的样式不好看&#xff0c;所以要做一些调整&#xff0c;做个记录。用分段器举例~ 官网原生样式 调整后的 首先找到我们的static文件夹&#xff0c;里面一般存着项目的全局样式文件&#xff0c;没有的话自己创一个 uniui.scss /deep/ .segmented-con…

【SqlSugar雪花ID常见问题】.NET开源ORM框架 SqlSugar 系列

系列文章目录 &#x1f380;&#x1f380;&#x1f380; .NET开源 ORM 框架 SqlSugar 系列 &#x1f380;&#x1f380;&#x1f380; 文章目录 系列文章目录一、前言 &#x1f343;二、ORM中使用雪花ID ❄️2.1 普通插入2.2 导航插入2.3 手动调用雪花ID 三、雪花ID重复 问题 …

详细教程:SQL2008数据库备份与还原全流程!

数据的安全性至关重要&#xff0c;无论是操作系统、重要文件、磁盘存储&#xff0c;还是企业数据库&#xff0c;备份都是保障其安全和完整性的关键手段。拥有备份意味着即使发生误删、系统崩溃或病毒攻击等问题&#xff0c;也能迅速通过恢复功能解决&#xff0c;避免数据丢失带…

低代码开发:开启企业数智化转型“快捷键”

一、低代码开发浪潮来袭&#xff0c;企业转型正当时 在当今数字化飞速发展的时代&#xff0c;低代码开发已如汹涌浪潮&#xff0c;席卷全球。从国际市场来看&#xff0c;诸多企业巨头纷纷布局低代码领域&#xff0c;像微软的 PowerApps、OutSystems 等平台&#xff0c;凭借强大…

MySQL数据库——常见慢查询优化方式

本文详细介绍MySQL的慢查询相关概念&#xff0c;分析步骤及其优化方案等。 文章目录 什么是慢查询日志&#xff1f;慢查询日志的相关参数如何启用慢查询日志&#xff1f;方式一&#xff1a;修改配置文件方式二&#xff1a;通过命令动态启用 分析慢查询日志方式一&#xff1a;直…

javaEE初阶————计算机是如何工作的

今天给大家带来javaEE初阶的知识&#xff0c;相信大家已经学完javaSE了吧&#xff0c;我们从本期博客开始为大家一一讲解&#xff0c;我们现在开始吧 我们作为程序员&#xff0c;大概了解这部分即可嗷 1&#xff0c;计算机的组成 祖师爷提出的&#xff1a; 冯诺依曼体系结构…

基于AI大模型的医院SOP优化:架构、实践与展望

一、引言 1.1 研究背景与意义 近年来,人工智能(AI)技术取得了迅猛发展,尤其是大模型的出现,为各个领域带来了革命性的变化。在医疗领域,AI 医疗大模型正逐渐崭露头角,展现出巨大的应用潜力。随着医疗数据的海量积累以及计算能力的大幅提升,AI 医疗大模型能够对复杂的…

【论文阅读-思维链的构造方法02】4.1.2 Automatic Construction-01

提示1&#xff1a;本篇博客中涉及4篇相关论文&#xff0c;预计阅读时间10分钟&#xff0c;望各位友友耐心阅读&#xff5e; 提示2&#xff1a;本篇所有涉及的论文已打包发布&#xff0c;不需要任何积分即可下载&#xff0c;指路 --> 论文集下载地址 大模型技术-思维链CoT …

uniapp——微信小程序,从客户端会话选择文件

微信小程序选择文件 文章目录 微信小程序选择文件效果图选择文件返回数据格式 API文档&#xff1a; chooseMessageFile 微信小程序读取文件&#xff0c;请查看 效果图 选择文件 /*** description 从客户端会话选择文件* returns {String} 文件路径*/ const chooseFile () &g…

Android GameActivity(NativeActivity)读写文件

最近研究native android相关内容&#xff0c;其中最棘手的就是文件读写问题&#xff0c;最主要的是相关的文档很少。这里写下我所知道的方法。 由于本人使用的是Android14[arm64-v8a]版本的设备,能访问的路径相当有限&#xff0c;如果想要访问更多的路径&#xff0c;就不得不申…

YOLO11改进 | 卷积模块 | ECCV2024 小波卷积

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 本文给大家带来的教程是将YOLO11的Conv替…

从0开始的opencv之旅(1)cv::Mat的使用

目录 Mat 存储方法 创建一个指定像素方式的图像。 尽管我们完全可以把cv::Mat当作一个黑盒&#xff0c;但是笔者的建议是仍然要深入理解和学习cv::Mat自身的构造逻辑和存储原理&#xff0c;这样在查找问题&#xff0c;或者是遇到一些奇奇怪怪的图像显示问题的时候能够快速的想…

【Hadoop】Hadoop安全之Knox网关

目录 一、概述 2.1 knox介绍 2.2 版本信息 二、部署 三、验证Knox网关 3.1 Hdfs RESTFULL 3.2 HDFSUI 3.3 YARNUI 3.4 HBASEUI 一、概述 2.1 knox介绍 Apache Knox网关是一个用于与Apache Hadoop部署的REST api和ui交互的应用程序网关。Knox网关为所有与Apache Hadoop…

走方格(蓝桥杯2020年试题H)

【问题描述】在平面上有一些二维点阵。这些点的编号就像二维数组的编号一样&#xff0c;从上到下依次为第1~n行&#xff0c;从左到右依次为第1~m列&#xff0c;每个点可以用行号和列号表示。 现在有个人站在第1行第1列&#xff0c;他要走到第n行第m列&#xff0c;只能向右或者向…

uniapp Stripe 支付

引入 Stripe npm install stripe/stripe-js import { loadStripe } from stripe/stripe-js; Stripe 提供两种不同类型组件 Payment Element 和 Card Element&#xff1a;如果你使用的是 Payment Element&#xff0c;它是一个更高级别的组件&#xff0c;能够自动处理多种支…

Visual Studio 2022安装教程

1、下载网址 Visual Studio 2022 IDE安装网址借助 Visual Studio 设计&#xff0c;具有自动完成、构建、调试、测试功能的代码将与 Git 管理和云部署融为一体。https://visualstudio.microsoft.com/zh-hans/vs/ 点击图片所示 双击运行 2、安装 点击C桌面开发&#xff08;右边…

论文笔记PhotoReg: Photometrically Registering 3D Gaussian Splatting Models

1.abstract 最近推出的3D高斯飞溅(3DGS)&#xff0c;它用多达数百万个原始椭球体来描述场景&#xff0c;可以实时渲染。3DGS迅速声名鹊起。然而&#xff0c;一个关键的悬而未决的问题仍然存在&#xff1a;我们如何将多个3DG融合到一个连贯的模型中&#xff1f;解决这个问题将使…