机器学习--词向量转换
引言
在自然语言处理(NLP)的广阔领域中,计算机面临的一大挑战是理解人类语言的丰富性和复杂性。文本数据对于机器而言,最初只是一连串难以理解的字符。词向量转换便成为了一座关键的桥梁,它将文本中的单词映射为数值向量,使得计算机能够对文本进行高效处理和分析,为众多 NLP 任务,如文本分类、情感分析、机器翻译等,奠定了坚实的基础。
一、为什么需要词向量转换
人类语言丰富多样,单词具有语义、语法和语境等多重信息。但计算机擅长处理数值数据,原始文本无法直接被计算机理解和分析。词向量转换通过将单词转换为数值向量,把语言信息编码成计算机能处理的形式。这样,计算机可以利用这些向量进行计算,从而挖掘文本中的有用信息,实现对文本的理解和处理。
二、常见的词向量转换方法
(一)独热编码(One-Hot Encoding)
- 原理:独热编码为每个单词创建一个唯一的向量。假设词汇表大小为 N,那么每个单词的独热向量长度为 N,其中只有对应单词位置的元素为 1,其余位置均为 0。例如,对于词汇表 ["apple", "banana", "cherry"],"apple" 的独热编码为 [1, 0, 0],"banana" 为 [0, 1, 0],"cherry" 为 [0, 0, 1]。
- 优点:简单直观,易于实现和理解。
- 缺点:向量维度高且极其稀疏,当词汇表很大时,会导致计算量剧增和存储浪费。同时,这种编码方式无法体现单词之间的语义关系,每个向量都是孤立的。
(二)词袋模型(Bag of Words)
- 原理:把文本看作一个无序的单词集合。构建一个词汇表,统计每个单词在文本中出现的次数,生成一个向量。向量长度等于词汇表大小,每个元素对应词汇表中单词在文本中的出现次数。例如,对于文本 "I like apple and I like banana",词汇表为 ["I", "like", "apple", "banana", "and"],词袋模型向量为 [2, 2, 1, 1, 1]。
- 优点:简单有效,能保留文本的基本信息,在一些简单文本分类任务中表现尚可。
- 缺点:完全忽略单词顺序,丢失了句子的语法和语义结构信息,无法捕捉单词间的语义关系。
(三)Word2Vec
- 原理:基于神经网络的方法,旨在学习单词的分布式表示。主要有 Skip - Gram 和 Continuous Bag of Words(CBOW)两种模型架构。Skip - Gram 模型通过一个单词来预测其上下文单词;CBOW 则是通过上下文单词来预测目标单词。在大规模语料库上训练后,语义相近的单词在向量空间中的距离会比较近。例如,"car" 和 "automobile" 的词向量在空间中会很接近。
- 优点:能有效捕捉单词间的语义关系,生成的词向量维度较低且稠密,大大减少计算量和存储空间。相比独热编码和词袋模型,在语义理解任务上有显著提升。
- 缺点:词向量是固定的,对于一词多义的情况,一个单词只有一个固定向量表示,无法根据不同语境动态调整。
(四)GloVe(Global Vectors for Word Representation)
- 原理:基于全局词频统计的方法。通过对语料库中单词共现矩阵进行因式分解得到单词向量表示。它结合了局部上下文窗口和全局统计信息,在训练时考虑了单词在整个语料库中的共现频率。
- 优点:训练速度相对较快,性能较好,在捕捉语义关系方面表现出色,并且能利用全局统计信息更好地学习词向量。
- 缺点:同样存在一词多义问题,对于复杂语义场景的适应性有限。
(五)FastText
- 原理:在 Word2Vec 基础上,考虑了单词的子词信息。它将单词拆分成字符 n - gram,比如对于单词 "unhappiness",会考虑 "un", "hap", "app", "piness" 等子词信息。这样即使遇到未登录词(out - of - vocabulary words),也能根据子词信息生成合理的向量表示。
- 优点:能有效处理未登录词,在一些数据量较小或存在大量生僻词的场景中表现良好,训练速度快。
- 缺点:相较于一些复杂模型,对词向量语义表示的能力稍弱,在对语义理解要求极高的任务上表现可能欠佳。
(六)基于预训练语言模型的向量表示(如 BERT)
- 原理:BERT 是基于 Transformer 的双向预训练语言模型。它通过在大规模语料上进行无监督预训练,学习到丰富的语言知识。在处理文本时,能够根据上下文动态生成词向量,有效解决一词多义问题。例如在句子 "I bank at the river bank" 中,BERT 可以根据不同语境为两个 "bank" 生成不同的词向量。
- 优点:能捕捉极为丰富的语义信息,在各种 NLP 任务上展现出卓越性能,极大推动了 NLP 技术的发展。
- 缺点:计算资源需求巨大,训练和推理时间较长,对硬件设备要求高。
三、如何选择合适的词向量转换方法
选择词向量转换方法时,需综合多方面因素考量:
- 任务类型:对于简单文本分类、关键词提取等任务,词袋模型或 TF - IDF 可能就足够;而对于机器翻译、语义相似度计算、问答系统等对语义理解要求高的任务,Word2Vec、GloVe 或基于预训练模型的方法更合适。
- 数据规模:数据量较小且词汇表不大时,独热编码或简单的词袋模型可能适用;大规模语料库则更适合基于深度学习的方法,如 Word2Vec、BERT 等,它们能充分利用大量数据学习到更好的词向量表示。
- 是否有未登录词:如果数据中存在大量未登录词,FastText 是不错的选择,其基于子词的方法能有效处理这类情况。
- 计算资源和时间:资源有限且对时间要求高时,简单方法如词袋模型或计算效率高的 FastText 更合适;若有充足资源,BERT 等预训练模型能带来更好效果。
四、词向量转换代码实现
下面我们通过词向量转换来对苏宁易购好评差评分词
import pandas as pd#读取文件
cp_content=pd.read_table(r".\差评_1.txt",encoding='gbk')
yzpj_content=pd.read_table(r'.\优质评价_1.txt',encoding='gbk')import jieba
###################差评分词################
cp_segments=[]
#将cp_content中文件提取出来并转化维list列表
#cp_content是一个pandas的DataFrame对象
#cp_content.content 表示从 cp_content 数据框中选取名为 content 的列
#.values 方法将该列的数据转换为 numpy 数组
#.tolist() 方法将 numpy 数组转换为 Python 列表
contents=cp_content.content.values.tolist()for content in contents:#利用jieba库,将content语句按jieba库单词切分,返回一个包含这些词语的列表results=jieba.lcut(content)#过滤掉分词结果只有一个词的情况。因为单个词可能不具有足够的信息if len(results)>1:cp_segments.append(results)#使用 pandas 的 DataFrame 构造函数将 cp_segments 列表转换为一个 DataFrame 对象
#{"content": cp_segments} 表示创建一个名为 content 的列,该列的数据来自 cp_segments 列表。
cp_fc_results=pd.DataFrame({"content":cp_segments})
#使用 DataFrame 的 to_excel 方法将 cp_fc_results 数据框保存为 Excel 文件
#文件名为 cp_fc_results.xlsx。index=False 表示不保存行索引,只保存数据内容。
cp_fc_results.to_excel('cp_fc_results.xlsx',index=False)###################好评分词################
yzpj_segments=[]
contents=yzpj_content.content.values.tolist()
for content in contents:results=jieba.lcut(content)if len(results)>1:yzpj_segments.append(results)yzpj_fc_results=pd.DataFrame({'content':yzpj_segments})
yzpj_fc_results.to_excel('yzpj_fc_results.xlsx',index=False)#############################################
#从给定的文本分词结果中去除停用词
def drop_stopwords(contents,stopwords):segments_clean=[]for content in contents:line_clean = []for word in content:if word in stopwords:continueline_clean.append(word)segments_clean.append(line_clean)return segments_cleanstopwords=pd.read_table(r'D:\code\机器学习\pythonProject\11、文本数据学习_词向量转换\StopwordsCN.txt',encoding='utf8',index_col=False)
stopwords = stopwords.stopword.values.tolist()contents= cp_fc_results.content.values.tolist()
cp_fc_contents_clean_s = drop_stopwords(contents, stopwords)contents = yzpj_fc_results.content.values.tolist()
yzpj_fc_contents_clean_s = drop_stopwords(contents, stopwords)############################朴素贝叶斯分类############################cp_train=pd.DataFrame({'segments_clean':cp_fc_contents_clean_s,'label':1})#构建一个DataFrame表格数据
yzpj_train=pd.DataFrame({'segments_clean':yzpj_fc_contents_clean_s, 'label':0})
#连接表格
pj_train = pd.concat([cp_train,yzpj_train])
#当你设置 index=False 时,to_excel 方法在保存 DataFrame 到 Excel 文件时,不会将 DataFrame 的索引作为一列数据写入 Excel 文件中
pj_train.to_excel('pj_train.xlsx',index=False)#a的类型为series类型
a=pj_train['segments_clean']
#b的类型为ndarray类型
b=pj_train['segments_clean'].valuesfrom sklearn.model_selection import train_test_split
#.values 方法将该列的数据转换为 numpy 数组
x_train,x_test,y_train,y_test=train_test_split(pj_train['segments_clean'].values,pj_train['label'].values, random_state=0)#词向量CountVectorizer所能识别的类型有:字符串列表,可迭代的字符串对象,文件对象
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB,ComplementNB
from sklearn import metricswords =[]
#转换为词向量CountVectorizer所能识别的列表类型
for line_index in range(len(x_train)):#从x_train 中取出元素并拼接成字符串,然后将该字符串添加到 words列表中。#''.join(x_train[line_index]):# join() 是字符串对象的一个方法,它的作用是将可迭代对象中的字符串元素连接成一个字符串。# '' 是连接符,表示直接将子列表中的字符串依次拼接在一起,中间不插入任何字符。words.append(''.join(x_train[line_index]))
# print(words)#CountVectorizer 是 scikit-learn 库中用于将文本数据转换为词频矩阵的工具。
#max_features=4000该参数用于限制词频矩阵中特征(即单词或词组)的最大数量。
# CountVectorizer 会根据词频对所有特征进行排序,只选取词频最高的前 4000 个特征来构建词频矩阵。
#lowercase=False该参数控制是否将所有文本转换为小写。默认值为 True,即会将输入的文本全部转换为小写。
# 当设置为 False 时,CountVectorizer 会保留文本的原始大小写形式。
#ngram_range=(1, 3)该参数用于指定要提取的 n-gram 的范围。
# n-gram 是指文本中连续的 n 个单词或字符组成的序列。
# ngram_range=(1, 3) 表示同时提取 1-gram(单个单词)、2-gram(连续的两个单词)和 3-gram(连续的三个单词)作为特征。
vec = CountVectorizer(max_features=4000,lowercase = False, ngram_range=(1,3))
vec.fit(words)#传入训练集#创建一个多项式朴素贝叶斯分类器对象
classifier = MultinomialNB(alpha = 0.1)
#使用训练数据对该分类器进行训练
#vec 是之前创建的 CountVectorizer 对象,它用于将文本数据转换为词频矩阵。
#words 是一个字符串列表,每个字符串代表一个文本样本。
#vec.transform(words) 方法会将 words 列表中的文本数据转换为词频矩阵
#该矩阵的每一行对应一个文本样本,每一列对应一个特征(即单词或词组),矩阵中的元素表示该特征在对应样本中出现的次数。
classifier.fit(vec.transform(words),y_train)#训练数据集自测
train_pr = classifier.predict(vec.transform(words))
print(metrics.classification_report(y_train, train_pr))#分类结果。test_words =[]
for line_index in range(len(x_test)):test_words.append(''.join(x_test[line_index]))#对测试集进行预测
test_pr = classifier.predict(vec.transform(test_words))
print(metrics.classification_report(y_test,test_pr))#分类结果。
五、总结
词向量转换是 NLP 领域的基石,不同方法各有优劣,适用于不同场景。从简单的独热编码到复杂强大的预训练模型,每种方法都在推动 NLP 技术的进步。随着技术不断发展,新的词向量表示方法和改进思路不断涌现。在实际应用中,需深入理解各种方法,根据具体任务和数据特点精心选择,才能充分发挥词向量转换的作用,让计算机更好地理解和处理人类语言,为 NLP 应用的创新和发展注入动力。
相关文章:
机器学习--词向量转换
引言 在自然语言处理(NLP)的广阔领域中,计算机面临的一大挑战是理解人类语言的丰富性和复杂性。文本数据对于机器而言,最初只是一连串难以理解的字符。词向量转换便成为了一座关键的桥梁,它将文本中的单词映射为数值向…...
时序数据异常检测-综述
更新中 异常检测基本概念 广义的Out-of-Distribution(广义的OOD)来描述异常检测的相关问题。OOD包括五个相关的子领域,分别为Anomaly Detection(AD)、Novelty Detection(ND)、Open Set Recogntion(OSR)、Out-of-Distribution(OOD)和Outlier Detection(OD)。这5个…...
2025年Python的主要应用场景
李升伟 编译 Python在2025年仍是最受欢迎和强大的编程语言之一。其简洁易读的语法以及庞大的库生态系统,使其成为各行业开发者的首选。无论是构建复杂的数据管道,还是自动化重复性任务,Python都能提供广泛的应用场景,以实现快速、…...
树的深度遍历和广度遍历
目录 一、深度优先遍历(递归)二叉树的深度优先遍历(递归) 二、广度优先遍历二叉树的广度遍历 一、深度优先遍历(递归) #include<iostream> #include<vector>using namespace std;const int N1…...
C++函数如何返回多个参数
在编程中,我们经常会遇到需要函数返回多个值的场景。虽然 C 函数不能直接返回多个参数,但通过一些间接的方法,我们可以轻松实现这一需求。本文将详细介绍几种常见的实现方式,并分析它们的优缺点和适用场景。 1. 引言 在 C 中&…...
Python 实现的运筹优化系统代码详解(0-1规划指派问题)
一、引言 在数学建模的广阔领域中,指派问题作为一类经典且重要的组合优化问题,频繁出现在各类实际场景里。例如,在人力资源管理中,如何将不同技能水平的员工高效地分配到各个项目,以实现项目成本最小化或收益最大化&am…...
深度集成学习不均衡样本图像分类
用五个不同的网络,然后对分类概率进行平均,得到分类结果。基本上分类精度可以提升10% 1.导入基本库 import torch import copy import torch.nn as nn import torchvision.models as models from torchvision import datasets from torchvision import…...
ubuntu 20.04 复现 LVI-SAM
1.环境配置 ubuntu20.04 ROS-Noetic GTSAM 4.0.2 Ceres 1.14.0 前面的我都安装过了,但Ceres 我安装的是 2.2.0,现在安装Ceres 1.14.0 sudo apt-get update sudo apt-get install cmake libgoogle-glog-dev libgflags-dev libatlas-base-dev libeigen3-dev lib…...
每日OJ题_剑指offer数组篇(剑指offer04+剑指offer11+剑指offer21)
目录 剑指 Offer 04二维数组中的查找 代码解析 剑指 Offer 11旋转数组的最小数字 代码解析1 代码解析2 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 代码解析1 代码解析2 剑指 Offer 04二维数组中的查找 LCR 121. 寻找目标值 - 二维数组 - 力扣(LeetCo…...
使用 `tcpdump` 抓取 LiDAR 网络数据包详解
在调试机器人系统或自动驾驶平台时,我们经常需要分析网络中的 LiDAR(激光雷达)数据流。本文将介绍如何使用 tcpdump 工具对指定 IP 的数据包进行抓取和分析,特别是 LiDAR 数据的典型 UDP 报文。 一、什么是 tcpdump? …...
【NLP 55、强化学习与NLP】
万事开头难,苦尽便是甜 —— 25.4.8 一、什么是强化学习 强化学习和有监督学习是机器学习中的两种不同的学习范式 强化学习:目标是让智能体通过与环境的交互,学习到一个最优策略以最大化长期累积奖励。 不告诉具体路线,首先去做…...
【Linux】单例模式及其在线程池中的应用
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
Ansible的使用2
#### 一、Ansible变量 ##### facts变量 > facts组件是Ansible用于采集被控节点机器的设备信息,比如IP地址、操作系统、以太网设备、mac 地址、时间/日期相关数据,硬件信息等 - setup模块 - 用于获取所有facts信息 shell ## 常用参数 filter…...
十三届蓝桥杯省赛A组 扫描游戏
#算法/线段树 #算法/快读 参考题解: 题解参考 这题思路: 先将坐标进行极角排序,按照顺时针的先后顺序,如果出现两个坐标在一个象限中,我们就先判断这两个坐标是否在同一条直线上,如果在同一条直线上,我们按照离原点最近的长度进行排序 之后,我们通过线段树的方法,定义结点tr[i]…...
Python 序列构成的数组(list.sort方法和内置函数sorted)
list.sort方法和内置函数sorted list.sort 方法会就地排序列表,也就是说不会把原列表复制一份。这 也是这个方法的返回值是 None 的原因,提醒你本方法不会新建一个列 表。在这种情况下返回 None 其实是 Python 的一个惯例:如果一个函数 或者…...
C++类与对象进阶知识深度解析
目录 一、再谈构造函数 (一)构造函数体赋值 (二)初始化列表 (三)成员变量初始化顺序 (四)explicit关键字 二、static成员 (一)概念 (二&am…...
【机器学习案列】基于LightGBM算法的互联网防火墙异常行为检测:数据不平衡的解决方案
🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...
详解minio部署
MinIO 是一款高性能、开源的分布式对象存储解决方案,专为存储非结构化数据(如图片、视频、备份数据等)而设计。MinIO 在吞吐量和延迟上表现出高性能提供与 Amazon S3 完全兼容的 API,支持水平扩展,支持端到端加密、访问…...
校园AI体育:科技赋能教育,运动点亮未来
校园AI体育:科技赋能教育,运动点亮未来 在数字化浪潮的推动下,人工智能(AI)已经悄然走进校园,成为教育领域的一股创新力量。而在体育教育中,AI技术的引入更是为传统体育教学注入了新的活力。校…...
LeetCode算法题(Go语言实现)_35
题目 给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。 「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。 一、代码实现 func goodNodes(root *TreeNode) int {if root nil {return 0}return d…...
ROS2_control 对机器人控制(不完整,有时间再更新)
ROS2_control 对机器人控制 安装与介绍安装介绍 使用gz 中写法.yaml文件中写法type: joint_state_broadcaster/JointStateBroadcaster的来源 命令接口关节控制command_interfacetransmission CMakelist.txt与package.xml文件 gz_ros2_control与自定义插件例子描述自定义插件使用…...
SAP-ABAP:SAP Enterprise Services Repository(ESR)技术全景解析
以下是对SAP PO中Enterprise Services Repository(ESR)的深度技术解析,包含详细架构设计、开发实践及企业级应用方案: SAP Enterprise Services Repository(ESR)技术全景解析 一、ESR核心架构与组件关系 1. 技术堆栈定位 ┌─────────────────────…...
每日一道leetcode
2130. 链表最大孪生和 - 力扣(LeetCode) 题目 在一个大小为 n 且 n 为 偶数 的链表中,对于 0 < i < (n / 2) - 1 的 i ,第 i 个节点(下标从 0 开始)的孪生节点为第 (n-1-i) 个节点 。 比方说&…...
通过Aop实现限制修改删除指定账号的数据
1、需求 对于Teach账号创建的数据,其他用户仅仅只有查询的权限,而不能修改和删除。并且部分接口只允许Teach账号访问 2、实现思路 在删除和修改时往往需要传递数据的id,进而可以通过id查询该数据是否由Teach账号创建。当然我们可以在每个删…...
递归实现指数型枚举
我们以n2 为例 我们每次都有选和不选两种 方案,对于每个数字 核心代码 tatic void dfs(int u) { // u代表当前处理的数字if (u > n) { // 终止条件:处理完所有数字for (int i 1; i < n; i) { // 遍历所有数字if (nums[i]) {…...
无代码国产流程引擎 FlowLong 1.1.6 发布
无代码国产流程引擎 FlowLong 1.1.6 于 2025 年 4 月 7 日发布。 FlowLong 是一款纯血国产自研的工作流引擎,具有以下特点: 核心精简:引擎核心仅 8 张表实现逻辑数据存储,采用 json 数据格式存储模型,结构简洁直观。组…...
软考高项-考前冲刺资料-M 类【项目管理类】【光头张老师出品】
重点考点汇总 一、案例答题时需要注意: 1.条目写要清晰,要标注 1、2、3、4、… 2.关键字突出,关键字一定是专业词汇如 “监控”“控制成本”…等等,代替自己平时工作中的用此。 3.尽量多写几点,错了不扣分,但是避免重复写,避免写了一大段的内容,但是表达的是一个观点。…...
LLM Agents项目推荐:MetaGPT、AutoGen、AgentVerse详解
这一部分我们将深入介绍三大备受关注的LLM Agents项目:MetaGPT、AutoGen和AgentVerse,包括它们的背景、设计思路、主要功能、技术亮点以及典型应用场景。 1. MetaGPT:让AI像软件工程团队一样协作 项目背景 MetaGPT由Huang et al.于2023年提…...
win10家庭版安装Docker
win10家庭版本中成功安装Docker,亲测! 1、下载Docker 下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ Docker的有CE和EE版,CE为免费版,EE由公司支持的付费版,在此选择CE版本…...
mapbox基础,加载ESRI OpenStreetMap开放街景标准风格矢量图
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.1 ☘️mapboxgl.Map style属性二、🍀加载ESRI OpenStreetMap开放街景标准风…...
【网络安全 | 漏洞挖掘】通过分析JS文件实现接口未授权访问与账户接管
未经许可,不得转载。 文中所述漏洞均已修复,未经授权不得进行非法渗透测试。 文章目录 正文正文 大约一年前,我给我妈买了一辆 2023 款斯巴鲁 Impreza,前提是她得答应我,之后我可以借来做一次“白帽渗透测试”。过去几年我一直在研究其他车企的安全问题,但一直没有机会仔…...
引领东方语言识别新风潮!Dolphin语音模型开创自动语音识别(ASR)新时代
引领东方语言识别新风潮!Dolphin语音模型开创自动语音识别(ASR)新时代 在全球语音识别技术领域,随着人工智能的飞速发展,许多技术巨头纷纷推出了多语言支持的语音识别系统,如Whisper等。然而,尽…...
运动规划实战案例 | 基于四叉树分解的路径规划(附ROS C++/Python仿真)
目录 1 为什么需要四叉树?2 基于四叉树的路径规划2.1 分层抽象2.2 路图搜索2.3 动态剪枝 3 算法仿真3.1 ROS C算法仿真3.2 Python算法仿真 1 为什么需要四叉树? 路径规划的本质是在给定环境中寻找从起点到终点的最优或可行路径,其核心挑战在…...
java设计模式-享元模式
享元模式 基本介绍 1、享元模式(flyweight Pattern),也叫作蝇量模式:运用在共享技术有效的支持大量细粒度的对象。 2、常用语系统底层开发,解决系统的性能问题。像 数据库连接,里面都是创建好的连接对象,在这些连接对…...
Java 大视界 -- Java 大数据在智慧水利水资源调度与水情预测中的应用创新(180)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
自动驾驶---苹果又要造车了吗?
1 背景 巴菲特一直认为造车的企业是一个做 “苦生意” 的企业,可能苹果高层也意识到了这一点, 于是造车计划在去年被终止。 但2025年2月份,苹果公司署名发了一篇自动驾驶领域的论文《Robust Autonomy Emerges from Self-Play》,详…...
Redis主从复制:告别单身Redis!
目录 一、 为什么需要主从复制?🤔二、 如何搭建主从架构?前提条件✅步骤📁 创建工作目录📜 创建 Docker Compose 配置文件🚀 启动所有 Redis🔍 验证主从状态 💡 重要提示和后续改进 …...
PHP:将关联数组转换为索引数组的完整示例
处理之前的数据 头和行在一起显示 // 执行SQL查询后的原始数据(假设查询返回3条记录) $rawData [[wip_entity_name > JOB001,primary_item > ITEM001,primary_name > 主产品1,primary_desc > 主产品描述1,start_quantity > 100,quanti…...
27.[2019红帽杯]easyRE1(保姆教程)
收到文件,.elf 文件,ExeinfoPE查看一下基础信息。无壳,64bit。 把文件拖入IDA工具,查看一下。 点击关键字,ctrl x 交叉搜索一下位置,跟进,顺便菜单左侧 Edit --> Plugins--> findcrypt …...
【Redis】Redis实现分布式锁
1. 基于Redis 1.1 加锁 setnx lockKey uniqueValue1.2 解锁 基于Lua脚本保证解锁的原子性。Redis在执行Lua脚本时,可以以原子性的方式执行,确保原子性。 if redis.call("get", keys[1]) argv[1] then return redis.call("del", …...
AI大模型底层技术——Scaling Law
0. 定义 Scaling Law 是描述 AI 模型性能随关键因素(如参数量、数据量、计算量)增长而变化的数学规律,通常表现为幂律关系。 历史里程碑: **OpenAI 2020 年论文首次系统提出语言模型的缩放定律**DeepMind、Google 等机构后续发表…...
Spring MVC 国际化机制详解(MessageSource 接口体系)
Spring MVC 国际化机制详解(MessageSource 接口体系) 1. 核心接口与实现类详解 接口/类名描述功能特性适用场景MessageSource核心接口,定义消息解析能力支持参数化消息(如{0}占位符)所有国际化场景的基础接口Resource…...
java学习笔记13——IO流
File 类的使用 常用构造器 路径分隔符 常用方法 File类的获取功能和重命名功能 File 类的判断功能 File类的创建功能和删除功能 File 类的使用 总结: 1.File类的理解 > File类位于java.io包下,本章中涉及到的相关流也都声明在java.io包下 > File…...
防DDoS流量清洗核心机制解析
本文深度剖析DDoS流量清洗技术演进路径,揭示混合云清洗系统的四层过滤架构,结合2023年新型反射攻击案例,提出基于AI行为分析的动态防御策略。通过Gartner最新攻防效能数据与金融行业实战方案,阐明流量清洗系统在误判率、清洗延迟、…...
边缘计算革命:低功耗GPU在自动驾驶实时决策中的应用
边缘计算革命:低功耗GPU在自动驾驶实时决策中的应用 ——分析NVIDIA Jetson与华为昇腾的嵌入式方案差异 一、自动驾驶的实时决策挑战与边缘计算需求 自动驾驶系统需在30ms内完成环境感知、路径规划与车辆控制的全流程闭环。传统云端计算受限于网络延迟…...
ubuntu24.04-MyEclipse的项目导入到 IDEA中
用myeclipse创建的一个web项目, jdk1.7,tomcat7,mysql8.0,导入到idea项目中 1.导入现有项目 1.打开IDEA,选择“Import Project”进入下一步 2.选择所需要导入的项目,点击“OK” 3.点击创建一个新的项目,然后下一步 4.直接点…...
基于SpringBoot的律师事务所案件管理系统【附源码】
基于SpringBoot的律师事务所案件管理系统(源码L文说明文档) 目录 4 系统设计 4.1界面设计原则 4.2功能结构设计 4.3数据库设计 4.3.1属性图 4.3.2 数据库物理设计 5 系统实现 5.1客户信息管理 5.2 律师…...
电力网关:推动电力物联网及电力通信系统革新
在“双碳”目标与新型电力系统建设的背景下,电力行业正加速向数字化、智能化、绿色化转型。作为国内领先的电力物联网解决方案提供商,厦门计讯物联科技有限公司(以下简称“计讯物联”)依托自主研发的电力专用网关、边缘计算平台及…...
Android系统的Wi-Fi系统框架和详细启动流程
目录 一、前言 二、系统架构层次 1、应用层 2、Framework层 3、HAL层 4、驱动层 三、Wi-Fi 目录树结构 四、系统流程 1、应用层请求 2、Wi-Fi管理服务处理 3、硬件交互 4、数据处理与事件通知 5.连接管理 6.状态维护 五、WiFi启动流程及函数调用…...
Scala基础知识8
集合计算高级函数 包括过滤、转换或映射、扁平化、扁平化加映射、分组、简化(归约),折叠 过滤:遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。 转换或映射:将原始集合中的元素映射到某个函数中。 扁平化:取消嵌套格式&…...