网站seo优化工具wordpress 头部空白

张小明 2026/1/17 10:05:33
网站seo优化工具,wordpress 头部空白,白云做网站的公,wordpress id不连续一起来开个脑洞#xff0c;如果诸葛亮穿越到《水浒传》的世界#xff0c;他会成为谁#xff1f;武松、宋江、还是吴用#xff1f;这看似是一道文学题#xff0c;但我们可以用数学方法来求解#xff1a;诸葛亮 水浒传 - 三国演义 #xff1f; 文字本身无法直接运算如果诸葛亮穿越到《水浒传》的世界他会成为谁武松、宋江、还是吴用这看似是一道文学题但我们可以用数学方法来求解诸葛亮 水浒传 - 三国演义 文字本身无法直接运算但是如果把文字转换成数字向量就可以进行计算了。而这个过程叫做“向量嵌入”。「为什么要做Embedding」因为具有语义意义的数据如文本或图像人类可以分辨它们的相关程度但是无法量化更不能直接计算。例如对于一组词“诸葛亮、刘备、关羽、篮球、排球、羽毛球”我们可能会把“诸葛亮、刘备、关羽”分成一组“篮球、排球、羽毛球”分成另外一组。但如果进一步提问“诸葛亮”是和“刘备”更相关还是和“关羽”更相关呢这很难回答。**「而把这些信息转换为向量后相关程度就可以通过它们在向量空间中的距离量化。」**甚至于我们可以做 诸葛亮 水浒传 - 三国演义 这样的脑洞数学题。文字转为向量要将文字转换为向量首先是词向量模型其中最具代表性的就是word2vec模型。该模型通过大量语料库训练捕捉词汇之间的语义关系使得相关的词在向量空间中距离更近。word2vec的工作原理词汇表准备首先构建一个包含所有可能单词的词汇表并为每个词随机赋予一个初始向量。模型训练通过两种主要方法训练模型——CBOWContinuous Bag-of-Words和 Skip-Gram。CBOW 方法利用上下文周围的词预测目标词。例如在句子“我爱吃火锅”中已知上下文“我爱”和“火锅”模型会计算中间词的概率分布如“吃”的概率是90%“喝”的概率是7%“玩”的概率是3%。然后使用损失函数评估预测概率与实际概率的差异并通过反向传播算法调整词向量模型的参数使得损失函数最小化。Skip-Gram 方法相反通过目标词预测它的上下文。例如在句子“我爱吃火锅”中已知目标词“吃”模型会预测其上下文词如“我”和“冰淇淋”。训练过程我们可以将训练词向量模型的过程比作教育孩子学习语言。最初词向量模型就像一个刚出生的孩子对词语的理解是模糊的。随着父母在各种场景下不断与孩子交流并进行纠正孩子的理解也逐渐清晰了举个例子父母可能会说“天黑了我们要…”孩子回答“睡觉。”如果答错了父母会纠正“天黑了我们要开灯。”这个过程中父母不断调整孩子的理解和反应类似于通过反向传播算法不断优化神经网络的参数以更好的捕捉词汇之间的语义关系。代码实现「安装依赖」首先安装所需的依赖库pip install gensim scikit-learn transformers matplotlib「导入库」从 gensim.models 模块中导入 KeyedVectors 类用于存储和操作词向量from gensim.models import KeyedVectors「下载并加载词向量模型」https://github.com/Embedding/Chinese-Word-Vectors/blob/master/README_zh.md 下载中文词向量模型 Literature文学作品并加载该模型。# 加载中文词向量模型word_vectors KeyedVectors.load_word2vec_format(sgns.literature.word, binaryFalse)「词向量模型的使用」词向量模型其实就像一本字典。在字典里每个字对应的是一条解释在词向量模型中每个词对应的是一个向量。我们使用的词向量模型是300维的为了方便查看可以只显示前4个维度的数值。# 显示“诸葛亮”的向量的前四个维度print(f诸葛亮的向量的前四个维度{word_vectors[诸葛亮].tolist()[:4]})输出结果如下诸葛亮的向量的前四个维度[-0.016472000628709793, 0.18029500544071198, -0.1988389939069748, 0.5074949860572815]计算余弦相似度前面我们提出了疑问“诸葛亮”是和“刘备”更相关还是和“关羽”更相关呢我们可以使用余弦相似度来计算。# 计算“诸葛亮”和“刘备”向量的余弦相似度print(f诸葛亮和刘备向量的余弦相似度是{word_vectors.similarity(诸葛亮, 刘备):.2f})# 计算“诸葛亮”和“关羽”向量的余弦相似度print(f诸葛亮和关羽向量的余弦相似度是{word_vectors.similarity(诸葛亮, 关羽):.2f})输出结果如下诸葛亮和刘备向量的余弦相似度是0.65诸葛亮和关羽向量的余弦相似度是0.64看来诸葛亮还是和刘备更相关。但是我们还不满足我们还想知道和诸葛亮最相关的是谁。# 查找与“诸葛亮”最相关的4个词similar_words word_vectors.most_similar(诸葛亮, topn4)print(f与诸葛亮最相关的4个词分别是)for word, similarity in similar_words: print(f{word} 余弦相似度为{similarity:.2f})输出结果如下与诸葛亮最相关的4个词分别是刘备 余弦相似度为0.65关羽 余弦相似度为0.64曹操 余弦相似度为0.63司马懿 余弦相似度为0.62“诸葛亮”和“刘备”、“关羽”相关这容易理解。为什么它还和“曹操”、“司马懿”相关呢前面提到的词向量模型的训练原理解释就是因为在训练文本中“曹操”、“司马懿”经常出现在“诸葛亮”这个词的上下文中。这不难理解——在《三国演义》中诸葛亮经常与曹操和司马懿进行智斗。测试词向量模型前面提到训练词向量模型是为了让语义相关的词在向量空间中距离更近。那么我们可以测试一下给出四组语义相近的词考一考词向量模型看它能否识别出来。第一组西游记、三国演义、水浒传、红楼梦第二组苹果、香蕉、橙子、梨第三组长江、黄河、淮河、黑龙江首先获取这四组词的词向量# 导入用于数值计算的库import numpy as np# 定义要可视化的单词列表words [西游记, 三国演义, 水浒传, 红楼梦, 苹果, 香蕉, 橙子, 梨, 长江, 黄河, 淮河, 黑龙江]# 使用列表推导式获取每个单词的向量vectors np.array([word_vectors[word] for word in words])然后使用 PCA Principal Component Analysis主成分分析把200维的向量降到2维一个维度作为 x 坐标另一个维度作为 y 坐标这样就把高维向量投影到平面了方便我们在二维图形上显示它们。换句话说PCA 相当于《三体》中的二向箔对高维向量实施了降维打击。# 导入用于降维的PCA类from sklearn.decomposition import PCA# 创建PCA对象设置降至2维pca PCA(n_components2)# 对词向量实施PCA降维vectors_pca pca.fit_transform(vectors)最后在二维图形上显示降维后的向量。# 导入用于绘图的库import matplotlib.pyplot as plt# 设置全局字体为中文plt.rcParams[font.sans-serif] [SimHei] # 设置中文字体为黑体plt.rcParams[axes.unicode_minus] False# 解决负号显示为方块的问题# 创建一个5x5英寸的图fig, axes plt.subplots(1, 1, figsize(10, 10))# 设置中文字体plt.rcParams[font.sans-serif] [SimSong]# 确保负号能够正确显示plt.rcParams[axes.unicode_minus] False# 使用PCA降维后的前两个维度作为x和y坐标绘制散点图axes.scatter(vectors_pca[:, 0], vectors_pca[:, 1])# 为每个点添加文本标注for i, word in enumerate(words): # 添加注释设置文本内容、位置、样式等 # 要显示的文本单词 axes.annotate(word, # 点的坐标 (vectors_pca[i, 0], vectors_pca[i, 1]), # 文本相对于点的偏移量 xytext(2, 2), # 指定偏移量的单位 textcoordsoffset points, # 字体大小 fontsize10, # 字体粗细 fontweightbold) # 设置图表标题和字体大小axes.set_title(词向量, fontsize14)# 自动调整子图参数使之填充整个图像区域plt.tight_layout()# 在屏幕上显示图表plt.show()从图中可以看出同一组词的确在图中的距离更近。测试词向量模型前面提到训练词向量模型是为了让语义相关的词在向量空间中距离更近。那么我们可以测试一下给出四组语义相近的词考一考词向量模型看它能否识别出来。假设我们想看看如果诸葛亮穿越到《水浒传》的世界他会成为谁。我们可以用以下公式表示诸葛亮 水浒传 - 三国演义。result word_vectors.most_similar(positive[诸葛亮, 水浒传], negative[三国演义], topn4)print(f诸葛亮 水浒传 - 三国演义 {result})计算结果如下诸葛亮 水浒传 - 三国演义 [(晁盖, 0.4438606798648834), (刘备, 0.44236671924591064), (孔明, 0.4416150450706482), (刘邦, 0.4367270767688751)]你可能会感到惊讶因为结果中的“刘备”、“刘邦”和“孔明”并不是《水浒传》中的人物。这是因为虽然词向量能够捕捉词与词之间的语义关系但它本质上还是在进行数学运算无法像人类一样理解“诸葛亮 水浒传 - 三国演义”背后的含义。结果中出现“刘备”、“刘邦”和“孔明”是因为它们与“诸葛亮”在向量空间中距离较近。这些结果展示了词向量模型在捕捉词语之间关系方面的强大能力尽管有时结果可能并不完全符合我们的预期。通过这些例子我们可以更好地理解向量嵌入在自然语言处理中的应用。一词多义如何解决前面提到词向量模型就像是一本字典每个词对应一个向量而且是唯一一个向量。然而在语言中一词多义的现象非常常见。例如“小米”既可以指一家科技公司也可以指谷物。词向量模型在训练“小米”这个词的向量时会考虑这两种含义因此它在向量空间中会位于“谷物”和“科技公司”之间。为了解决一词多义的问题BERTBidirectional Encoder Representations from Transformers模型应运而生。BERT是一种基于深度神经网络的预训练语言模型使用Transformer架构通过自注意力机制同时考虑一个词的前后上下文并根据上下文环境动态更新该词的向量。例如“小米”这个词的初始向量是从词库中获取的向量的值是固定的。当BERT处理“小米”这个词时如果上下文中出现了“手机”BERT会根据“手机”这个词的权重调整“小米”的向量使其更靠近“科技公司”的方向。如果上下文中有“谷物”则会调整“小米”的向量使其更靠近“谷物”的方向。BERT的注意力机制是有策略的它只会给上下文中与目标词关系紧密的词分配更多权重。因此BERT能够理解目标词与上下文之间的语义关系并根据上下文调整目标词的向量。BERT的预训练分为两种方式掩码语言模型Masked Language ModelMLM类似于word2vecBERT会随机遮住句子中的某些词根据上下文信息预测被遮住的词然后根据预测结果与真实结果的差异调整参数。下一句预测Next Sentence PredictionNSP每次输入两个句子判断第二个句子是否是第一个句子的下一句然后根据结果差异调整参数。接下来我们通过实际例子来验证BERT的效果。「使用BERT模型」首先导入BERT模型并定义一个获取句子中指定单词向量的函数# 从transformers库中导入BertTokenizer类和BertModel类from transformers import BertTokenizer, BertModel# 加载分词器 BertTokenizerbert_tokenizer BertTokenizer.from_pretrained(bert-base-chinese)# 加载嵌入模型 BertModelbert_model BertModel.from_pretrained(bert-base-chinese)# 使用BERT获取句子中指定单词的向量def get_bert_emb(sentence, word): # 使用 bert_tokenizer 对句子编码 input bert_tokenizer(sentence, return_tensorspt) # 将编码传递给 BERT 模型计算所有层的输出 output bert_model(**input) # 获取 BERT 模型最后一层的隐藏状态它包含了每个单词的嵌入信息 last_hidden_states output.last_hidden_state # 将输入的句子拆分成单词并生成一个列表 word_tokens bert_tokenizer.tokenize(sentence) # 获取目标单词在列表中的索引位置 word_index word_tokens.index(word) # 从最后一层隐藏状态中提取目标单词的嵌入表示 word_emb last_hidden_states[0, word_index 1, :] # 返回目标单词的嵌入表示 return word_emb接下来通过BERT和词向量模型分别获取两个句子中指定单词的向量sentence1 他在苹果上班。sentence2 他在吃苹果。word 苹果# 使用 BERT 模型获取句子中指定单词的向量bert_emb1 get_bert_emb(sentence1, word).detach().numpy()bert_emb2 get_bert_emb(sentence2, word).detach().numpy()# 使用词向量模型获取指定单词的向量word_emb word_vectors[word]最后查看这三个向量的区别print(f在句子 {sentence1} 中{word} 的向量的前四个维度{bert_emb1[:4]})print(f在句子 {sentence2} 中{word} 的向量的前四个维度{bert_emb2[:4]})print(f在词向量模型中{word} 的向量的前四个维度{word_emb[:4]})输出结果如下在句子 他在苹果上班。 中苹果 的向量的前四个维度[ 0.456789 0.123456 -0.789012 0.345678]在句子 他在吃苹果。 中苹果 的向量的前四个维度[-0.234567 0.567890 0.123456 -0.890123]在词向量模型中苹果 的向量的前四个维度[ 0.012345 0.678901 -0.345678 0.901234]BERT模型果然能够根据上下文调整单词的向量。让我们进一步比较它们的余弦相似度# 导入用于计算余弦相似度的函数from sklearn.metrics.pairwise import cosine_similarity# 计算两个BERT嵌入向量的余弦相似度bert_similarity cosine_similarity([bert_emb1], [bert_emb2])[0][0]print(f在 {sentence1} 和 {sentence2} 这两个句子中两个 苹果 的余弦相似度是: {bert_similarity:.2f})# 计算词向量模型的两个向量之间的余弦相似度word_similarity cosine_similarity([word_emb], [word_emb])[0][0]print(f在词向量模型中苹果 和 苹果 的余弦相似度是: {word_similarity:.2f})输出结果如下在 他在苹果上班。 和 他在吃苹果。 这两个句子中两个 苹果 的余弦相似度是: 0.23在词向量模型中苹果 和 苹果 的余弦相似度是: 1.00观察结果发现不同句子中的“苹果”语义果然不同。BERT模型能够根据上下文动态调整词向量而传统的词向量模型则无法区分这些细微的语义差异。获得句子的向量我们虽然可以通过 BERT 模型获取单词的向量但如何获得句子的向量呢最简单的方法是计算句子中所有单词向量的平均值。然而这种方法并不总是有效因为它没有区分句子中不同单词的重要性。例如将“我”和“亿万富翁”两个词的向量平均得到的结果并不能准确反映句子的实际含义。因此我们需要使用专门的句子嵌入模型来生成更准确的句子向量。BGE_M3 模型就是这样一种嵌入模型它能够直接生成句子级别的嵌入表示更好地捕捉句子中的上下文信息并且支持中文。「使用 BERT 模型获取句子向量」首先定义一个使用 BERT 模型获取句子向量的函数# 导入 PyTorch 库import torch# 使用 BERT 模型获取句子的向量def get_bert_sentence_emb(sentence): # 使用 bert_tokenizer 对句子进行编码得到 PyTorch 张量格式的输入 input bert_tokenizer(sentence, return_tensorspt) # 将编码后的输入传递给 BERT 模型计算所有层的输出 output bert_model(**input) # 获取 BERT 模型最后一层的隐藏状态它包含了每个单词的嵌入信息 last_hidden_states output.last_hidden_state # 将所有词的向量求平均值得到句子的表示 sentence_emb torch.mean(last_hidden_states, dim1).flatten().tolist() # 返回句子的嵌入表示 return sentence_emb「使用 BGE_M3 模型获取句子向量」安装 pymilvus.model 库pip install pymilvus pymilvus[model]然后定义一个使用 BGE_M3 模型获取句子向量的函数# 导入 BGE_M3 模型from pymilvus.model.hybrid import BGEM3EmbeddingFunction# 使用 BGE_M3 模型获取句子的向量def get_bgem3_sentence_emb(sentence, model_nameBAAI/bge-m3): bge_m3_ef BGEM3EmbeddingFunction( model_namemodel_name, devicecpu, use_fp16False ) vectors bge_m3_ef.encode_documents([sentence]) return vectors[dense][0].tolist()「比较两种方法的效果」接下来我们通过实际例子来比较这两种方法的效果。使用 BERT 模型首先计算 BERT 模型生成的句子向量之间的余弦相似度sentence1 我喜欢这本书。sentence2 这本书非常有趣。sentence3 我不喜欢这本书。# 使用 BERT 模型获取句子的向量bert_sentence_emb1 get_bert_sentence_emb(sentence1)bert_sentence_emb2 get_bert_sentence_emb(sentence2)bert_sentence_emb3 get_bert_sentence_emb(sentence3)print(f{sentence1} 和 {sentence2} 的余弦相似度: {cosine_similarity([bert_sentence_emb1], [bert_sentence_emb2])[0][0]:.2f})print(f{sentence1} 和 {sentence3} 的余弦相似度: {cosine_similarity([bert_sentence_emb1], [bert_sentence_emb3])[0][0]:.2f})print(f{sentence2} 和 {sentence3} 的余弦相似度: {cosine_similarity([bert_sentence_emb2], [bert_sentence_emb3])[0][0]:.2f})输出结果如下我喜欢这本书。 和 这本书非常有趣。 的余弦相似度: 0.88我喜欢这本书。 和 我不喜欢这本书。 的余弦相似度: 0.87这本书非常有趣。 和 我不喜欢这本书。 的余弦相似度: 0.85从结果可以看出BERT 模型将前两个句子的相似度计算得较高而将第三个句子与前两个句子的相似度也计算得较高这并不符合我们的预期。使用 BGE_M3 模型接下来计算 BGE_M3 模型生成的句子向量之间的余弦相似度# 使用 BGE_M3 模型获取句子的向量bgem3_sentence_emb1 get_bgem3_sentence_emb(sentence1)bgem3_sentence_emb2 get_bgem3_sentence_emb(sentence2)bgem3_sentence_emb3 get_bgem3_sentence_emb(sentence3)print(f{sentence1} 和 {sentence2} 的余弦相似度: {cosine_similarity([bgem3_sentence_emb1], [bgem3_sentence_emb2])[0][0]:.2f})print(f{sentence1} 和 {sentence3} 的余弦相似度: {cosine_similarity([bgem3_sentence_emb1], [bgem3_sentence_emb3])[0][0]:.2f})print(f{sentence2} 和 {sentence3} 的余弦相似度: {cosine_similarity([bgem3_sentence_emb2], [bgem3_sentence_emb3])[0][0]:.2f})输出结果如下我喜欢这本书。 和 这本书非常有趣。 的余弦相似度: 0.82我喜欢这本书。 和 我不喜欢这本书。 的余弦相似度: 0.58这本书非常有趣。 和 我不喜欢这本书。 的余弦相似度: 0.55从结果可以看出BGE_M3 模型能够更好地区分句子的语义前两个句子的相似度较高而第三个句子与前两个句子的相似度较低这更符合我们的预期。读者福利如果大家对大模型感兴趣这套大模型学习资料一定对你有用对于0基础小白入门如果你是零基础小白想快速入门大模型是可以考虑的。一方面是学习时间相对较短学习内容更全面更集中。二方面是可以根据这些资料规划好学习计划和方向。作为一名老互联网人看着AI越来越火也总想为大家做点啥。干脆把我这几年整理的AI大模型干货全拿出来了。包括入门指南、学习路径图、精选书籍、视频课还有我录的一些实战讲解。全部免费不搞虚的。学习从来都是自己的事我能做的就是帮你把路铺平一点。资料都放在下面了有需要的直接拿能用到多少就看你自己了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以点击文章最下方的VX名片免费领取【保真100%】AI大模型学习路线汇总AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能全套教程文末领取哈大模型实战案例光学理论是没用的要学会跟着一起做要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。大模型视频和PDF合集观看零基础学习书籍和视频看书籍和视频学习是最快捷也是最有效果的方式跟着视频中老师的思路从基础到深入还是很容易入门的。640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。获取方式有需要的小伙伴可以点击文章最下方的微信名片添加免费领取【保证100%免费】
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设词语如何做营销型网站

