精华内容
下载资源
问答
  • 大学文献检索资料 DOC

    2009-11-28 10:35:24
    第一章 信息检索的基本知识 第一节 信息、知识、文献、情报 信息: 应用文字、数据和信号形式通过一定的传递和处理,来表现各种相互联系的客观事物在运动变化中所具有特征性的内容的总称。 知识: 人们通过实践对...
  • 问答系统是信息检索的一种高级形式,能够更加准确地理解用户用自然语言提出的问题,并通过检索语料库、知识图谱或问答知识库返回简洁、准确的匹配答案。相较于搜索引擎,问答系统能更好地理解用户提问的真实意图, ...

    问答系统是信息检索的一种高级形式,能够更加准确地理解用户用自然语言提出的问题,并通过检索语料库、知识图谱或问答知识库返回简洁、准确的匹配答案。相较于搜索引擎,问答系统能更好地理解用户提问的真实意图, 进一步能更有效地满足用户的信息需求。问答系统是目前人工智能和自然语言处理领域中一个倍受关注并具有广泛发展前景的研究方向。

    一、引言

           问答系统处理的对象主要包括用户的问题以及答案。根据问题所属的知识领域,问答系统可分为面向限定域的问答系统、面向开放域的问答系统、以及面向常用问题集(Frequently Asked Questions, FAQ)的问答系统。依据答案来源,问答系统可分为基于结构化数据的问答系统如KBQA、基于文本的问答系统如机器阅读理解、以及基于问答对的问答系统如FAQ问答。此外,按照答案的反馈机制划分,问答系统还可以分为基于检索式的问答系统和基于生成式的问答系统。

          本文主要阐述FAQBot检索型问答系统的相关研究和处理框架,以及深度学习在其中的应用。FAQ检索型问答是根据用户的新Query去FAQ知识库找到最合适的答案并反馈给用户。如图所示:

     

    其中,Qi是知识库里的标准问,Ai是标准问对应的答案。

    具体处理流程为:

    • 候选集离线建好索引。采用Lucene引擎,为数万个相似问集合建立字级别倒排索引。Lucene引擎的性能能够将召回时间控制在毫秒级别,大大减轻后续模块的计算压力;
    • 线上收到用户 query 后,初步召回一批候选集作为粗排结果传入下一模块进行进一步精确排序;
    • 利用matching模型计算用户query和FAQ知识库中问题或答案的匹配程度;
    • 利用ranking 模型对候选集做 rerank 并返回 topk个候选答案。
    • 1)matching 模型负责对 (query, reply) pair 做特征匹配,其输出的 matching score 通常会作为 ranking 模型的一维特征;

      2)ranking 模型负责具体的 reranking 工作,其输入是候选回复对应的特征向量,根据实际需求构造不同类型(如:pointwise, pairwise, listwise)的损失函数,其输出的 ranking score 是候选回复的最终排序依据。各种 learning2rank 模型通常就是在 ranking 阶段起作用;

      3)有些检索系统可能不会明确区分 matching 和 ranking 这两个过程。

           可以看出,FAQ问答系统的核心任务可以抽象为文本匹配任务。传统文本匹配方法如信息检索中的BM25,向量空间模型VSM等方法,主要解决字面相似度问题。然而由于中文含义的丰富性,通常很难直接根据关键字匹配或者基于机器学习的浅层模型来确定两个句子之间的语义相似度。近几年,利用神经网络,尤其是深度学习模型学习文本中深层的语义特征,对文本做语义表示后进行语义匹配的方法开始被提出并应用于检索式问答系统。基于深度学习的模型一方面能够节省人工提取特征的大量人力物力。此外,相比于传统方法,深度文本匹配模型能够从大量的样本中自动提取出词语之间的关系,并能结合短语匹配中的结构信息和文本匹配的层次化特性,发掘传统模型很难发掘的隐含在大量数据中含义不明显的特征,更精细地描述文本匹配问题。

    二、深度学习文本匹配

           FAQ问答系统一般有两种解决思路,一种是相似问题匹配,即对比用户问题与现有FAQ知识库中问题的相似度,返回用户问题对应的最准确的答案,这种思路类似于text paraphrase;另一种是问题答案对匹配,即对比用户问题与FAQ知识库中答案的匹配度,返回用户问题对应的最准确的答案,这种思路为答案选择,即QA匹配。这两个类型相通的地方在于都可以看作文本语义匹配,很多模型能同时在两个任务上都得到很好的效果,区别在于QA匹配存在问题与答案不同质的问题。   

          下面总结一些基于深度学习的文本匹配工作,希望能够抛砖引玉,如有遗漏或错误,欢迎补充或指出。

    2.1 模型框架

           概括来讲,深度语义匹配模型可以分为两大类,分别是representation-based method 和 interaction-based method。

    1) Represention-based Method

    框架图如下:

     

    这类算法首先将待匹配的两个对象通过深度学习模型进行表示,之后计算这两个表示之间的相似度便可输出两个对象的匹配度。这种方式下,更加侧重对表示层的构建,使其尽可能充分地将待匹配的两个对象都转换成等长的语义表示向量。然后在两个对象对应的两个语义表示向量基础上,进行匹配度的计算。针对匹配度函数f(x,y)的计算,通常有两种方法,如下图所示:一种是通过相似度度量函数进行计算,实际使用过程中最常用的就是 cosine 函数,这种方式简单高效,并且得分区间可控意义明确;另一种方法是将两个向量再接一个多层感知器网络(MLP),通过数据去训练拟合出一个匹配度得分,更加灵活拟合能力更强,但对训练的要求也更高。

     

    Represention-based Extended

    上述的representation-based method存在的问题是直接基于句子的表示太粗糙,无法准确进行文本匹配任务。受信息检索领域的启发,结合主题级别和单词级别的匹配信息通常可以获得更好的表现。于是进一步对句子表示进行扩展,加入细粒度匹配信息。框架图如下:

     

    2) Interaction-based Method

    框架图如下:

     

    基于交互的方法是通过Interaction来对文本相似性建模。该方式更强调待匹配的两个句子得到更充分的交互,以及交互后的匹配。在表示层不会将句子转换成一个整体表示向量,一般情况下会保留和词位置相对应的一组表示向量。首先基于表示层采用DNN或直接由word embedding得到的句子表示,和词位置对应的每个向量体现了以本词语为核心的一定的全局信息;然后对两个句子按词对应交互,由此构建两段文本之间的 matching pattern,这里面包括了更细致更局部的文本交互信息;基于该匹配矩阵,可以进一步使用DNN等来提取更高层次的匹配特征,最后计算得到最终匹配得分。Interaction-based 方法匹配建模更加细致、充分,一般来说效果更好,但计算成本增加,更加适合一些效果精度要求高但对计算性能要求不高的场景。

          下面总结了不同类型的深度学习文本匹配模型。可以看出,深度文本匹配现有工作很多,本文将对近几年的部分工作进行详细介绍,其他可参考对应文献进行深入阅读。

    • representation-based:DSSM[1]; CDSSM[2]; ARC I[3]; CNTN[4]; LSTM-RNN[5]
    • representation-based extension:MultiGranCNN[6]; MV-LSTM[7]
    • interaction-based:ARC II[8]; MatchPyramid[9]; Match-SRNN[10]; DeepMatch[11]; ABCNN[12]; QA-LSTM/CNN-attention[13,14]; AP[15]; AICNN[16]; MVFNN[17]; BiMPM[18]; DQI[22]; DIIN[23]

    2.2 模型介绍

    2.2.1 ABCNN[12]

    首先介绍BCNN,它是ABCNN模型的基础,即未添加Attention的模型。模型结构如图所示:

     

    输入层:将输入句子进行padding后转化成词向量即可; 卷积层:对句子表示进行卷积,使用wide conv的方式; pooling层:论文中使用了两种pooling方式,一种是最后一个pooling层为all-ap,还有一种是中间pooling层为w-ap。区别就是池化时的窗口大小不同; 输出层:接logistic 回归层做2分类。

    ABCNN是在BCNN的基础上加了两种attention机制。模型结果如下图:

     

    (1)在输入层加入attention

    其原理为将输入拓展成双通道。新添加的通道是attention feature map,即上图中的蓝色部分。首先计算attention matrix A,其每个元素Aij代表句子1中第i个单词对句子二中第j个单词的match_score,这里使用了Euclidean距离计算。然后再分别计算两个句子的attention feature map。使用两个矩阵W0,W1分别和A还有 A的转置相乘,得到与原本feature尺寸相同的feature map。W0和W1都是模型参数,可以使用相同的W,即共享两个矩阵。这样我们就将原始的输入拓展成了两个通道。

    (2)在pooling层加入attention

    Attention matrix A的计算方法与上述相同,得到A后需要为两个句子分别计算attention权重向量,如上图中的两个虚线部分col-wise sum和row-wise sum。这两个向量中的每个元素分别代表了相应单词在做Average Pooling时的权重。相当于pooling不再是简单的Average Pooling,而是根据计算出的Attention权重向量得到的pooling。

    2.2.2LSTM/CNN,attention[13,14]

     

    给定一个(q,a)pair,q是问题,a是候选答案。首先得到它们的词向量,再使用biLSTM进行encoder,生成问题和答案的分布式表示,然后利用余弦相似度来衡量它们的距离。训练目标是hinge loss。

     

    在biLSTM表示输出的基础上进一步使用CNN,CNN可以获取biLSTM输出的向量之间的局部信息。从而给出问题和答案的更多复合表示。

     

    当biLSTM模型在问题和答案上长距离传播依赖关系时,隐藏向量的固定宽度成为瓶颈。通过动态调整问题答案的更多信息部分,可以使用注意力机制来缓解这种弱点。在max/mean pooling前,每个biLSTM输出向量将乘以softmax权重,该权重由biLSTM的问题嵌入得到。

    2.2.3 Attentive Pooling Networks[15]

           QA_LSTM with attention中attention的设计是通过问题对答案的影响进行特征加权,但是它忽略了答案对问题的影响。Attentive pooling networks同时将attention应用到问题和答案,提高算法的准确率。通过同时学习两种输入的表示以及它们之间的相似性测量,其创新点在于将Q和A这两个输入通过参数矩阵U投射到一个共同的表示空间,用Q和A的representation构造了一个矩阵G,分别对G的row和column做max pooling, 这样就能分别能得到Q和A的attention vector。AP_BILSTM模型框架图如下:

     

    AP_BILSTM模型的设计首先将问题和答案经过BILSTM抽取特征,然后通过两者的特征计算soft alignment,得到的G矩阵表示了问题和答案相互作用的结果。对该矩阵的列取最大,即为答案对问题的重要性得分,同理对该矩阵行取最大即为问题对答案的重要性得分。这两个向量再作为attention向量分别和问题和答案表示相乘后得到问题和答案新的表示,最后再做匹配。

    2.2.4 AICNN[16]

    之前关于答案选择的研究通常忽略了数据中普遍存在的冗余和噪声问题。 在本文中,设计一种新颖的注意力交互式神经网络(AI-NN),以专注于那些有助于回答选择的文本片段。 问题答案的表示首先通过卷积神经网络(CNN)或其他神经网络架构来学习。然后AI-NN学习两个文本的每个配对片段的相互作用。 之后使用逐行和逐列池化来收集交互信息。之后采用注意机制来衡量每个细分的重要性,并结合相互作用来获得问答的固定长度表示。 模型框架图如下:

     

    2.2.5 MVFNN[17]

           上述基于神经网络的方法通过计算注意力来考虑信息的几个不同方面。 这些不同类型的注意力总是简单地总结并且可以被视为“单一视图”,不能从多个方面来审视问题和候选答案,导致严重的信息丢失。 要克服这个问题,此模型提出了一种多视图融合神经网络,其中每个关注组件生成QA对的不同“视图”,并且融合QA本身的特征表示以形成更整体的表示。模型框架图如下:

     

     

    对于一个问题,可能会有一堆视图来模拟其相应的答案。 在此模型中,根据直觉构建了四个视图。 这四个视图被命名为查询类型视图,查询主动词视图,查询语义视图和co-attention视图。最后使用fusion RNN模型来对这些视图进行融合。通过不同视图的融合,能对两个对象进行更准确的建模。

    2.2.6 BiMPM[18]

    针对基于交互这一类方法,一般是先对两个句子的单元相互匹配,之后再聚集为一个向量后做匹配。这种方式可以捕捉到两个句子之间的交互特征,但是之前的方式只是基于词级别的匹配但是忽略了其他层级的信息。此外,匹配只是基于一个方向忽略了相反的方向。一种双向的多角度匹配模型bilateral multi-perspective matching(BiMPM)解决了这方面的不足。模型框架如下图:

     

    模型自下而上一共包含五层,分别为单词表示层、上下文表示层、匹配层、聚合层和预测层,其中匹配层为模型的核心,共提出了四种匹配策略,这里的匹配可以看成是attention机制。

    单词表示层:使用GloVe模型训练向量,对字符embedding进行随机初始化,单词中的字符组成单词的向量表示作为LSTM网络的输入。

    上下文表示层:使用BiLSTM对p和q进行表示。

    匹配层:模型的核心层,包含四种匹配策略,分别是:Full-Matching、Maxpooling-Matching、Attentive-Matching和 Max-Attentive-Matching。四种匹配策略如下图:

     

    聚合层:利用BiLSTM对匹配层的输出向量进行处理,取得p、q前向和后向最后一个time step的输出进行连接后输入到预测层。

    预测层:softmax层,softmax函数分类。

           上述是对近几年部分深度文本匹配模型的总结,接下来则介绍基于深度模型的FAQBot。

    三、基于深度学习的FAQBot实现

    3.1 模型化流程

     

     

    3.2 数据获取及构造

    3.2.1 数据获取

           对于有大量问答记录的场景例如智能客服,这些记录里面有很多高频的知识点(知识点包括问题和答案)。这些高频的知识点对应的问法通常并不唯一。即知识库的结构为一个问题集合对应同一个答案。针对FAQ数据有以下三种数据类型:

    1. 标准问q:FAQ中问题的标准用户query
    2. 答案A: FAQ中标准问对应的的标准回答
    3. 相似问q1,q2...: 跟标准问语义相似可用同一答案回答的query

     

     

    其中,标准问q、对应答案A以及该标准问q对应的所有相似问q1,q2,...,一起组成一个知识点。一个知识点的样例见下图:

     

    3.2.2 数据构造

    数据构造包含了两个方面:

    (1)训练集测试集构造

    测试集:将相似问中的第一条相似问q1作为query,从FAQ知识库的所有知识点中通过Lucene召回30个知识点作为候选集

    训练集:包含两部分,一部分是正例的构造,另一部分是负例的构造,这两部分数据的构造方式将直接影响到最终的效果。在正例的构造中,因为每个知识点的第一个相似问是作为测试集中出现的,所以在构造训练集的时候排除掉所有知识点中的第一条相似问q1。这样的话,有多于2个相似问的知识点还有多于的其他相似问可以用来构造训练集。将这些识点中的标准问和从相似问的第二条开始(即[q2,q3,...,qn])可以按照不同方式构造出正例和负例。

    训练集正例的构造:去除所有知识点中的第一条相似问q1,其他相似问及标准问两两组合成正例pair对;对于相似问多的知识点进行剪切。

    训练集负例的构造的方式包括:

    • 按Jaccard距离召回;
    • 按Lucene召回;
    • 从其他知识点中随机选择;
    • 按照正例中各问题出现的比例从其他知识点中采样选择;
    • 每个句子和句子中的名词/动词构成pair对;
    • 针对知识点分布不均衡的问题,对相似问很多的知识点进行相似问剪切。

    (2)数据增强策略

    由于深度学习需要较多的数据,为了增强数据,我们采用了以下策略:

    • 交换两个句子之间的顺序;
    • 对句子进行分词,重新组合生成新的句子;
    • 打乱句子的顺序,随机抽取句子。

    3.3 模型建立

    3.3.1 模型框架

           基本框架一般都是将待匹配的两个句子分别使用两个encoder来获取对应context信息,然后将二者的context信息进行匹配,得到匹配后的特征信息。也可以在匹配之后的特征后面加上一些其他的传统文本特征,将所有这些特征进行concat。最后接上softmax层,做最终的分类。模型的框架如下图所示:

     

     

    3.3.2 模型建立及迭代优化

    Embedding层:使用word2vec和fasttext训练词向量和字符向量。

    Encoder层:卷积具有局部特征提取的功能, 所以可用 CNN 来提取句子中类似 n-gram 的关键信息,考虑文本的上下文信息。于是我们采用textCNN[19]来对句子进行编码表示,encoder过程见下图:

     

    Matching层:在得到两个句子的表示后,要针对两个句子的表示进行matching操作。可以根据需要构造出很多种类型的matching方式如下图[20],我们采用相对比较简单的element-wise相加和相乘的方式来进行matching。

    join层:在matching层之后得到的两个句子的共同表示之后,进一步引入额外的传统特征进行join操作,类似于下图[21]。

     

    引入interaction:上述步骤对两个句子encoder时没有考虑两个句子之间的关联。于是进一步引入更细致更局部的句子交互信息,从而能捕捉到两个句子之间的交互特征,根据交互得到的矩阵获取两个句子新的表示。如图:

     

    引入attention机制:采用注意机制使用权重向量来衡量句子不同部分重要性的不同。attention的计算主要思想沿用了AICNN和ABCNN中的几种attention,分别是feature的attention,interaction后新的表示和句子原表示之间的attention。

    四、总结与展望

    4.1 数据层面

    • 建立更加合理的知识库:每个知识点只包含一个意图,且知识点之间没有交叉,歧义,冗余等容易造成混淆的因素
    • 标注:为每个FAQ积累一定数量的有代表性的相似问
    • 后期的持续维护:包括新FAQ发现,原FAQ的合并、拆分、纠正等

    4.2 模型层面

    • 进一步捕捉syntactic level和semantic level的知识如语义角色标注(SRL, semantic role labelling)和词性标注(POS, part of speech tagging)等,引入到文本的表示之中,提高文本语义匹配的效果
    • 目前大部分检索行问答的工作做的是问题和问题匹配,或是问题和答案匹配。后续可以同时引入问题和答案的信息进行建模,如图:

     

    参考文献

    [1] Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]// ACM International Conference on Conference on Information & Knowledge Management. ACM, 2013:2333-2338.

    [2] Shen Y, He X, Gao J, et al. A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval[C]// Acm International Conference on Conference on Information & Knowledge Management. ACM, 2014:101-110.

    [3] Hu B, Lu Z, Li H, et al. Convolutional Neural Network Architectures for Matching Natural Language Sentences[J]. Advances in Neural Information Processing Systems, 2015, 3:2042-2050.

    [4] Qiu X, Huang X. Convolutional neural tensor network architecture for community-based question answering[C]// International Conference on Artificial Intelligence. AAAI Press, 2015:1305-1311.

    [5] Palangi H, Deng L, Shen Y, et al. Deep Sentence Embedding Using Long Short-Term Memory Networks: Analysis and Application to Information Retrieval[J]. IEEE/ACM Transactions on Audio Speech & Language Processing, 2016, 24(4):694-707.

    [6] Yin W, Schütze H. MultiGranCNN: An Architecture for General Matching of Text Chunks on Multiple Levels of Granularity[C]// Meeting of the Association for Computational Linguistics and the, International Joint Conference on Natural Language Processing. 2015:63-73.

    [7] Wan S, Lan Y, Guo J, et al. A Deep Architecture for Semantic Matching with Multiple Positional Sentence Representations[J]. 2015:2835-2841.

    [8] Hu B, Lu Z, Li H, et al. Convolutional Neural Network Architectures for Matching Natural Language Sentences[J]. Advances in Neural Information Processing Systems, 2015, 3:2042-2050.

    [9] Pang L, Lan Y, Guo J, et al. Text Matching as Image Recognition[J]. 2016.

    [10] Wan S, Lan Y, Xu J, et al. Match-SRNN: Modeling the Recursive Matching Structure with Spatial RNN[J]. Computers & Graphics, 2016, 28(5):731-745.

    [11] Lu Z, Li H. A deep architecture for matching short texts[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2013:1367-1375.

    [12] Yin W, Schütze H, Xiang B, et al. ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs[J]. Computer Science, 2015.

    [13] Tan M, Santos C D, Xiang B, et al. LSTM-based Deep Learning Models for Non-factoid Answer Selection[J]. Computer Science, 2015.

    [14] Tan M, Santos C D, Xiang B, et al. Improved Representation Learning for Question Answer Matching[C]// Meeting of the Association for Computational Linguistics. 2016:464-473.

    [15] Santos C D, Tan M, Xiang B, et al. Attentive Pooling Networks[J]. 2016.

    [16] X Zhang , S Li , L Sha , H Wang. Attentive Interactive Neural Networks for Answer Selection in Community Question Answering[C]// International Conference on Artificial Intelligence.

    [17] L Sha , X Zhang , F Qian , B Chang , Z Sui. A Multi-View Fusion Neural Network for Answer Selection[C]// International Conference on Artificial Intelligence.

    [18] Wang Z, Hamza W, Florian R. Bilateral Multi-Perspective Matching for Natural Language Sentences[C]// Twenty-Sixth International Joint Conference on Artificial Intelligence. 2017:4144-4150.

    [19] Kim Y. Convolutional Neural Networks for Sentence Classification[J]. Eprint Arxiv, 2014.

    [20] Wang S, Jiang J. A Compare-Aggregate Model for Matching Text Sequences[J]. 2016.

    [21] Severyn A, Moschitti A. Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks[C]// The International ACM SIGIR Conference. ACM, 2015:373-382.

    [22] Xiaodong Zhang, Xu Sun, Houfeng Wang. Duplicate Question Identification by Integrating FrameNet with Neural Networks[C]//In the Thirty-Second AAAI Conference on Artificial Intelligence (AAAI-18)

    [23] Gong Y, Luo H, Zhang J. Natural Language Inference over Interaction Space[J]. 2018

    https://zhuanlan.zhihu.com/p/26879507

    https://cloud.tencent.com/developer/article/1196826

     

     

     

    该论文主要给出了short text conversation(STC)利用检索式方法的框架,如下图所示: 

    https://blog.csdn.net/u014025868/article/details/72933397
    这里写图片描述 
    这里写图片描述

    展开全文
  • 信息抽取的五个层次

    2016-05-04 11:29:17
    这些数据可以直接向用户显示,也可作为原文信息检索的索引,或存储到数据库、电子表格中,以便于以后的进一步分析。从广义上讲,信息抽取的处理对象可以是文本、图像、语音、视频等多种媒体。 信息抽取按层次不同可分为...

    信息抽取是以一个以未知的自然语言文档作为输入,产生固定格式、无歧义的输出数据的过程。这些数据可以直接向用户显示,也可作为原文信息检索的索引,或存储到数据库、电子表格中,以便于以后的进一步分析。从广义上讲,信息抽取的处理对象可以是文本、图像、语音、视频等多种媒体。

    130577397711466054.jpg

    信息抽取按层次不同可分为五类。

    ①命名实体的识别。抽取文档中的人名、地名、组织名、日期、时间和涉及的一些数额等信息内容。目前,命名实体的识别技术是信息抽取技术中最简单,也是最可靠的技术。

    ②指代的解析。分析文档中实体之间的指代关系,同一个实体在所分析的篇章中,可能有多种不同的指代方法,指代的解析就是将不同的指代连接到同一实体上。

    ③模板元素的构建。将描述性信息联系到实体上,信息抽取除了对命名实体进行定位、分类外,一般还要求将一些描述性信息分配不同的实体上,形成实体的完整描述。

    ④模板关系的构建。发现实体之间的相互关系,在模板元素的基础上,寻找实体之间可能存在的关系。

    ⑤场景模板的产生。场景模板是信息抽取系统输出的原型,场景模板的产生就是将各实体联系到一起形成事件或关系的完整描述。

    130577397807311536.jpg

    信息抽取以结构化的方式表达原文的内容,这使得各种不同的应用都可利用或得益于信息抽取的结果。总的来讲,这些应用可分为如下几类。

    ①摘要和总结。将原先较长的文本,用较短的文本进行表达。

    ②可视化。以可视的方式表达原文中的概念及其关系。

    ③搜索。寻找某一处理层面上或语义上相似的信息。

    ④索引和分类。根据语义表示进行分类,建立索引。

    ⑤翻译。由于翻译具有语境针对性,一般要进行语义上的信息抽取。

    ⑥问答。一般用于人机交互中。

    ⑦知识抽取。在信息抽取的基础上进行知识的抽取。

    ⑧知识推理。应用机器学习方法在信息抽取结果上进行知识推理。

    ⑨任务定义。机器人等通过自然语言界面接受命令。

    ⑩构建知识库。信息放入知识库中,实现跨应用和时间的信息共享。

    展开全文
  • 2020-11-14

    2020-11-16 08:43:41
    数据库概述 数据库相关定义   数据库: 存放数据的仓库,数据库中包含了数据和数据库对象, 例如表(table) ,视图(view),存储过程...  2、数据库(DataBase): 数据库可分为为 关系型数据库(MySql ,Or

    数据库概述

    数据库相关定义

      数据库: 存放数据的仓库,数据库中包含了数据和数据库对象, 例如表(table) ,视图(view),存储过程(procedure) 和触发器等都称为数据对象
      在这个数据库体系中包含如下几个概念
       1、数据(Data): 数据是描述事物的符号记录,是数据库的基本对象 ,例如 图像,视频,音频,记录信息 。数据处理: 顾名思义就是对数据进行处理,包括对数据存储、计算、加工、检索的过程
      2、数据库(DataBase): 数据库可分为为 关系型数据库(MySql ,Oracle、DB2 等)和非关系型数据库 (Redis ,MongoDB )存储数据的仓库, 长期存储在计算机内有组织,有结构的大量的可共享的数据集合。
      特点:永久存储、有组织、可共享
      3、数据库管理系统(DataBaseManager System)
      它是介于用户和操作系统之间的管理数据的软件, 它可以科学有效的组织和存储数据 。
      它的作用:数据定义功能、数据的组织和存储、数据的操纵功能、数据库的运行管理、数据库的建立和维护
      数据库管理系统通常由DBA(数据库管理员 DataBase Administrator)管理
       4、数据库系统(DataBase System)把以数据应用为基础的系统统称为数据库系统,它包含 数据库、计算机硬件,数据库管理系统和相关软件和管理人员
    在这里插入图片描述

    数据库软件介绍

      Oracle : 甲骨文公司产品 (收费)
      MySql:被甲骨文收购(免费,开源)
      SQL Server: 微软的数据库
      DB2: IBM公司

    数据建模

       概念模型定义: 为了解决特定的问题,将人们所关心的某些方面,建立以数据字段为基础的 模型 , 面向人,按用户的观点对数据和信息建立模型 ,这里通常使用 ER模型(Entity -Ralation)
      数据模型包括: 层次模型、 网状模型、关系模型(重点)
      关系模型:
      关系: 将一个没有重复行重复列的二维表称为一个关系, 二维表也叫关系表
      元组: 在关系表中的 一条记录就是元素, 每一条记录对应一个元组
      字段(属性): 一个关系中的 每一列的列头称为字段(属性) ,每一个属性都有一个属性名, 其属性的值称为属性值
    在这里插入图片描述

      域: 每一个属性的取值范围, 例如 性别属性 它的域就是男,女, 每一个属性的值都必须来自域的值
      主键: 在一个关系表中, 用于唯一标识的,没有特定业务意义的可以定义为主键,例如 表的ID
      外键: 来自主外键表的关系中(主表和子表) ,在子表中与主表关联的字段。 例如 班级表 和 学生表
      主表: 在这个关系中 表示1的一方 是主表, 多的一方式子表 班级表是主表,学生表是子表
      例如 学生和科目表的关系: 学生是主表,科目是子表 。
    在这里插入图片描述

    数据库的三大范式

      三大范式的作用: 用于在设计数据库表时,尽量减少数据表设计的字段冗余,和增强表的设计的合理性 ,在实际开发中 必须准寻第一,二范式,可以适当的不准寻第三范式。
      第一范式: 在一个关系表中所有的属性都是不可分割的独立单元。
      第二范式: 在满足第一范式的基础上, 每一个字段除了主键以外 都与该表主体直接相关 。例如学生表中 可以定义 学生姓名,学生年龄,学生生日,不能定义学生的班级。因为学生的班级不是与学生直接相关的 ,而是建立班级表关联学生表。
      第三范式: 在满足第二范式的基础上 , 除了主键以外的列 都不传递依赖于主键列,则满足第三范式
      在实际开发中 第三范式作为可选规则
      学生id 学生姓名 学生年龄 外键班级id 班级名称(传递依赖)
      传递依赖的字段会增加数据表字段冗余 ,当修改“班级名称时”, 不仅要修改 班级表的班级名称,还要修改 学生表的班级名称,这个不合理的, 但有时候为了提高查询效率(减少表的关联),也可以不满足第三范式(增加冗余字段)。

    安装卸载数据库

      数据库版本 : MySQL5.0 、MySQL5.5、MySQL5.7 、MySQL8.0 (推荐)
       在 我的电脑-》管理-》 管理进程服务 -》 MySQL80服务
      mysql的默认管理员 root 密码自定义
      mysql的默认端口号: 3306
      连接mysql的方式
      1、通过命令行连接
      cmd进入到mysql的安装目录(C:\Program Files\MySQL\MySQL Server 8.0)的bin目录下:mysql -hIP地址 -u用户名 -p秒
      远程连接: mysql -h47.100.182.246 -uroot -p123456
      本地连接时 ip可以写 localhost 或者 127.0.0.1
      2、 可以采用第三方客户端连接, 可以通过命令行访问
      mysql的核心配置文件: my.ini 8.0以前在安装目录下,8.0以后在数据文件的目录下:C:\ProgramData\MySQL\MySQL Server 8.0

    数据库的基本命令

      1、创建用户:create user 用户名 identified by ‘密码’
       给用户重命名:rename user 用户名 to 新用户名,创建用户之后 需要给用户赋予权限
      2、给用户赋予权限 (grant ):grant select on 数据库名.* on 用户名 – 给用户名赋予查询 该数据库的所有对象的权限
      撤销权限:revoke select on 数据库名.* from 用户名-- 给用户撤销 查询该数据库的权限
      3、 删除用户 drop user 用户名
      4、创建数据库:create database 数据库名
      使用数据库: use 数据库名 ,当使用指定数据库时,后面所有操作都是针对该数据库的
      5、 显示所有数据库 :show databases ;
      显示数据库下所有的表:show tables;
      设置编码格式 (没有乱码则不需要修改):set character_set_results=’GBK’;
      desc 表名: 显示该表的结构

    SQL语言

      SQL(Structure Query Language)结构化查询语言,用于操作主流数据库,例如MySQL ,ORACLE,DB2等, 方便快捷的检索和管理数据库 。
      SQL语言分类
      1、数据定义语言(DDL Data Definition Language) : 用于定义数据库表结构,视图,用户等 对象, create 、alter 、drop
      2、数据操纵语言(DML Data Manipulation Language); 用于操作数据和检索数据 ,包含 insert 、 delete 、 update 、 select
      3、数据控制语言(DCL Data Controller Language): 给用户赋予权限 (grant) ,撤销权限 (revoke)
      4、事务控制语言(TCL Data Transaction Language ):commit (提交事务)、rollback (回滚事务)

    数据查询个检索select

      数据库操作中最常用的语句
      基础语法:select 字段名1 , 字段名2 ,… from 表名 [ where 条件赛选] ;

    -- 注释  查询表记录
    -- 查询单列 
    select sid from t_student ;
    -- 查询多列   查询指定sql 快捷键   选中sql ctr+shift+r
    select sid,sname from t_student;
    -- 查询所有列
    select * from t_student;
    select * from t_dept;
    select * from t_man;
    
    -- 去掉重复列  distinct  (效率较低)
    -- 查询所有学生的年龄
    select distinct(sage) from t_student;
    
    -- 使用数学表达式   
    --  将每个学生的分数 增加20分 并重命名列(as关键字)
    select sscore as 分数 , sscore + 20   as  '增加20分后' from t_student;
    
    -- 注意 在数学计算过程中,如果数据为空,会影响计算结果
    -- 可以使用 判空处理  ifnull  如果字段为空 就表示0 
     
     select sscore as 分数 , ifnull(sscore ,0) + 20 as20from
     t_student;
     -- 给字段起别名时,如果出现特殊字符,可以使用“” 
     -- mysql中“” 和 ‘’的区别
     
    select sname as '姓名'  ,sscore as "分 数" from t_student ;
    -- 所有男生信息  where 字段名 ='值'   mysql推荐用''  
    select * from t_student where  ssex="男";
    
    -- 连接操作符  ,可以将多个字段连接到一个字段中显示 
    concat(字段1,字段2)
    select concat(concat(sname,'的'),SSCORE) as '学生的分数' from t_student ;
    
    SELECT * FROM T_STUDENT;
    

      
      
      
      
      
      
      
      
      

    展开全文
  • 图像特征的提取与表达

    千次阅读 2007-07-25 14:14:00
    由于基于文本的图像特征提取在数据库系统和信息检索等领域中已有深入的研究,本章中我们主要介绍图像视觉特征的提取和表达。视觉特征又可分为通用的视觉特征和领域相关的视觉特征。前者用于描述所有图像共有的特征,...
    图像特征的提取与表达是基于内容的图像检索技术的基础。从广义上讲,图像的特征包括基于文本的特征(如关键字、注释等)和视觉特征(如色彩、纹理、形状、对象表面等)两类。由于基于文本的图像特征提取在数据库系统和信息检索等领域中已有深入的研究,本章中我们主要介绍图像视觉特征的提取和表达。
    视觉特征又可分为通用的视觉特征和领域相关的视觉特征。前者用于描述所有图像共有的特征,与图像的具体类型或内容无关,主要包括色彩、纹理和形状;后者则建立在对所描述图像内容的某些先验知识(或假设)的基础上,与具体的应用紧密有关,例如人的面部特征或指纹特征等。由于领域相关的图像特征主要属于模式识别的研究范围,并涉及许多专业的领域知识,在此我们就不再详述,而只考虑通用的视觉特征。
    对于某个特定的图像特征,通常又有多种不同的表达方法。由于人们主观认识上的千差万别,对于某个特征并不存在一个所谓的最佳的表达方式。事实上,图像特征的不同表达方式从各个不同的角度刻画了该特征的某些性质。
    展开全文
  • 它是Qcode的包装,并具有其他关键功能,例如时序控制,脉冲生成和整形,数据+配置存储和检索,这些功能在Qcode中不存在。 安装说明: pip install -e sqdtoolz 基本设计概述: 主模块分为两部分: Qcodes:它...
  • 新技术篇介绍数据库领域的新进展,包括数据仓库与联机分析、数据挖掘、Web信息检索与Web数据管理技术等。  《数据库系统原理》内容丰富,系统性强,知识体系新颖,理论与实践结合,具有先进性和实用性,是高校...
  • JavaScript王者归来

    2013-01-10 11:30:48
    10.4.1 RegExp对象——利用正则表达式实现全文检索 10.4.2 RegExp的实例属性 10.5 强大的正则表达式 10.5.1 分析正则表达式的局部 10.5.2 一个例子--强大的在线编辑器 10.5.3 构造新的文法--一个在JSVM中实现JSVM2...
  • 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋自由匹配查找。 内容简介  《Java Web开发实战1200例》分为I、II两卷共计1200个例子,包括了...
  • 他的主要研究方向是数据库系统、时间数据库、概念建模、面向对象数据库、Wed建模和本体论数据库模型和语言、DBMS系统实现、检索技术等。  Shamkant B.Navathe 世界知名的数据库学者。现任佐治亚理工学院计算学院...
  • javapms门户网站源码

    2014-08-07 17:24:08
    Java语言之所以受人推崇,是因为它确实称得上是一种新一代编程语言,具有面向对象移植性好、与硬件无关、系统强健安全、提供了并发机制、性能高的众多优点,并提供了分布性、多线程、动态性的支持。 Java作为一...
  • XML入门经典(第4版).part4.rar

    热门讨论 2012-06-18 23:46:46
    《XML入门经典(第4版)》能帮助您快速从XML的基础知识提升到更为高级的编程技术中,您将深入钻研XML和数据库的使用艺术,包括如何查询XML信息检索XML数据和创建新的XML文档等等。此外,您还将学会如何在Web上发布...
  • XML入门经典(第4版).part3.rar

    热门讨论 2012-06-18 23:23:23
    《XML入门经典(第4版)》能帮助您快速从XML的基础知识提升到更为高级的编程技术中,您将深入钻研XML和数据库的使用艺术,包括如何查询XML信息检索XML数据和创建新的XML文档等等。此外,您还将学会如何在Web上发布...
  • XML入门经典(第4版).part2.rar

    热门讨论 2012-06-18 23:04:35
    《XML入门经典(第4版)》能帮助您快速从XML的基础知识提升到更为高级的编程技术中,您将深入钻研XML和数据库的使用艺术,包括如何查询XML信息检索XML数据和创建新的XML文档等等。此外,您还将学会如何在Web上发布...
  • XML入门经典(第4版).part1.rar

    热门讨论 2012-06-18 22:47:59
    《XML入门经典(第4版)》能帮助您快速从XML的基础知识提升到更为高级的编程技术中,您将深入钻研XML和数据库的使用艺术,包括如何查询XML信息检索XML数据和创建新的XML文档等等。此外,您还将学会如何在Web上发布...
  • Oracle创建视图(View)

    2018-12-06 14:14:23
    视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的...
  • 随着博客人数的增加, Blog 作为一种新的生活方式、新的工作方式、新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构:网络信息不再是虚假不验证的,交流和沟通更有明确的选择和方向性,单一...
  • 4.4 Session对象:会话信息处理对象 181 实例114 应用Session对象实现在页面之间传值 181 实例115 Session对象判断用户登录状态 183 实例116 设置用户在线时间 184 4.5 Cookie对象:缓存对象 185 实例117 利用Cookie...
  • 4.4 Session对象:会话信息处理对象 181 实例114 应用Session对象实现在页面之间传值 181 实例115 Session对象判断用户登录状态 183 实例116 设置用户在线时间 184 4.5 Cookie对象:缓存对象 185 实例117 利用Cookie...
  • 4.4 Session对象:会话信息处理对象 181 实例114 应用Session对象实现在页面之间传值 181 实例115 Session对象判断用户登录状态 183 实例116 设置用户在线时间 184 4.5 Cookie对象:缓存对象 185 实例117 利用Cookie...
  • jdbc基础和参考

    2014-01-08 13:04:17
    java中的对象分为: 1.域对象:主要作为信息的载体 2.行为对象:注重操作 Register(User user){ } insert(User user){ String sql = "insert into s_user( user.getId()+user.getName().......)"; } insert...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     7.14.2 学习有关对象和属性的更多信息  第8章 VBA编程基础  8.1 VBA语言元素概览  8.2 注释  8.3 变量、数据类型和常量  8.3.1 数据类型的定义  8.3.2 声明变量  8.3.3 变量的作用域  8.3.4 常量的使用  ...
  •  配置的树形浏览能够显示同PL/SQL开发相关的全部信息,使用该浏览器可以获取对象描述、浏览对象定义、创建测试脚本以便调试、使能或禁止触发器或约束条件、重新编译不合法对象、查询或编辑表格、浏览数据、在对象...
  • ,标识符分为正规标识符和定界标识符两大类。 正规标识符以字母、、、或汉字开头,后面可以跟随字母、数字、、、或者汉字,正 规标识符的最大长度是个英文字符或个汉字。正规标识符不能是保留字 正规标识符的例子:, ...
  • oracle数据库经典题目

    2011-02-17 15:05:20
    17. 从存储结构的角度来说,Oracle数据库可分为物理结构和逻辑结构。 18. 表空间是Oracle数据库中数据的逻辑组织,每个数据库至少有一个SYSTEM系统表空间。 19.视图是一个表示表的数据的数据库对象,它允许用户从...
  • C#全能速查宝典

    热门讨论 2014-04-26 16:16:27
    《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...
  • PDF格式扫描版,全书分为6篇21章,共894页。2011年6月出版。 注:这是完整版本(原版不含最后3章且无书签),为阅读方便,本人重新编辑了页码并添加了详细完整的书签。 全书压缩打包成3部分,这是第2部分。 注:本...
  • 全书分为10章,第 1章介绍网络编程基础,第 2章介绍套接字网络编程接口,第3章介绍Windows环境的网络编程,第4章介绍MFC编程,第5章介绍MFC WinSock类的编程,第6章介绍WinInet编程,第7章介绍WinSock的多线程编程,...
  • Oracle中权限主要分为两种,系统权限和实体权限。  系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。  DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。  RESOURCE:...
  • 度量学习也称作距离度量学习、相似度学习,通过学习对象之间的距离,度量学习能够用于分析对象时间的关联、比较关系,在实际问题中应用较为广泛,应用于辅助分类、聚类问题,也广泛用于图像检索、人脸识别等领域。...

空空如也

空空如也

1 2 3 4
收藏数 80
精华内容 32
关键字:

信息检索对象可分为