Ontology-enhanced Prompt-tuning for Few-shot Learning
本文仅供参考、交流、学习 论文地址:https://arxiv.org/abs/2201.11332 代码和数据集地址:暂无
1. 摘要
小样本学习(FSL)的目标是基于有限数量的样本进行预测。结构化数据(如知识图谱和本体库)已经被用来协助各种任务中的小样本情况。然而,现有方法所采用的先验存在知识缺失、知识噪声和知识异质性等问题,影响了小样本学习的性能。在本研究中,我们探讨基于预训练语言模型的FSL知识注入,并提出本体增强提示调优(OntoPrompt)。具体来说,我们开发了基于外部知识图的本体转换来解决知识缺失问题,实现了结构知识向文本的转换。在此基础上,引入了基于可见矩阵的跨敏感知识注入方法来选择信息丰富的知识,以解决知识噪声问题。为了弥合知识与文本之间的鸿沟,我们提出了一种集体训练算法来共同优化表示。我们用8个数据集,在关系抽取、事件抽取和知识图补全三个任务中评估了我们提出的OntoPrompt。实验结果表明,该方法可以获得比基线更好的小样本性能。
2. 小样本存在的问题
知识缺失: 由于外部知识库的不完备,知识注入可能无法检索到与任务相关的事实,从而无法为下游任务提供有用甚至无关的信息。如何丰富与任务相关的知识是一个重要的问题;
知识噪声: 以往的研究表明,并不是所有的知识都对下游任务有益,不加选择的知识注入可能导致负性知识注入,不利于下游任务的执行;
知识异质性: 下游任务的语言语料库与注入知识的语料库有很大的不同,导致两个独立的向量表示。如何设计一种融合知识信息的特殊联合训练目标是另一个挑战。
3. 解决方法
3.1 本体转换
本文提出了本体转换方法,将结构知识丰富并转化为文本形式。具体来说,我们利用预定义的模板作为提示将知识转换为文本。我们利用预定义的模板作为提示将知识转换为文本。提示调优可以减少训练前模型任务和下游任务之间的差距。例如,给定一个句子,“Turing entered King’s College, Cambridge in 1931, and then went to Princeton University to study for a doctorate,”我们可以根据本体将它们归纳为一个知识丰富的提示:“Turing [MASK] King’s College, Cambridge.”,语言模型应该在掩码位置预测标签字符,以确定输入的标签。需要注意的是,作为提示的本体将实体知识放置到输入文本中,该文本与模型无关,可以插入任何类型的预训练语言模型中。
3.2 基于广度敏感的知识注入
提出了基于广度敏感的知识i注入方法,以选择信息知识并降低注入噪声。由于并非所有的外部知识都能对下游任务有利,一些无关的、嘈杂的知识可能会导致原句的含义发生变化,我们利用一个基于广度的可见矩阵及其对应的外部知识对知识注入进行引导。这样,并不是输入句子中的所有标记都受到外部知识的影响。
3.3 集体训练算法
本文提出了一种集体训练算法来共同优化表示。注意,注入的外部知识应该与周围的环境相关联;我们添加了一些随机初始化的可学习标记,并对这些标记和注入的本体标记进行了优化。在之前的研究的启发下,低数据状态下的提示调优是不稳定的,可能会获得较差的性能,我们进一步优化所有参数,以集体训练本体文本和输入表示。
4. 具体方案
OntoPrompt是一个通用框架,可以应用于广泛的应用程序,如图2所示。我们在三个流行 任务中评估了我们的方法,即关系抽取(RE),事件抽取(EE)和知识图完成(KGC)。在注入本体知识的过程中,引入本体转换,将结构知识转化为原始文本(本体文本)。我们将这些原始文本视为辅助提示,并将它们附加到输入序列和提示模板中。请注意,那些本体文本,包括文本描述,可以提供关于上述实体/跨度的本体的语义信息。在微调过程中,我们将这些知识整合到广度敏感知识注入中,以避免外部干扰。我们进一步引入集体训练,共同优化提示和语言模型。
图2
4.1 带有提示调优的通用框架
设 X i n = { x 1 , x 2 , . . . , x L } X_{in}=\{x_1,x_2,...,x_L\} X i n = { x 1 , x 2 , . . . , x L } 是一个句子, x i x_i x i 是输入句子中的第 i i i 个字符, L L L 是字符数。具体来说, X i n X_{in} X i n 被转换为固定的字符序列 X ˉ i n \bar{X}_{in} X ˉ i n ,然后映射到隐向量序列{ h k ∈ R d h_k\in R^d h k ∈ R d }。给定输入序列 X ~ i n = [ C L S ] X i n [ S E P ] \tilde{X}_{in}=[CLS]X_{in}[SEP] X ~ i n = [ C L S ] X i n [ S E P ] ,普通的微调方法在 [ C L S ] [CLS] [ C L S ] 嵌入上利用一个通用的头层来预测输出类(例如,一个MLP层)。在本文中,我们遵循先前的提示调优研究Making Pre-trained Language Models Better Few-shot Learners,并使用特定于任务的模式字符串([Template] T)诱导模型产生与给定类(label token M(Y))相对应的文本输出。具体来说, X p r o m p t X_{prompt} X p r o m p t 包含一个[MASK]字符,直接与语言模型输入任务如下: X p r o m p t = [ C L S ] X i n [ S E P ] T [ S E P ] ( 1 ) X_{prompt}=[CLS]X_{in}[SEP]T[SEP] \qquad (1) X p r o m p t = [ C L S ] X i n [ S E P ] T [ S E P ] ( 1 ) 当提示输入到语言模型时,模型可以得到候选类 y ∈ Y y\in Y y ∈ Y 的概率分布 p ( [ M A S K ] ∣ X p r o m p t ) p([MASK]|X_{prompt}) p ( [ M A S K ] ∣ X p r o m p t ) 为: p ( y ∣ X p r o m p t ) = ∑ w ∈ V y p ( [ M A S K ] = w ∣ X p r o m p t ) ( 2 ) p(y|X_{prompt})=\sum_{w\in V_y}p([MASK]=w|X_{prompt}) \qquad (2) p ( y ∣ X p r o m p t ) = w ∈ V y ∑ p ( [ M A S K ] = w ∣ X p r o m p t ) ( 2 ) 其中w表示类y的第w个标签字符。 本文将本体文本(从外部知识图中获取)作为注入知识的辅助提示,并将其附加到如图2所示的输入序列模板中。利用本体转换构造辅助提示,可以注入丰富的任务和实例相关知识。这些辅助提示在一定程度上类似于Making Pre-trained Language Models Better Few-shot Learners中的演示;然而,辅助提示并不是集中训练的实例,而是来自于外部知识。
4.2 本体转换
本文中,本体表示的表示为 O = { C , E , D } O=\{C,E,D\} O = { C , E , D } ,C是一组概念,E是本体之间的连接边,D是每个本体的文本描述(本体模式包含一个段落的文本描述,而且它们具有词法有意义的信息的概念,它也可以通过使用属性的三元组表示,例如rdfs:comment。)这里的概念集是指特定于领域的概念。例如,在关系抽取和事件抽取中,我们利用与上述实体相关的类型本体。我们利用领域(即头部实体类型)和范围(即尾部实体类型)约束来完成知识图。 针对下游任务的差异,我们为每个任务利用不同的本体来源进行本体转换。我们首先从外部知识图中提取每个实例的本体,然后将这些本体(rdfs:comment)转换为原始文本作为辅助提示。
4.2.1 应用于关系抽取
我们利用MUC(Message Understanding Conference),它定义了命名实体的概念。注意,命名实体可以提供重要的类型信息,这有利于关系抽取。我们利用这些定义作为本体模式中的文本描述。具体来说,使用[CLS] [SEP] [SEP] [SEP]作为最终输入序列。我们为中的实体构造占位符,并用外部文本描述替换这些占位符。此外,我们利用本体中实体对之间的路径作为元关系文本来增强,如图2所示。 我们进一步在[MASK]的两侧添加可学习的标记作为虚拟标记,以便模型能够自动学习最适合提示符的单词。具体来说,我们使用几个未使用的字符[u1]-[u4](例如,词表中未使用的或特殊的字符)作为虚拟字符。
4.2.2 应用于事件抽取
我们遵循Zero-Shot Transfer Learning for Event Extraction的工作来构建事件抽取的本体。我们首先利用ACE事件模式作为基本事件本体。ACE2005语料库包含丰富的事件注释,目前可用于33种类型。然而,在现实场景中,可能有数千种类型的事件。为了便于在训练样本有限的情况下进行推理,我们将33个ACE事件类型和论元角色与FrameNet中的1161个帧整合在一起,构建了一个更大的事件本体用于事件提取。我们手动将选定的框架映射到事件本体。同样的,我们用[CLS] [SEP] [SEP] [SEP]作为输入序列。我们为触发器构造占位符并在中输入。 与关系抽取类似,我们还利用可学习的虚拟令牌来增强提示表示。
4.2.3 应用于知识图谱补全
我们使用从外部Wikidata查询中获得的相应条目作为本体的来源,提取文本描述。继KG-BERT之后,我们将知识图谱补全视为一个三重分类任务,并将实体和关系连接为一个输入序列。 与上述任务类似,我们用[CLS] [SEP] [SEP] [SEP]作为输入序列。 我们还使用可学习的虚拟令牌来增强提示表示。在推理过程中,我们根据语言模型预测的句子的最大概率对输出分数进行排序,并计算黄金标准实体的命中次数,以评估该方法的性能。
4.3 文段感知的知识注入
图3
正如K-BERT: Enabling Language Representation with Knowledge Graph所观察到的,过多的知识注入可能会在原始文本中引入一些噪声,并导致性能下降。为了解决这个问题,我们提出了文段感知知识注入,如图3所示。给定有L个字符的输入序列 X i n = [ x 1 , x 2 , . . . , x L ] X_{in}=[x_1,x_2,...,x_L] X i n = [ x 1 , x 2 , . . . , x L ] ,我们使用可见矩阵来限制知识注入对输入文本的影响。在语言模型体系结构中,在softmax层之前添加带有自我注意权值的注意掩码矩阵。因此,我们对注意掩码矩阵M进行如下修改: 其中 x i x_i x i 和 x j x_j x j 分别是来自 x i n x_{in} x i n 和本体文本的字符, − ∞ -\infty − ∞ 在注意掩码矩阵中阻止字符 i 注意到字符 j,0允许字符 i 注意到字符 j。在以下情况 x i x_i x i 可以关注 x i x_i x i :两个字符都属于 x i n p u t x_input x i n p u t ,或者两个字符都属于同一本体的文本描述 x o x_o x o ,或者是 x i x_i x i 是实体在 x i n p u t x_{input} x i n p u t 中文段的位置的字符, x j x_j x j 来自其本体表述文本 x o x^o x o 。 p k p_k p k 表示所提到的范围(例如,关系抽取中的实体和知识图谱补全、触发器或事件抽取中的参数)在输入文本中的位置。
4.4 集中训练
注意,那些从本体转换中注入的字符应该与输入序列相关联。因此,我们引入集体训练来优化本体字符和输入序列。首先,我们对本体字符进行实词嵌入初始化,并在固定语言模型的情况下对本体字符进行优化。然后对模型的所有参数进行优化,包括语言模型和本体字符。注意,我们的模型并不依赖于特定的模型体系结构;因此,它可以插入任何一种预先训练的语言模型,如BERT、BART。
5. 实验结果
关系抽取
事件抽取
知识图谱补全
你可能感兴趣的:(神经网络,人工智能,python,深度学习,自然语言处理)
平均数1(acwing)c/c++/java/python
xinghuitunan
c++ c语言 java python
读取两个浮点数AA和BB的值,对应于两个学生的成绩。请你计算学生的平均分,其中AA的成绩的权重为3.53.5,BB的成绩的权重为7.57.5。成绩的取值范围在00到1010之间,且均保留一位小数。输入格式输入占两行,每行包含一个浮点数,第一行表示AA,第二行表示BB。输出格式输出格式为MEDIA=X,其中XX为平均分,结果保留五位小数。数据范围0≤A,B≤10.00≤A,B≤10.0输入样例:5.
Github 2024-04-29 开源项目周报 Top15
老孙正经胡说
github 开源 Github趋势分析 开源项目 Python Golang
根据GithubTrendings的统计,本周(2024-04-29统计)共有15个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目11TypeScript项目3Go项目1Svelte项目1JupyterNotebook项目1Swift项目1Ollama:本地大型语言模型设置与运行创建周期:248天开发语言:Go协议类型:MITLicenseStar数量:4242
Github 2024-06-10开源项目周报 Top15
老孙正经胡说
github 开源 Github趋势分析 开源项目 Python Golang
根据GithubTrendings的统计,本周(2024-06-10统计)共有15个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目8JupyterNotebook项目2Go项目2C++项目1Shell项目1Lua项目1JavaScript项目1MDX项目1C项目1HTML项目1Python-100天从新手到大师创建周期:2234天开发语言:Python,HTML
golang 入门
weixin_34102807
golang php ffmpeg
缘起之前下载视频用的you-get,但是b站一直下不了,优酷也经常出问题,所以接触到luluhttps://github.com/iawia002/Lulu这个也是基于you-get直接pipinstalllulu,但是作者不维护了,新出了个https://github.com/iawia002/a...这个不是python开发的,而是go,通过gogetgithub.com/iawia002/a
Python数据分析实战案例
master_chenchengg
python python Python python开发 IT
Python数据分析实战案例数据分析的魅力:Python与Pandas的完美结合初识Pandas:数据处理的瑞士军刀环境搭建:如何在本地安装Pandas第一步:加载和查看你的第一个数据集数据清洗的艺术:让数据更干净缺失值处理:填补或删除缺失数据异常值检测:找出数据中的“怪兽”重复数据处理:告别冗余数据探索与可视化:揭开数据的神秘面纱基本统计分析:了解数据的基本特征数据可视化:用图表讲述数据的故事相
第一个问题:AI会威胁人类吗?
释迦呼呼
AI一千问 人工智能
第一个问题:AI会威胁人类吗?对于这个问题,我的回答是:AI本身并不会威胁人类,但其是否构成威胁取决于人类如何设计、使用和监管它。下面我将从几个角度详细分析。AI的本质:人类的工具AI(人工智能)是由人类创造的工具,它的行为和决策完全基于人类设计的算法和输入的数据。换句话说,AI没有自己的意识、意图或独立的目标,因此它本身并不具备威胁人类的动机或能力。它的作用是由开发者、使用者和管理者决定的。AI
基于CNN-LSTM-Attention的回归预测算法(附Tensorflow框架下的代码)
Jason_Orton
算法 cnn lstm 机器学习 数据挖掘 回归 tensorflow
本代码基于Tensorflow框架,即插即用!!!基于CNN-LSTM-Attention的回归预测算法结合了卷积神经网络(CNN)、长短期记忆网络(LSTM)和注意力机制(Attention)三种强大的技术,通常用于时序数据的回归预测问题。这种结合模型能够有效地处理和预测复杂的时序数据,尤其是包含空间和时间信息的任务,如气象预测、股市分析、电力负荷预测等。1.模型概述该模型的核心思想是通过不同网
Github 2025-02-17 开源项目周报Top15
老孙正经胡说
github 开源 Github趋势分析 开源项目 Python Golang
根据GithubTrendings的统计,本周(2025-02-17统计)共有15个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目7TypeScript项目6JupyterNotebook项目2JavaScript项目1文档项目1PHP项目1从零开始构建你喜爱的技术创建周期:2156天Star数量:253338个Fork数量:24043次关注人数:253338人
在低功耗MCU上实现人工智能和机器学习
电子科技圈
Silicon Labs 人工智能 机器学习 嵌入式硬件 经验分享 科技 物联网 mcu
作者:SiliconLabs人工智能(AI)和机器学习(ML)技术不仅正在快速发展,还逐渐被创新性地应用于低功耗的微控制器(MCU)中,从而实现边缘AI/ML解决方案。这些MCU是许多嵌入式系统不可或缺的一部分,凭借其成本效益、高能效以及可靠的性能,现在能够支持AI/ML应用。这种集成化在可穿戴电子产品、智能家居设备和工业自动化等应用领域中,从AI/ML功能中获得的效益尤为显著。具备AI优化功能的
高级SQL技术在Python项目中的应用:更进一步的数据分析与集成
Neo Evolution
Python sql python 数据分析 数据结构 学习 数据库
引言在第一篇中,我们深入探讨了ORM框架SQLAlchemy的高级用法以及性能优化策略。然而,要充分释放数据库的潜力,我们还需要掌握更多高级SQL特性,并将其与强大的数据分析工具生态系统有效集成。本篇将聚焦于窗口函数、CTE递归查询、JSON操作、全文搜索以及与Pandas的无缝集成,раскрывая高级SQL在数据分析领域的强大威力。窗口函数与分析查询:洞察数据背后的模式窗口函数是现代SQL标
基于Python的医院运营数据可视化平台:设计、实现与应用(下)
Allen_LVyingbo
python 医疗高效编程研发 python 信息可视化 健康医疗 系统架构
5.2数据采集与预处理的代码实现从HIS、LIS等系统采集数据时,需要针对不同系统的接口特点编写相应的采集代码。以从HIS系统采集患者就诊记录为例,假设HIS系统提供了基于HTTP的API接口,且数据格式为JSON,以下是使用Python的requests库进行数据采集的代码示例:importrequestsimportjson\#HIS系统API地址his\_api\_url="http://h
《AI与NLP:开启元宇宙社交互动新纪元》
人工智能深度学习
在科技飞速发展的当下,元宇宙正从概念逐步走向现实,成为人们关注的焦点。而在元宇宙诸多令人瞩目的特性中,社交互动体验是其核心魅力之一。人工智能(AI)与自然语言处理(NLP)技术的迅猛发展,为元宇宙社交互动带来了前所未有的变革与提升,深刻地影响着用户在虚拟世界中的社交方式与体验。自然语言交互,打破沟通壁垒在早期的元宇宙雏形中,用户与虚拟环境、其他用户的交互多依赖于简单的指令输入或有限的动作操作,这种
SWPU 2016 web 部分思路整理
Bendawang
Web WriteUp web swpu2016 ctf writeup
本来早就该发了,一直以为上周发过了。。。事前吐槽下把,不知道是校网的原因还是服务器的原因,我用校园网连不上比赛服务器,挂上代理之后能够连上但是又很不方便做题,加上vps有点问题什么的,也就瞬间没了欲望。整理下一些题的思路把。由于连不上服务器,python脚本也写不了,所以有些题就只有思路,也不算wp。加上我个人对题目的理解和分析,由于没有实际做题,如果有问题希望大家指正web50源码里面拿到fla
函数调用和 Java 与 Spring AI 模型的集成
算法资料吧!
java spring 人工智能
SpringAI是一个功能强大的SpringFramework项目,它为Java开发人员带来了人工智能(AI)功能。通过将AI模型集成到Java应用程序中,SpringAI简化了创建智能应用程序的过程,同时利用了Spring生态系统的稳健性。本文将指导您完成使用SpringAI将AI模型集成到Java应用程序中的步骤,特别关注允许AI模型与外部数据源和服务动态交互的函数调用机制。SpringAIS
深入探索Mozilla的DeepSpeech:语音识别的新里程碑
温宝沫Morgan
深入探索Mozilla的DeepSpeech:语音识别的新里程碑项目地址:https://gitcode.com/gh_mirrors/de/DeepSpeech项目简介是一个开源的语音识别引擎,基于深度学习技术,致力于提供准确、可扩展且易于集成的解决方案。该项目的目标是打破现有的语音识别壁垒,使开发者能够轻松构建支持语音的应用,推动人机交互进入新的时代。技术分析基于Baidu的DeepSpeec
DeepSeek 到底是什么类型的应用,其核心功能是什么?
AndrewHZ
python 生活 算法 深度学习 人工智能 语言模型 deepseek
DeepSeek是一款多用途的人工智能工具,其核心功能基于大模型技术,覆盖内容生成、数据分析、个性化服务及复杂任务处理等多个领域。以下从应用类型和核心功能两方面展开分析:一、DeepSeek的应用类型通用型人工智能助手DeepSeek被设计为跨行业的通用型AI,适用于生活、学习、工作等场景。例如:生活场景:提供旅游推荐(如黔南的景点、美食)、诗歌创作、儿童故事生成等。专业场景:在金融、保险等领域,
华为OD机试真题-相对开音节-OD统一考试(E卷)
ai因思坦
华为OD机试2024真题题库 华为od 面试 开发语言 算法
最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。题目描述相对开音节构成的结构为:辅音+元音(aeiou)+辅音(r除外)+e。常见
使用LlamaIndex进行Token计数的实战指南
llzwxh888
自然语言处理 人工智能 python
在人工智能领域,特别是在自然语言处理(NLP)任务中,理解和跟踪Token的使用情况是非常重要的。这篇文章将介绍如何使用LlamaIndex库来进行Token计数,并提供一些实用的代码示例,以便你在自己的项目中应用这些技术。环境设置首先,我们需要设置回调和服务上下文。通过全局设置,我们可以在不需要每次查询时都传递这些设置的情况下使用它们。importosos.environ["OPENAI_API
学python?看这篇就够了!
九筠
python学习 python 开发语言 ipython pip pytest
目录1.终端运行2.使用方法修改字符串大小写3.在字符串中使用变量4.添加空白5.删除字符串空白6.删除url中的前缀"Https://"7.删除文件的扩展名8.数9.列表[]10.列表添加11.列表删除12.列表排序13.列表打印14.列表遍历15.创建列表16.列表推导式17.使用列表的一部分18.元组()19.条件测试20.条件语句21.字典{}22.用户输入23.求模运算符24.while
【深度学习】Adam优化器
九筠
机器学习 深度学习 人工智能
目录1什么是Adam1.1基本概念1.2Adam的数学理解1.2.1计算一阶矩估计(mean)1.2.2计算二阶矩估计(uncenteredvariance)1.2.3矫正一阶矩估计(mean)和二阶矩估计(uncenteredvariance)的偏差1.2.4更新模型参数1.3Adam的简单理解2Adam优化算法怎么用2.1导入所需的库和模块2.2定义模型和损失函数2.3定义优化器2.4在训练循
python垃圾回收
小Pawn爷
1.python进阶 python 开发语言
背景:Python程序在运行的时候,需要在内存中开辟出一块空间,用于存放运行时产生的临时变量,计算完成后,再将结果输出到永久性存储器中.如果数据量过大,内存空间管理不善就很容易出现OOM(outofmemory),俗称爆内存简述python垃圾回收机制python主要通过python垃圾器进行垃圾回收,python的垃圾回收主要基于引用计数,当一个对象的引用计数为0时,它会被回收,同时python
python自然语言处理—Word2vec模型之Skip-gram
诗雨时
python
Word2vec模型之Skip-gram(跳字)模型一、skip-gram模型图二、skip-gram模型图示例说明举个例子来说明这个图在干嘛:1、假设我们的文本序列有五个词,["the","man","loves","his","son"]。2、假设我们的窗口大小为skip-window=2,中心词为"loves",那么上下文的词即为:"the"、"man"、"his"、"son"。这里的上下文
Python垃圾回收机制详解
weixin_34260991
python 运维 内存管理
一.垃圾回收机制Python中的垃圾回收是以引用计数为主,分代收集为辅。引用计数的缺陷是循环引用的问题。在Python中,如果一个对象的引用数为0,Python虚拟机就会回收这个对象的内存。#encoding=utf-8__author__='
[email protected] 'classClassA():def__init__(self):print'objectborn,id:%s'%str
神经网络的学习 求梯度
阿崽meitoufa
神经网络 学习 人工智能
importsys,ossys.path.append(os.pardir)importnumpyasnpfromcommon.functionsimportsoftmax,cross_entropy_errorfromcommon.gradientimportnumerical_gradient#simpleNet类classsimpleNet:def__init__(self):self.W=
手写数字识别 neuralnet_mnist.py 代码解读 来自GPT
阿崽meitoufa
python 开发语言 神经网络 深度学习 gpt
这段代码是一个手写数字识别程序,使用的是一个简单的神经网络模型。通过加载训练好的模型(sample_weight.pkl),它对MNIST测试集进行预测,并计算模型的准确率。接下来,我会逐步解析这段代码的主要部分。1.导入所需库importsys,ossys.path.append(os.pardir)#为了导入父目录的文件而进行的设定importnumpyasnpimportpicklefrom
开源元搜索引擎SearXNG:使用Docker详细搭建部署与使用
JayGboy
搜索引擎 docker 容器 searxng
SearXNG是一款基于Python开发的开源免费互联网元搜索引擎,于2021年从SearX分叉而来。它聚合了来自如Google、Bing等众多搜索引擎及不同数据库的结果,集成超100种公开搜索引擎资源,覆盖综合、新闻、图片等11大类。SearXNG极其注重隐私保护,不会追踪用户或建立档案,采用随机浏览器档案、以实例IP为来源、不使用Cookie等措施。它支持用户自定义搜索引擎,可根据喜好调整默认
清华大学第5弹: 《DeepSeek与AI幻觉》 - 清华大学DeepSeek全套资料完整版 - 持续更新 - PDF免费下载
jiswordsman
人工智能 pdf
由清华大学新闻与传播学院与人工智能学院双聘教授沈阳教授团队倾力打造的《DeepSeek与AI幻觉》,全面呈现,共计38页。《DeepSeek与AI幻觉》报告探讨了AI幻觉的成因、评测方法及其影响,并以DeepSeek模型为例,分析数据偏差、知识固化等问题如何导致幻觉现象。报告还提出缓解策略,如联网搜索、提示词优化,并探讨AI幻觉在科学创新和艺术创作中的潜在价值。点击链接免费下载《DeepSeek与
Python 如何将 JSON 数据写入文件?
tmapi
Python python json 编辑器
以下是Python将JSON数据写入文件的详细步骤和代码示例:一、实现思路导入模块:使用Python的内置模块json来处理JSON数据。准备数据:创建或获取要写入文件的JSON数据,通常是Python的字典或列表对象。打开文件:使用Python的内置函数open()打开文件,通常使用w模式表示写入。写入数据:使用json.dump()函数将Python对象转换为JSON字符串并写入文件。二、代码
人工智能基础:从零开始讲解AI的基本概念、发展历程及其核心技术
一碗黄焖鸡三碗米饭
人工智能前沿与实践 人工智能 架构 机器学习 深度学习
人工智能基础:从零开始讲解AI的基本概念、发展历程及其核心技术人工智能(AI)正以前所未有的速度发展,渗透到各行各业,改变着我们的生活方式和工作模式。从自动驾驶到语音助手,从推荐系统到智能制造,人工智能技术无处不在。然而,许多人对于人工智能的了解仍停留在表面,甚至对其中的一些核心概念感到陌生。本文将围绕人工智能的基础概念、发展历程及核心技术进行详细讲解。我们将通过代码示例和表格对比,帮助大家深入理
【Rust】——使用Drop Trait 运行清理代码和Rc<T> 引用计数智能指针
Y小夜
Rust(官方文档重点总结) rust 开发语言 后端
博主现有专栏:C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,Python机器学习等主页链接:Y小夜-CSDN博客目录使用DropTrait运行清理代码通过std::mem::drop提早丢弃值
HQL之投影查询
归来朝歌
HQL Hibernate 查询语句 投影查询
在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示?
针对上面的场景,如果需要将一个对象查出来:
HQL语句写“from 对象”即可
Session session = HibernateUtil.openSession();
Spring整合redis
bylijinnan
redis
pom.xml
<dependencies>
<!-- Spring Data - Redis Library -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redi
org.hibernate.NonUniqueResultException: query did not return a unique result: 2
0624chenhong
Hibernate
参考:http://blog.csdn.net/qingfeilee/article/details/7052736
org.hibernate.NonUniqueResultException: query did not return a unique result: 2
在项目中出现了org.hiber
android动画效果
不懂事的小屁孩
android动画
前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
js delete 删除机理以及它的内存泄露问题的解决方案
换个号韩国红果果
JavaScript
delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露 (其实还未删除)
举例:
var person={name:{firstname:'bob'}}
var p=person.name
delete person.name
p.firstname -->'bob'
// 依然可以访问p.firstname,存在内存泄露
Oracle将零干预分析加入网络即服务计划
蓝儿唯美
oracle
由Oracle通信技术部门主导的演示项目并没有在本月较早前法国南斯举行的行业集团TM论坛大会中获得嘉奖。但是,Oracle通信官员解雇致力于打造一个支持零干预分配和编制功能的网络即服务(NaaS)平台,帮助企业以更灵活和更适合云的方式实现通信服务提供商(CSP)的连接产品。这个Oracle主导的项目属于TM Forum Live!活动上展示的Catalyst计划的19个项目之一。Catalyst计
spring学习——springmvc(二)
a-john
springMVC
Spring MVC提供了非常方便的文件上传功能。
1,配置Spring支持文件上传:
DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了Mul
POJ-2828-Buy Tickets
aijuans
ACM_POJ
POJ-2828-Buy Tickets
http://poj.org/problem?id=2828
线段树,逆序插入
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 200010struct
Java Ant build.xml详解
asia007
build.xml
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有
android按钮监听器的四种技术
百合不是茶
android xml配置 监听器 实现接口
android开发中经常会用到各种各样的监听器,android监听器的写法与java又有不同的地方;
1,activity中使用内部类实现接口 ,创建内部类实例 使用add方法 与java类似
创建监听器的实例
myLis lis = new myLis();
使用add方法给按钮添加监听器
软件架构师不等同于资深程序员
bijian1013
程序员 架构师 架构设计
本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。
如今很多的公司
TeamForge Wiki Syntax & CollabNet User Information Center
sunjing
TeamForge How do Attachement Anchor Wiki Syntax
the CollabNet user information center http://help.collab.net/
How do I create a new Wiki page?
A CollabNet TeamForge project can have any number of Wiki pages. All Wiki pages are linked, and
【Redis四】Redis数据类型
bit1129
redis
概述
Redis是一个高性能的数据结构服务器,称之为数据结构服务器的原因是,它提供了丰富的数据类型以满足不同的应用场景,本文对Redis的数据类型以及对这些类型可能的操作进行总结。
Redis常用的数据类型包括string、set、list、hash以及sorted set.Redis本身是K/V系统,这里的数据类型指的是value的类型,而不是key的类型,key的类型只有一种即string
SSH2整合-附源码
白糖_
eclipse spring tomcat Hibernate Google
今天用eclipse终于整合出了struts2+hibernate+spring框架。
我创建的是tomcat项目,需要有tomcat插件。导入项目以后,鼠标右键选择属性,然后再找到“tomcat”项,勾选一下“Is a tomcat project”即可。具体方法见源码里的jsp图片,sql也在源码里。
补充1:项目中部分jar包不是最新版的,可能导
[转]开源项目代码的学习方法
braveCS
学习方法
转自:
http://blog.sina.com.cn/s/blog_693458530100lk5m.html
http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html
1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d
编程之美-子数组的最大和(二维)
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
import java.util.Random;
public class MaxSubArraySum2 {
/**
* 编程之美 子数组之和的最大值(二维)
*/
private static final int ROW = 5;
private stat
读书笔记-3
chengxuyuancsdn
jquery笔记 resultMap配置 ibatis一对多配置
1、resultMap配置
2、ibatis一对多配置
3、jquery笔记
1、resultMap配置
当<select resultMap="topic_data">
<resultMap id="topic_data">必须一一对应。
(1)<resultMap class="tblTopic&q
[物理与天文]物理学新进展
comsci
如果我们必须获得某种地球上没有的矿石,才能够进行某些能量输出装置的设计和建造,而要获得这种矿石,又必须首先进行深空探测,而要进行深空探测,又必须获得这种能量输出装置,这个矛盾的循环,会导致地球联盟在与宇宙文明建立关系的时候,陷入困境
怎么办呢?
Oracle 11g新特性:Automatic Diagnostic Repository
daizj
oracle ADR
Oracle Database 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的又一增强。
FDI的一个关键组件是自动诊断库(Automatic Diagnostic Repository-ADR)。
在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。
这两份log文
简单排序:选择排序
dieslrae
选择排序
public void selectSort(int[] array){
int select;
for(int i=0;i<array.length;i++){
select = i;
for(int k=i+1;k<array.leng
C语言学习六指针的经典程序,互换两个数字
dcj3sjt126com
c
示例程序,swap_1和swap_2都是错误的,推理从1开始推到2,2没完成,推到3就完成了
# include <stdio.h>
void swap_1(int, int);
void swap_2(int *, int *);
void swap_3(int *, int *);
int main(void)
{
int a = 3;
int b =
php 5.4中php-fpm 的重启、终止操作命令
dcj3sjt126com
PHP
php 5.4中php-fpm 的重启、终止操作命令:
查看php运行目录命令:which php/usr/bin/php
查看php-fpm进程数:ps aux | grep -c php-fpm
查看运行内存/usr/bin/php -i|grep mem
重启php-fpm/etc/init.d/php-fpm restart
在phpinfo()输出内容可以看到php
线程同步工具类
shuizhaosi888
同步工具类
同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch)
闭锁(CountDownLatch)
public class RunMain {
public long timeTasks(int nThreads, final Runnable task) throws InterruptedException {
fin
bleeding edge是什么意思
haojinghua
DI
不止一次,看到很多讲技术的文章里面出现过这个词语。今天终于弄懂了——通过朋友给的浏览软件,上了wiki。
我再一次感到,没有辞典能像WiKi一样,给出这样体贴人心、一清二楚的解释了。为了表达我对WiKi的喜爱,只好在此一一中英对照,给大家上次课。
In computer science, bleeding edge is a term that
c中实现utf8和gbk的互转
jimmee
c iconv utf8&gbk编码
#include <iconv.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
int code_c
大型分布式网站架构设计与实践
lilin530
应用服务器 搜索引擎
1.大型网站软件系统的特点?
a.高并发,大流量。
b.高可用。
c.海量数据。
d.用户分布广泛,网络情况复杂。
e.安全环境恶劣。
f.需求快速变更,发布频繁。
g.渐进式发展。
2.大型网站架构演化发展历程?
a.初始阶段的网站架构。
应用程序,数据库,文件等所有的资源都在一台服务器上。
b.应用服务器和数据服务器分离。
c.使用缓存改善网站性能。
d.使用应用
在代码中获取Android theme中的attr属性值
OliveExcel
android theme
Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西.
在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作方式举例一则:
int defaultColor = 0xFF000000;
int[] attrsArray = { andorid.r.
基于Zookeeper的分布式共享锁
roadrunners
zookeeper 分布式 共享锁
首先,说说我们的场景,订单服务是做成集群的,当两个以上结点同时收到一个相同订单的创建指令,这时并发就产生了,系统就会重复创建订单。等等......场景。这时,分布式共享锁就闪亮登场了。
共享锁在同一个进程中是很容易实现的,但在跨进程或者在不同Server之间就不好实现了。Zookeeper就很容易实现。具体的实现原理官网和其它网站也有翻译,这里就不在赘述了。
官
两个容易被忽略的MySQL知识
tomcat_oracle
mysql
1、varchar(5)可以存储多少个汉字,多少个字母数字? 相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。 这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0
zoj 3827 Information Entropy(水题)
阿尔萨斯
format
题目链接:zoj 3827 Information Entropy
题目大意:三种底,计算和。
解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。
#include <cstdio>
#include <cstring>
#include <cmath&