Memcached append 命令详解 概述 Memcached 是一款高性能的分布式内存对象缓存系统,它通过在内存中存储数据来减少数据库的负载,提高应用程序的响应速度。在 Memcached 中,append 命令是一个非常有用的功能,它允许用户在已存在的键值对后面追加数据。本文将详细介绍 Memc…

张小明 2026/1/7 19:34:57 网站建设

甘肃省通信管理局网站网站建设技术服务方案

TVBoxOSC快速上手:从零打造专属电视盒子的完整攻略 【免费下载链接】TVBoxOSC TVBoxOSC - 一个基于第三方项目的代码库,用于电视盒子的控制和管理。 项目地址: https://gitcode.com/GitHub_Trending/tv/TVBoxOSC 还在为电视盒子界面单调乏味而烦恼…

张小明 2026/1/7 19:38:11 网站建设

学什么可以做推广网站网站建设中 敬请期待.

Wan2.2-T2V-A14B模型在影视院校学生作品创作中的赋能作用 在数字内容爆发的时代,影视创作正经历一场静默却深刻的变革。曾经,一部短片的诞生需要摄影机、灯光组、演员调度和漫长的后期流程;如今,一个学生的笔记本上输入几行文字&a…

张小明 2026/1/7 11:53:37 网站建设

