语义分析

简单分析SQL注入语义分析库Libinjection

巧了我就是萌 提交于 2020-01-18 18:58:09
一、前言 这次主要讲开源SQL注入语义分析库libinjection,如果有发现其他开源SQL语义分析库的欢迎告知。libinjection的程序分析由Simon友情提供,需要看完整报告的可以加群看。 二、libinjection程序分析 从流程图上看,libinjection首先是初始化issqlii变量,接着设置数据结构并初始化变量state,libinjection_sqli_init()函数将初始化SQL检测所需的结构体,之后通过libinjection_is_sqli()函数进行具体分析,如果存在issqli,则将SQL注入识别特征复制进fingerprint变量并返回,如果不存在则将fingerprint变量设置为空并返回。 上图是总的函数关系图,libinjection_sqli_init()函数的主要工作是将 SQL注入识别特征码(指纹) 加载进结构体,并完成各种内置变量的初始化。libinjection_is_sqli()的处理代码如下,根据代码来分析 int libinjection_is_sqli(struct libinjection_sqli_state * sql_state) { const char *s = sql_state->s; size_t slen = sql_state->slen; if (slen == 0) { return

NLP 语义相似度计算 整理总结

不问归期 提交于 2020-01-18 14:51:16
更新中 更新时间: 2019-12-03 18:29:52 写在前面: 本人是喜欢这个方向的学生一枚,写文的目的意在记录自己所学,梳理自己的思路,同时share给在这个方向上一起努力的同学。写得不够专业的地方望批评指正,欢迎感兴趣的同学一起交流进步。 (参考文献在第四部分, 侵删 ) 一、背景 二、基本概念 三、语义相似度计算方法 四、参考文献 一、背景 在很多NLP任务中,都涉及到语义相似度的计算,例如: 在搜索场景下(对话系统、问答系统、推理等),query和Doc的语义相似度; feeds场景下Doc和Doc的语义相似度; 在各种分类任务,翻译场景下,都会涉及到语义相似度语义相似度的计算。 所以在学习的过程中,希望能够更系统的梳理一下这方面的方法。 二、基本概念 1. TF Term frequency即关键词词频,是指一篇文章中关键词出现的频率,比如在一篇M个词的文章中有N个该关键词,则 为该关键词在这篇文章中的词频。 2. IDF Inverse document frequency指逆向文本频率,是用于衡量关键词权重的指数,由公式 计算而得,其中D为文章总数,Dw为关键词出现过的文章数。 3. 向量空间模型 向量空间模型简称 VSM,是 VectorSpace Model 的缩写。在此模型中,文本被看作是由一系列相互独立的词语组成的,若文档 D 中包含词语 t1,t2,

原创:语义相似度(理论篇)

落爺英雄遲暮 提交于 2020-01-18 14:50:51
  如果本文观点有不对的地方,欢迎指正! author:佟学强  开场白:对于事物的理解,一般分3个层次:①看山是山,看水是水②看山不是山,看水不是水③看山是山,看水是水。对AI和nlp的理解,同样会有这三个层次。比如,刚毕业的硕士或者毕业1~2年的,会热衷于研究GAN,seq2seq,甚至包括nlp刚起步的一些公司。这类群体对nlp的理解处于第一层次,后面还有很多雷区要踩,要付出一定的试错代价,成长的代价。等到有一定的积累了,对nlp的理解有一定的理解功底了,会逐渐修正研究路线和方向,这个时候比第一阶段有更多的疑惑,因为随着研究的深入,发现nlp和图像机制存在很大的不同,不能照搬,认知智能好像不是那么容易,由感知智能到认知智能的跨越,是这一阶段的一大进步,这是第二个层次,各个派别有争论,看山不是山,看水不是水。最高境界,返璞归真,拥有行业20年及以上的研究人员,对nlp看的比较透,目前的Ai基本上陷入了统计建模,概率的漩涡之中,还不是真正的智能。仅仅从数据中挖掘线性关系还远远不够,应该让机器具有认知能力,挖掘因果关系。致力于推进nlp认知智能的进步,加大力度研究知识图谱,包括知识图谱的向量化,与深度学习的融合,让神经网络学习规则等等。可以这样说,目前从感知智能到认知智能的跨越,才刚刚开始,知识工程的复苏势不可挡。本人接触过许多刚入门的人,基本上对seq2seq和GAN比较狂热

语义相似度(实践篇)

三世轮回 提交于 2020-01-18 14:50:28
这篇文章,专门讲语义相似度问题。 先看场景: scene(一):用户通过大众点评,线上约了餐馆,就餐后在上面发表了很多评论,评论中涉及了大量的餐馆的问题,比如菜品质量,酒店卫生,服务等等。现在需要抽取之中的要点,然后反馈给商家。 scene(二):KB_QA的两个问题:①获取question的语义表示②把语义表示转换成知识图谱的能够理解的语言逻辑形式。无论是核心推导链还是向量建模,核心都是question和answer的语义相似度问题。 虽然学术界对于语义相似度问题,都说是热点和难点,但是他到底难在哪里?今天有必要探讨一下。首先,衡量两个表达之间的相似度,是通过语义级别,而语义属于认知层面,这给研究带来带来了很大的难度。因为目前的联结主义,仅仅能解决语义表示,无法学习逻辑推理。其次,理解一句话或者一段话的语义,不是单纯靠归纳总结能力,还需要借助外部知识,就是说这句话表达了什么样的事件,这个事件可能会关联到很多实体,关系,路径。两个句子之间的关系、路径的交集一定程度上代表了语义的重合度。之前的研究,都是靠单纯靠联结主义,包括开头的两个场景,都是这个思路。 从算法角度来看的话,探索基于知识图谱的非监督学习是一个方向,目前有学者在研究;另外一个就是监督学习了,主要是借助深度学习。目前大部分的相似度改进,仍然是后者,前者的难度,对于工业界来说,非常大。从工业界的角度来看

最新全球科技速览[2020.1.1]

落爺英雄遲暮 提交于 2020-01-17 07:24:29
全球技术报告 公众号:aihaoers cs方向,今日共计10篇 [检测分类相关]:object detection 【1】基于学习空间融合的单发目标检测 标题 :基于学习空间融合的单发目标检测 作者 :Songtao Liu, Di Huang, Yunhong Wang 概要 :金字塔形特征表示法是解决对象检测中尺度变化挑战的常用方法。但是,对于基于特征金字塔的单发检测器,不同特征尺度之间的不一致是主要限制。在这项工作中,我们提出了一种新颖的数据驱动的金字塔特征融合策略,称为自适应空间特征融合(ASFF)。它学习了在空间上过滤冲突信息以抑制不一致的方法,从而改善了特征的比例不变性,并引入了几乎免费的推理开销。借助ASFF策略和可靠的YOLOv3基线,我们在MS COCO数据集上实现了最佳的速度精度折衷,在60 FPS时报告了38.1%AP,在45 FPS时报告了42.4%AP,在29 FPS时报告了43.9%AP 源码 :https://github.com/ruinmessi/ASFF 链接 :https://arxiv.org/pdf/1911.09516v2.pdf 【2】为数不多的射击目标检测与注意力RPN和多关系检测 标题 :为数不多的射击目标检测与注意力RPN和多关系检测 作者 :旗幡,华威卓,强志堂,玉永大 概要 :用于对象检测的常规方法通常需要大量的训练数据

Shader 基础

时间秒杀一切 提交于 2020-01-17 01:05:59
顶点和片元着色器 Vertex shader program(顶点着色程序)和 Fragment shader program(片断着色程序)分别被 Programmable Vertex Processor(可编程顶点处理器)和Programmable Fragment Processo(可编程片断处理器)所执行。 顶点着色程序从 GPU 前端模块(寄存器)中提取图元信息( 顶点位置、法向量、纹理坐标等 ),并完成顶点坐标空间转换、法向量空间转换、光照计算等操作,最后将计算好的数据传送到指定寄存器中;然后片断着色程序从中获取需要的数据,通常为“ 纹理坐标、光照信息等 ”,并根据这些信息以及从应用程序传递的纹理信息(如果有的话)进行每个片断的颜色计算,最后将处理后的数据送光栅操作模块。 由于 GPU 对数据进行并行处理,所以每个数据都会执行一次 shader 程序程序。 即, 每个顶点数据都会执行一次顶点程序; 每个片段都会执行一次片段程序。 什么是片断?片断和像素有什么不一样?所谓片断就是所有的三维顶点 在光栅化之后的数据集合,这些数据还没有经过深度值比较,而屏幕显示的像素都是经过深度比较的 开始 Cg 之旅 Cg 支持 7 种基本的数据类型: float, 32 位浮点数据,一个符号位。浮点数据类型被所有的 profile 支持(但是 DirectX8 pixel

编译原理 语义分析

故事扮演 提交于 2020-01-14 02:28:20
文章目录 1. 语义与语法的区别 重点:语义分析的两个作用 <3> 语义分析的方法 2. 中间代码 重点:要求中间代码具有如下特性,以便于编译器的开发移植和代码的优化: 3.后缀式 定义 算法实现 4.后缀式的计算 5.三地址码 6.四元式主要由四部分组成: 三地址代码 例题有文法 G 和 G 的语法制导翻译如下: 7.符号表 8. 数组元素的引用 9. 布尔表达式 10. 控制语句 11.过程的定义与声明 左值和右值 拉链回填 1. 语义与语法的区别 <1> 语法与语义的关系 语法是指语言的结构、即语言的“样子”;语义是指附着于语言结构上的实际含意 ,即语言的“意义”。 对于语法和语义: 语义不能离开语法独立存在; 语义远比语法复杂; 同一语言结构可包含多种含意,不同语言结构可表示相同含意; 语法与语义之间没有明确的界线。 重点:语义分析的两个作用 1.检查是否结构正确的句子所表示的意思也合法; 2.执行规定的语义动作,如: 表达式求值 符号表填写 中间代码生成等 <3> 语义分析的方法 语法制导翻译 2. 中间代码 重点:要求中间代码具有如下特性,以便于编译器的开发移植和代码的优化: 便于语法制导翻译; 既与机器指令的结构相近,又与具体机器无关。 3.后缀式 定义 一个表达式E的后缀形式可以如下定义: (1)如果E是一个变量或常量,则E的后缀式是E本身。 (2)如果E是E1

知识图谱研究进展

 ̄綄美尐妖づ 提交于 2020-01-12 20:27:09
在原文 《知识图谱研究进展》 基础上上做了相应的调整和补充 本文首先简要回顾知识图谱的历史,探讨知识图谱研究的意义。其次,介绍知识图谱构建的关键技术,包括实体关系识别技术、知识融合技术、实体链接技术和知识推理技术等。然后,给出现有开放的知识图谱数据集的介绍。最后,给出知识图谱在情报分析中的应用案例。 — 漆桂林、高桓、吴天星 东南大学计算机科学与工程学院 本文节选自《情报工程》2017 年第 1 期,知识图谱专题稿件。 1 知识图谱构建技术   本节首先给出知识图谱的技术地图,然后介绍知识图谱构建的关键技术,包括关系抽取技术、知识融合技术、实体链接技术和知识推理技术。 1.1 知识图谱技术地图   构建知识图谱的主要目的是获取大量的、让计算机可读的知识。在互联网飞速发展的今天,知识大量存在于非结构化的文本数据、大量半结构化的表格和网页以及生产系统的结构化数据中。为了阐述如何构建知识图谱,本文给出了构建知识图谱的技术地图,该技术地图如图1所示。   整个技术图主要分为三个部分,第一个部分是知识获取,主要阐述如何从非结构化、半结构化、以及结构化数据中获取知识。第二部是数据融合,主要阐述如何将不同数据源获取的知识进行融合构建数据之间的关联。第三部分是知识计算及应用,这一部分关注的是基于知识图谱计算功能以及基于知识图谱的应用。 1.1.1 知识获取   在处理非结构化数据方面

Semantic Parsing(语义分析) Knowledge base(知识图谱) 对用户的问题进行语义理解 信息检索方法

浪尽此生 提交于 2020-01-11 10:28:01
简单说一下所谓Knowledge base(知识图谱)有两条路走,一条是 对用户的问题进行语义理解 ,一般用Semantic Parsing(语义分析),语义分析有很多种,比如有用CCG、DCS,也有用机器翻译来做的。它得到了一个句子的逻辑表示,根据逻辑表示再到知识库里去查,查到这个结点是什么,关系是什么等,通过这种方式,自然而然就查到了。 还有一种办法就是最近几年流行的 信息检索方法 。比如,一个问题“where was Barack Obama born ?”这句话里出现的了一个实体——Obama,假设这个知识库是完备的,那么系统就会判断答案一定是跟Obama关联的某个结点,这样就可以到知识库里以Obama为半径,把跟它有关的词全部挖出来,然后系统要算相似度,相似度算的时候有一种办法,是把这个知识图谱的某一个知识单元用自然语言表征出来,也可以用词嵌入做一个多维向量表示。这时候做一个Ranker跟当前的问题算一个距离,距离近的就是它的答案。我们也将这些技术运用在了微软小冰里,比如小冰回答问题,跟你聊天等等。 作者:微软亚洲研究院 链接:https://www.zhihu.com/question/23952075/answer/161605738 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: https://www.cnblogs