精华内容
下载资源
问答
  • 物理引擎理解

    千次阅读 2021-11-01 16:59:17
    物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有一个立方体和一个球体,球体在空中,立方体在地面倾斜放置,在空中的球体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理引擎就是用来模拟真实碰撞...

     一.定义

     物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有一个立方体和一个球体,球体在空中,立方体在地面倾斜放置,在空中的球体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理引擎就是用来模拟真实碰撞的效果。

      二.刚体

    Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,任何游戏对象只有添加了刚体组件才能受到重力的影响。

     

     

    案例1:点击鼠标左键,给物体加一个力

    if(Input.GetButton("Fire1"))

    {

          Rigidbody r = go.GetComponent<Rigidbody>();//从预设体身上获取刚体组件

    r.AddForce(0, 0, 1000);//给预设体加力

    }

    案例2:用键盘控制物体移动

    public float speed;

    private Rigidbody rig;

    void Start () {

    rig = GetComponent<Rigidbody> ();

    }

    void Update () {

    float h = Input.GetAxis ("Horizontal");

    float v = Input.GetAxis ("Vertical");

    Vector3 pos = new Vector3 (h, 0, v);

    rig.velocity = pos * speed;

    三.碰撞器

    碰撞器分类:

    盒形碰撞器、球形碰撞器、 胶囊碰撞器、 网格碰撞器、 车轮碰撞器等

    碰撞的必备条件:

    1、两个物体要有碰撞器

    2、一个物体要有刚体

    Box Collider:盒子碰撞器

      Sphere Collider:球形碰撞器

      Capsule Collider:胶囊碰撞器

     Mesh Collider:网格碰撞器

    Wheel Collider:车轮碰撞器

     

     

    四.碰撞检测

    在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。

    (一)碰撞器是一群组件,包含了很多种类,比如:Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但必须加到GameObject身上。

    (二)所谓触发器,只需要在检视面板中碰撞器组件中勾选Is Trigger属性选择框。

    (三)给主角添加刚体(Rigidbody)组件,并且取消刚体组件的重力选项UseGravity。

    1. 碰撞器

    // 碰撞接触的那一帧被调用  

        void OnCollisionEnter(Collision collision) {  

            Debug.Log("enter");  

            Debug.Log(collision.gameObject.name);  

        }  

        // 碰撞接触的每帧都被调用  

        void OnCollisionStay(Collision collision) {  

            Debug.Log("Stay");  

        }  

        // 碰撞结束被调用  

        void OnCollisionExit(Collision collision) {  

            Debug.Log("Exit");  

        }  

    1. 触发器

    触发器可以穿透,所以把重力去掉

    // 触发接触的那一帧被调用  

        void OnTriggerEnter(Collider other) {  

            Debug.Log("enter");  

            Debug.Log(other.gameObject.name);  

        }  

        //触发接触的每帧都被调用  

        void OnTriggerStay(Collider other) {  

            Debug.Log("Stay");  

        }  

        // 触发结束被调用  

        void OnTriggerExit(Collider other) {  

            Debug.Log("Exit");  

        }  

    展开全文
  • 每一个简短的搜索词背后都隐藏着用户最真实的查询意图,需要搜索引擎使用很多不同策略去挖掘用户背后的需求,这就涉及到“搜索query理解”。 我们此前讲过《初识query理解》,再来复习一下总体流程: 当用户输入...

    【导语】当你在搜索框输入一串简短的文本后,搜索引擎立马会返回成千上万条结果,整个搜索过程看似简单,其实底层引擎大有文章。每一个简短的搜索词背后都隐藏着用户最真实的查询意图,需要搜索引擎使用很多不同策略去挖掘用户背后的需求,这就涉及到“搜索query理解”。

    我们此前讲过《初识query理解》,再来复习一下总体流程:

    在这里插入图片描述

    当用户输入query:“P i g n g u o 的生產地。”在以上每个模块具体是怎么处理的?

    01 文本预处理

    大小写转换:query会转为“p i g n g u o 的生產地。”
    全半角转化:query会转为“pignguo的生產地”
    长度截断:一般设置为38
    繁简体转化等策略:query会转为“pignguo的生产地”

    02 Query分词

    【基于字符匹配的分词算法】

    此种方案首先需要构造分词词典,将一串文本的文字分段与构建好的分词词典进行字符串匹配,如若匹配上,则作为一个分词结果。此种原始方案有很多缺点,比如无法处理歧义,泛化性不够等问题,当然现在有很多改进方案,比如正向/逆向/双向最大匹配算法

    【基于统计的分词算法】

    基于大量的分词文本,利用统计概率学知识,对文本的相邻字之间的频度进行统计,计算字与字之间的连接概率,并依托机器学习模型,学习文本切分的客观规律 ,可实现对未知文本的切分。

    统计语言模型需要依赖大量的训练数据,随着互联网大数据时代的到来,也给统计语言模型带来的质的发展,这也使得统计语言模型渐渐的成为了主流分词方法。我们最熟悉的莫过于基于稀疏表示(Sparse Representation)的N-Garm语言模型,还有隐马尔科夫HMM、条件随机场CRF等模型。随着深度学习的崛起,以**词向量(Word Embedding)**为代表的语言模型也去得到了更好的效果,给NLP分词算法领域带来了变革。

    【基于理解的分词算法】

    基于理解的分词算法,其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象,即它是模拟人对于句子的理解来处理文本中的各种歧义。随着NLP领域的不断突破,基于理解的分词算法也得到快速的发展,目前比较常用的有,哈工大语言技术平台LTP、中科院计算所NLPIR、清华大学THULAC还有Hanlp等,以上这些平台都集成了基于理解的分词算法,效果都还不错。

    每一种分词算法都有其优劣,在搜索引擎开发过程中,应跟随场景的不同来选择其最合适的分词方法。

    03 Query改写

    query改写主要步骤query纠错、query对齐、query扩展。

    【query纠错】

    query纠错,为什么搜索引擎需要这个步骤?原因是我们在搜索过程中由于对先验知识的掌握不足或者在使用输入法的时候误输入导致的,如果不进行纠错,最终带来的搜索列表将不会是用户想要的结果,使得搜索准确率下降,用户体验下降,例如百度中搜索“胡哥”:

    在这里插入图片描述

    所以在我们做搜索引擎的过程中,query纠错是个比较重要的步骤,当然不同的场景使用的纠错方式是不同的。常用的query纠错方法有数字、拼音、漏字、重复字、谐音/形近字等方式,那我们本文的案例来讲,“pignguo的生产地。”会被纠正为“苹果的生产地。”,而“苹果”本身也是用户想要搜索的内容。

    query纠错从技术上来讲主要分成两个任务,一个异常检测,一个是错误纠正,基础的实现方法有基于文本相似度(例如“胡哥”和“胡歌”很相似)、基于文本编辑距离(设定阈值,比如像“serach”与“search”编剧距离为1)、基于拼音实现纠正(“pingguo”纠正成“苹果”)等。当然还有一些更高级方案,所谓更高级,就是实现难度大点,比如基于点击行为的queryN-docN 协同过滤算法纠正,可将历史queryN-docN的点击构建点击行为矩阵,采用协同过滤计算query与queryN的相似度来纠错。还有基于session embedding挖掘更多的query序列进行纠错。

    【实体对齐】

    实体对齐与query纠错容易混淆,实体对齐更多的是对于输入query并无错误,但表达上与搜索引擎索引内容不相符而作的一种改写操作。例如“星爷是哪一年生的”,通过实体对齐,可改写为“周星驰的出生时间”,对齐规则也是一个不断丰富、不断积累的过程。

    在这里插入图片描述

    技术实现上可使用word Embedding方法来训练词与词之间的相似度来确定一套对齐规则,这里同时也需要添加一些外部知识或者人工干预来提升相似的准确性。还可通过文本生成模型seq2seq,基于历史点击行为挖掘出query-query语义相近短语来确定一套对齐规则。

    【query扩展】

    query扩展主要用于搜索引擎的相关搜索,是将与用户输入的query的相似扩展query进行展示,使得用户可以更多选择的搜索想要的内容,帮助用户挖掘潜在需求,同时也可扩大搜索的流量和召回,技术实现上比较简单,可使用query纠错和实体对齐中的方法来实现,但也需要不断的迭代优化。如下是百度输入“胡歌”的结果

    04 query分析

    query分析最主要的是权重分析,常用的方法有tfidf算法,即“词频-逆文本频率”,如果某个词或短语在一篇文章中出现的频率高(即TF高),并且在其他文章中很少出现(即IDF高),则认为此词或者短语具有很好的类别区分能力,此时权重就会比较高。

    通俗理解TF-IDF就是:TF刻画了词语t对某篇文档的重要性,IDF刻画了词语t对整个文档集的重要性。

    TF表达式:对于在某一文档 dj 里的词语 ti 来说,ti 的词频可表示为:
    在这里插入图片描述

    其中 ni,j 是词语 ti 在文档 dj 中的出现次数,分母则是在文件 dj 中所有词语的出现次数之和。

    IDF表达式:IDF是一个词语普遍重要性的度量,即一个词语对于整个语料库的重要性的度量。某一特定词语的IDF,可以由总文件数除以包含该词语的文件数,再将得到的商取对数得到:
    在这里插入图片描述

    除此之外,权重分析也可使用分类或回归思想来解决,通过训练svm、gbdt等传统机器学习模型即可进行预测。即可以使用历史点击数据,首先可根据不同的query点击同一个title进行聚类,再通过一系列文本特征处理方式将多个query的term权重进行加权即可分析其权重。

    05 意图识别

    在一般的搜索场景,意图识别可以分为两个任务实现,意图分类+命名实体识别。分类模型可以基于传统的机器学习,比如svm,朴素贝叶斯以及决策树算法算法,也可基于深度学习模型,比如近几年比较火的bert。命名实体识别任务可以使用Bert-BiLSTM-CRF、BERT-CRF等序列标注模型进行item实体的识别,再结合一些启发性策略及后验行为进行验证。

    在此模型当用户输入“和平精英手游”,这种属于精准意图识别,整个处理链路如下:

    在这里插入图片描述

    据统计,搜索符合2/8原则,80%的query都是长尾词,很多情况用户意图比较模糊,还不确定是否有一些强意图的时候,更适合给到用户的则是一些统计类、榜单类的结果,比如用户搜索“2020好玩的三国策略游戏”,此时的意图就比较模糊,搜索结果返回一系列三国策略游戏方才是用户的真实意图。

    当然很多时候,意图识别也会加入个性化元素,那我们本文的第一案例“苹果的生产地”,具体是指**水果苹果的产地?还是苹果手机、电脑的代工厂?**这就需要涉及到个性化搜索了。不仅如此,当query词中出现一些进阶关系,即query中的实体并非意图实体,需要加推理挖掘其真实实体,这时就要加入知识图谱进行知识推理,结合语义搜索完成意图识别,如下图:
    在这里插入图片描述

    这下,你们终于知道搜索引擎是怎么理解你们的输入query吧。

    欢迎关注药老算法
    最后欢迎关注微信公众号:药老算法(yaolaosuanfa),带你领略搜索、推荐等数据挖掘算法魅力。

    展开全文
  • 做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对《高性能MYSQL》书中提到的myisam的理解,请大家多多指教。特点> 不支持事务证明如下:>> 表记录:t2表的engine是myisam。>> 操作注意:...

    0cb6415bb727e82bc03d71239af295fc.png

    介绍

    mysql中用的最多存储引擎就是innodb和myisam。做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对《高性能MYSQL》书中提到的myisam的理解,请大家多多指教。

    特点

    > 不支持事务

    证明如下:

    >> 表记录:t2表的engine是myisam。

    6e09c6317b3e50affd7984fd1221c64d.png

    >> 操作

    d051632b09e5d72c174c3f6214ea3053.png

    注意:如果你在数据库进行事务操作,但是事务无法成功,你就要看你的表引擎了,看这种引擎是否支持事务。

    >> 下面请看innodb中的事务操作

    1be5dcfb2eb73989c8f3c05e0b9b77e8.png

    > 存储结构:数据文件(.MYD),索引文件(.MYI)和结构文件(.frm)

    >> 特点:可以在不同服务器上拷贝数据文件和索引文件。

    fc9e223d669df8676834294630118b95.png

    > 加锁和并发

    加锁:对整张表进行加锁,而不是行。

    并发:在读数据的时候,所有的表上都可以获得共享锁(读锁),每个连接都不互相干扰。

    在写数据的时候,获得排他锁,会把整个表进行加锁,而其他的连接请求(读,写请求)都处于等待中。

    > 修复表

    >> 查看表状态

    31b5b35e795dfd6d982fac0d81419009.png

    >> check一下表,看表是否正常。

    ec34442fa7b20ada181ae1ad19c2a161.png

    >> repair(修复) 一下表。呵呵,我的这张表是正常的。

    f34c0c0a706824c55d7fff2c9b44ad09.png

    > 列索引。可以基于BLOB或TEXT类型列的前500个字符,创建相关索引。

    >> 给t2表添加一个text列。

    cd135eb4f344ac6345b7dc45e180c737.png

    >> 表结构如下

    94019322fd028168574fdfdce77a8e77.png

    >> 为content字段添加全文索引

    ce25f592993bf3a2098b8e06cfa345d3.png

    >> 查看表的索引情况

    a6b14d77a24e7cba5e7eb67c385320b2.png

    > 延迟更新索引。MYISAM 默认把DELAY_KEY_WRITE开启, 整个选项是MYISAM引擎独有的。

    58966c1ad64f54f6b1ad49bfb604390c.png

    注意:在查询结束后,不会将索引的改变数据写入磁盘,而是改变内存中的索引数据。只有在清理缓冲区或关闭表时才将索引块转储到磁盘。

    > 压缩表

    >> 查看数据文件位置

    4a3f1c31cf1c318b935a339d54364899.png

    >> 压缩文件

    cda4e36a64d86af355ef26999d8323f1.png

    总结

    myisam在索引层和压缩层的卓越贡献,所以我们经常把myisam用于slave层,供客户端去读取。而myisam在写库操作的时候会产生排他锁,如果写操作一直占用的话,那么其他连接请求一直就处于等待中,从而造成堵塞,甚至能把服务器dang掉。

    展开全文
  • 概念定义:流程引擎用最浅显易懂的话来说就是按照我设定的固定流程去流转去驱动业务。 一、分解“流程引擎”: 1,设定的“固定流程”,比如流程审批场景里面的“预定审批链”。固定的流程是由运维管理人员设置,...

    概念定义:流程引擎用最浅显易懂的话来说就是按照我设定的固定流程去流转去驱动业务

    一、分解“流程引擎”:

    1,设定的“固定流程”,比如流程审批场景里面的“预定审批链”。固定的流程是由运维管理人员设置,链路里包括【节点配置】、【每个节点的找人机制配置】、【每个节点的审批动作设置】、【各个节点互相之间的流转规则】。

    “预定审批链”基本包括设置-发起节点(发起人、发起表单结构&内容)、审批节点(审批人)、节点流转规则。

    2,驱动业务,是指流程引擎应用在哪些场景的业务。比如电商场景、流程审批场景、CRM场景、金融&出行场景,还会被使用为中台

    “流程审批”场景,好理解:就是预定审批链。(见以上内容);

    “电商”场景:网上购物业务,用户&电商平台&仓储物流之间的业务自动流转和数据交互。从用户下单、系统自动校验库存、用户支付、平台确认订单、物流仓储分拣发货、用户签收。由此可见,目前流程引擎已经成熟的应用在了“电商”领域。

     

    流程管理的意义在于哪里?

    对于公司效益的意义>对于团队协作的意义>对于用户个人的意义。

     

    展开全文
  • 从上一篇文章《药老算法:深入理解搜索引擎——开篇》有讲到过,整个搜索引擎的过程是从用户输入、query理解、检索召回到最后的精排序。每一个过程都会影响最终的搜索准确度以及用户体验,所以在搜索引擎中任何环节...
  • 什么是搜索引擎? 搜索引擎,一般分为大搜和垂搜,其中大搜包含我们熟知的google、baidu、搜狗、神马及近期比较活跃的夸克,垂搜包含各领域门户网站的搜索引擎,例如电商搜索(淘宝、天猫、京东及拼多多等等)、本地...
  • 深入理解MySql中Innodb引擎和MyIsam引擎的区别 Innodb引擎和MyIsam引擎主要有一下的区别 1 最开始Mysql是没有Innodb引擎的,而MyIsam是Mysql数据的自带的引擎,但是由于MyIsam引擎没有事务的,而Innodb引擎是另一个...
  •    Lucene,是一个开放源代码的全文检索引擎工具包,不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标...
  • ​众所周知,在搜索引擎领域,无论你是用户还是内容生产者,搜索引擎的结果排序对你来说都是至关重要的。对于用户而言,一个好的排序会给你一个非常好的搜索体感,你无需查看更多结果就能找到你的答案。对于内容生产...
  • 深入理解搜索引擎-搜索召回

    千次阅读 2021-04-26 08:51:27
    ​你有没有想过,当我们在搜索框中输入关键词时,搜索引擎是如何确定返回哪些内容给你的?搜索引擎底层有一个巨大的索引库,返回的搜索结果跟你输入的关键词又有什么关系?今天我们就来讲讲搜索引擎中的召回。 召回...
  • 继前文对MySQL的存储引擎做一个全面的介绍之后,现在我们针对主流的InnoDB存储引擎深入理解。 一、InnoDB体系架构 InnoDB是事务安全的 MySQL存储引擎。支持ACID事务的储存引擎,特点是行锁设计、支持MVCC、支持外键...
  • vue的模板语法使用的是mustache mustache:双花括号语法,负责组装数据,以另外一种形式或外观展示数据。
  • 说说你对这模板引擎理解 模板引擎: 负责组装数据,以另外一种形式或外观展现数据。 优点: 可维护性(后期改起来方便); 可扩展性(想要增加功能,增加需求方便); 开发效率提高(程序逻辑组织更好,调试方便)...
  • MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。不过,5.5版本之后,MySQL...
  • 谷歌搜索引擎机器学习原理理解

    千次阅读 2021-11-24 23:31:16
    抖音视频推荐功能 如何理解谷歌运行机制,可能一下子大家无法理解。我们可以用我们身边能接触到的去试着理解以下。通俗易懂的话来说就是我们经常接触的抖音。如果你经常刷情感剧,就会给你推荐此类电视片段。如果你...
  • 这里写目录标题Mysql索引添加索引sql语句查看MySQL中建立的索引是否生效Mysql索引数据结构二叉树索引红黑树索引(二叉平衡树)B-Tree索引(多叉平衡树)B+Tree索引(B-Tree优化)Hash索引MySQL常用引擎MyISAM引擎...
  • InnoDB存储引擎支持事务处理、支持外键,同时支持崩溃修复能力和并发控制,如果需要对事物的完整性要求比较高,要求实现并发控制,那选择InnoDB存储引擎有很大的优势,如果需要频繁地进行更新、删除操作的数据库,也...
  • java模板引擎是什么

    2021-03-09 17:21:27
    模板引擎以简单为主,其主要目的是为了让程序开发和美工设计人员分工明确;在代码生成过程中减少大量机械重复工作,大大提高开发效率,良好的设计使得代码重用,后期维护都降低成本。一个好的模板引擎的使用要考虑的...
  • ndb 存储引擎

    2021-03-03 18:47:37
    MySql 官方存储引擎存储引擎是为不同的表类型处理 SQL 操作的 MySql 组件。InnoDB 是默认的、最通用的存储引擎,也是官方推荐使用的存储引擎,除非一些特定案例。MySql 5.6 中的 CREATE TABLE 语句创建的表的存储...
  • 二、query理解 三、提到的一些好的技术 知识蒸馏,利用soft target Faiss库使用方法(一)facebook c++ python向量检索引擎:https://zhuanlan.zhihu.com/p/67200902 snips-nlu槽位解析,结构化解析工具:...
  • 2021 年 5 月 20 日,WAVE SUMMIT 2021 深度...由 Chatopera 开源的 Clause,中文语义理解引擎,使用百度飞桨作为机器学习框架,入选优秀开源合作项目。 活动盛况 Clause,中文语义理解引擎 Chatopera Language Un
  • 什么是存储引擎以及不同存储引擎特点以前一直玩Oracle数据库,整天围着业务需求和执行计划转,刚刚接触mysql看到存储引擎不慎理解,相应会有与我相同人群存在,所以写文以记之。首先简单从字面理解,想当是与磁盘打...
  • 搜索引擎(Search Engine)是特定的计算机程序,它根据一定的策略、从互联网上搜集信息,对信息进行处理后,为用户提供检索服务,并将用户结果展示给用户。...只有深入理解搜索引擎原理,才能熟悉搜索引擎收集...
  • 比较如下: mysql hive SQL转化引擎 布置在单机 布置在单机 底层数据存储文件 存储在单机 分布在集群 下面是查看hive底层计算引擎的命令 0: jdbc:hive2://Desktop:10000> SET hive.execution.engine; ±------------...
  • 九个方面理解seo(搜索引擎)

    千次阅读 2021-01-07 11:29:27
    seo翻译过来就是搜索引擎优化,它是一种通过分析搜索引擎的排名规律,了解各种搜索引擎怎样进行搜索、怎样抓取互联网页面、怎样确定特定关键词的搜索结果排名的技术。
  • 语音引擎下载

    千次阅读 2021-02-12 02:13:34
    呵呵,不知看完以上内容你能理解语音库和朗读软件是什么关系没? 很多语音朗读软件都是没有自带语音库的,所以您在安装好朗读软件后,还必须另外下载安装语音库才能够正常使用朗读软件来朗读文本。 所以你要知道的...
  • MySQL 存储引擎

    千次阅读 2020-12-29 04:39:42
    一、MySQL存储引擎种类查看命令:show engines;MRG_MYISAMCSVMyISAMBLACKHOLEPERFORMANCE_SCHEMAInnoDBARCHIVEMEMORYFEDERATED其他产品存储引擎(percona、mariadb)TokuDBMyRocks二、InnoDB 核心特性介绍1、聚簇索引...
  • 搜索引擎优化就是更好更便捷的获客通道。 在过去十多年我除了做点技术外,主要就是运营和数字营销,自10年开始学习谷歌seo到现在,已经10年了,回想起来感慨颇多。以前服务过的有些企业已经不复存在,有些被后来的...
  • 工作流引擎activiti的认识

    千次阅读 2020-12-18 13:19:47
    本文旨在帮助读者理解Activiti的工作机制,使其可以迅速上手该框架。本文将从这几个方面简单介绍了Activiti工作流引擎: 1、为什么要使用工作流引擎 2、BPMN2.0规范简介 3、开源BPMN项目对比 1. 为什么要使用工作流...
  • 常见开源规则引擎对比分析

    千次阅读 2020-12-30 11:19:52
    这很符合规则引擎那一套,因此下面选取了几个业界常见的规则引擎进行分析。 我们分别都从使用角度、原理角度两个方面进行分析。 0x01 easy-rules 项目地址:https://github.com/j-easy/easy-rules 1. 规则模型 !...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 407,751
精华内容 163,100
关键字:

引擎怎么理解