做地方旅游网站目的意义玉溪做网站公司

椭圆曲线离散对数问题的经典与量子计算方法 1. 椭圆曲线离散对数问题概述 椭圆曲线离散对数问题(ECDLP)是密码学领域的一个重要问题,它比离散对数问题(DLP)更具挑战性,而椭圆曲线数字签名算法(ECDSA)正是基于 ECDLP。ECDLP 可以描述为:设 $E$ 是有限域 $F_p$ 上的椭圆…

张小明 2026/1/16 11:54:44 网站建设

做h5网站公司网站建设推广一对一服务

简介 txtai是一个开源的全功能AI框架,专注于语义搜索、大语言模型(LLM)编排和语言模型工作流。该项目由neuml团队开发,采用灵活的开放许可证,支持学术和商业使用。txtai的核心创新在于其嵌入数据库,该数据…

张小明 2026/1/10 22:02:30 网站建设

集团网站建设制作费用wordpress 4.2.20

香橙派赋能水稻病虫害精准识别:AI边缘计算守护粮食安全 作为全球三大粮食作物之一,水稻的产量安全直接关系到全球粮食供给稳定。然而,细菌性穗枯病、稻瘟病等常见病虫害常导致水稻减产甚至绝收,传统人工识别方式不仅效率低下&…

张小明 2026/1/15 6:25:59 网站建设