关系抽取方法总结(基于规则-传统机器学习-深度学习)_基于规则的关系抽取-程序员宅基地

技术标签: 自然语言处理  知识图谱  

信息抽取——命名实体识别

1 关系抽取介绍

关系抽取(Relation Extraction)的概念字1988年在MUC大会上提出,是信息抽取的基本任务之一,目的是为了识别出文本实体中的目标关系。

知识图是语义关联的实体,它将人们对物理世界的认知转化为计算机能够以结构化的方式理解的语义信息。关系抽取通过识别实体之间的关系来提取实体之间的语义关系。在现实世界中,关系的提取要比实体提取复杂得多,自然句子的形式也多种多样,所以关系的提取比实体提取困难得多。

在这里插入图片描述

关系抽取主要分为两个任务:

  • 关系分类
    • 基于预先给定的关系,对实体对进行分类匹配。
      Example 1:“Bill Gates works at Microsoft Inc.”
      Person-affiliation (Bill Gates,Microsoft Inc)
  • 开放关系抽取
    • 直接从文本中抽取结构化文本关系
    • 对文本关系映射到知识库的规范关系
      Example 2:Hudson was born in hampstead ,which is a suburb of London.
      (Husdon, w a s b o r n i n \color{red} was\quad born\quad in wasbornin , Hampstead)
      (Hampstead, i s a s u b u r d o f \color{red}is \quad a \quad suburd \quad of isasuburdof, London)

关系抽取的发展主要也分为三个阶段:基于规则、传统机器学习和基于深度学习。其中机器学习又包括监督学习,无监督学习,半监督学习。深度学习主要是监督学习和远程监督学习。下面分别介绍这三种框架的经典算法。

2 基于规则的关系抽取算法

通过手写规则来匹配文本,实现关系的提取。主要是分为两种。

2.1 基于触发词 (基于模式)

假设X和Y表示公司类型,可使用如下模板表示收购(ACQUISITION)关系。当满足下述模板,则表示两个实体指称在这个句子中具有收购(ACQUISITION)关系。

规则 内容
规则1 X is acquired by Y
规则2 X is purchased by Y
规则3 X is bought by Y

当匹配出以上模式时候,就可以根据规则提取出实体之间的关系(X,Acquisition,Y)

2.2 基于依存关系(语法树)

以动词为起点构建规则,对节点上的词性和边上的依存关系进行限定。
在这里插入图片描述
在这里插入图片描述

2.3 基于规则的RE优缺点

  • 优点:
    • 人工规则有高准确度
    • 可以针对特定的垂直领域
    • 在小规模数据集哈桑容易实现
  • 缺点
    • 低召回率
    • 特定领域需要专家构建,费时费力
    • 难以维护
    • 每条关系都需要人工构建
    • 鲁棒性差

3 基于机器学习的RE方法

根据数据是否标注,可以分为监督学习(Supervised Study)、半监督学习(Semi-Supervised Study)和无监督学习(Unsupervised Study)。

3.1 监督学习

监督学习从训练数据中研究模型,并预测测试数据的关系类型。输入时自然语句,输出时预定义的关系集合。由于在RE任务中的向量都是来自非结构化的数据,所以需要对文本不同层次的语言进行形式化,对于文本的处理方法主要是两类:特征向量法(Feture Vectors/Eigenvector )和核函数法。

3.1.1基于特征向量

主要是从上下文信息,词性,句法中提取出一系列的特征向量,然后通过分类算法,如:

  • Naive Bayes
  • SVM
  • ME最大熵模型

所谓的特征向量也就是一个实例的向量表示x, x i x^i xi就是N维特征向量的第i个元素。

3.1.2 基于核函数

通过核函数计算两个实体之间的相似度,来训练分类模型。核心在于如何设计核函数。
在这里插入图片描述
监督学习方法的准确率和标注数据的质量、数量成正比,且不能拓展新的关系,受限于训练语料库,也不适合在开放领域进行关系抽取,因此学术界开始转向半监督和无监督的学习方法。

3.3 半监督学习—Booststrap和Snowball

半监督学习又称弱监督学习,利用模型的假设,对少量的数据进行标注(freebase),在不足的条件下提高模型在标记样本中的泛化能力,未标记的数据为Corpus text。

在论述Snowball之前,先看Boost strap,他是介于监督学习和半监督学习的算法。

1 Boost strap

根据已知的标记数据seed库,生成规则。在利用该规则在text中进行遍历,生成新的规则,新规则入库,作为标记的数据进行重新遍历。缺陷就是如果生成的一个规则不准确,这个错误的规则会在库中逐渐增大,导致正确率逐渐降低。

在这里插入图片描述
接下来Snowball基于这个缺陷,进行了改进。

2 Snowball

关 于 该 算 法 的 介 绍 看 我 这 篇 博 客 \color{red}关于该算法的介绍看我这篇博客 关系抽取——Snowball
关于该算法的介绍看我这篇博客 关系抽取——Snowball
关于该算法的介绍看我这篇博客 关系抽取——Snowball


snowball在2000年被提出,提供了一种从文本文档生成模式和提取元组的新技术,此外,snowball还介绍了一种策略,用于评估在提取过程的每次迭代中生成的模式和元组的质量,只有那些被认为“足够可靠”的元组和模式才会被雪球保留,用于系统的后续迭代。

在这里插入图片描述
算法主要四个步骤

Step1:生成模式

定义规则:五元组构成 ( L , 实 体 1 , M , 实 体 2 , R ) \color{red}(L,实体1,M,实体2,R) L1M2R,其中,LMR是向量。
给定文本按照: L + 实 体 1 + M + 实 体 2 + R \color{red}L+实体1+M+实体2+R L+1+M+2+R 的模板生成规则。
在这里插入图片描述

Step2:生成tuple

在这里插入图片描述

然后,每个候选tuple都有许多帮助生成它的模式,每个模式都有相应的匹配程度。snowball使用这些信息以及关于模式选择性的信息来决定将哪些候选元组实际添加到它正在构建的表中。

Step3 :评估模式和tuple

通过计算模式的置信度来决定该模式是否被选择,反之错误的模式产生更多错误的元组。同样的,错误的元组也可能生成无关的模式,通过不断迭代产生更多错误的tuple,(as the name(Snowball) implies).如果一个元组是由多个高得分的模式所产生的,它的置信度就会高。

3.4 无监督学习—聚类

监督和半监督学习都需要提前确定关系的类型,事实上,在大规模语料库中,人们往往无法预测所有类型的实体关系。一些研究者试图通过基于聚类思想来解决这一问题。

无监督关系提取是由Hasegawa等人在2004年的ACL会议上首次提出的,随后的大多数方法都是在Hasegawa的基础上改进的。结果表明,聚类方法在关系提取中是非常可行的。

首先,他们通过爬虫获取新闻文本,然后根据文章的来源开始分类。然后,根据句子的语义结构,提取出满足一系列约束条件的基本模式聚类实体,将这些实体按照基本模型进行映射,形成次级聚类,使每个次级聚类包含的实体之间的关系相同。

无监督方法通常需要大规模的语料库作为支持。利用语料库的冗余度,挖掘可能的关系模式集,确定关系名称。该方法的不足之处在于关联名称难以准确描述,低频关联的召回率低

4 基于深度学习的RE方法

参考:鄂海红,张文静,肖思琪,程瑞,胡莺夕,周筱松,牛佩晴.深度学习实体关系抽取研究综述[J].软件学报,2019,30(06):1793-1818.

基于深度学习的关系抽取,主要是有监督学习和远程监督学习。其中有监督学习主要有pipeline和Joint。

  • 流 水 线 \color{red}流水线 线NER串联RE,在实体识别完成的基础上直接进行实体之间关系的抽取;
  • 联 合 学 习 \color{red}联合学习 :基于神经网络端到端模型,同时完成实体的识别和实体间关系的抽取。
  • 远 程 监 督 方 法 \color{red}远程监督方法 :缺少人工标注数据集,比有监督多一步远程对齐知识库给无标签数据打标的过程。而构建关系抽取模型模型的部分,与有监督领域的流水线方法差别不大。

基于DL的RE任务框架如下:

  1. 获取有标签数据:有监督方法通过人工标记获取有标签数据集,远程监督方法通过自动对齐远程知识库获取有标签数据集;
  2. 构建词向量表示:将有标签句子分词,将每个词语编码成计算机可以接受的词向量,并求出每个词语与句子中实体对的相对位置,作为这个词语的位置向量,将词向量与位置向量组合作为这个词语的最终向量表示;
  3. 进行特征提取:将句子中每一个词语的向量表示输入神经网络中,利用神经网络模型提取句子特征,进而训练一个特征提取器;
  4. 关系分类:测试时根据预先定义好的关系种类,将特征提取出的向量放入非线性层进行分类,提取最终的实体对关系;
  5. 评估分类性能:最后,对关系分类结果进行评估;

在这里插入图片描述
监督实体关系抽取框架演化流程
在这里插入图片描述

4.1 监督学习—流水线(Pipeline)

As the name implies,流水线就是将NER和RE两个任务串联起来进行,在NER的基础上进行RE。首先,针对已经标注好目标实体对的句子进行关系抽取,最后把存在实体关系的三元组作为预测结果输出。主要是基于 RNN,CNN,LSTM 及其改进模型的网络结构。

1 基于RNN的关系抽取

RNN 在处理单元之间既有内部的反馈连接又有前馈连接,可以利用其内部的记忆来处理任意时序的序列信息,具有学习任意长度的各种短语和句子的组合向量表示的能力,已成功应用在多种 NLP 任务中。

基于 RNN 模型进行关系抽取的方法由 Socher 等人[46]于 2012 年首次提出,此方法为分析树中的每个节点分配一个向量和一个矩阵,其中,向量捕获组成部分的固有含义,而矩阵捕捉它如何改变相邻单词或短语的含义.这种矩阵向量 RNN 可以在命题逻辑和自然语言中学习操作符的含义,解决了单词向量空间模型(singleword vector space models)无法捕捉到长短语的构成意义,阻碍了它们更深入地理解语言的问题。

RNN 相比于前馈网络更适合处理序列化输入,但 RNN 也存在着以下两个缺点:

  • (1) 在网络训练时,RNN 容易出现梯度消失、梯度爆炸的问题,因此,传统 RNN 在实际中很难处理长期依赖,这一点在 LSTM 网络中有所改进;
  • (2) 由于 RNN 的内部结构复杂,网络训练周期较长,而 CNN 结构相对简单,主要包括前置的卷积层和后置的全连接层,训练更快速.

2 基于CNN的关系抽取

CNN 的基本结构包括两层:其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等,减少了网络中自由参数的个数.由于同一特征映射面上的神经元权值相同,所以 CNN 网络可以并行学习.

Zeng 等人在 2014 年首次提出了使用 CNN 进行关系抽取,利用卷积深度神经网络(CDNN)来提取词汇和句子层次的特征,将所有的单词标记作为输入,而无需复杂的预处理,解决了从预处理系统中提取的特征可能会导致错误传播并阻碍系统性能的问题.图 3 描述了该论文用于关系分类的神经网络的体系结构.网络对输入句子提取多个级别的特征向量,它主要包括以下 3 个组件:词向量表示、特征提取和输出.图 3 右部分显示了句子级特征向量构建过程:每个词语向量由词特征(WF)和位置特征(PF)共同组成,将词语向量放入卷积层提取句子级特征.图 3 左上部分为提取词汇级和句子级特征的过程,然后直接连接以形成最终的句子特征向量.最后如图3 左下部分,通过隐藏层和 Softmax 层得到最终的分类结果.

在这里插入图片描述

3 基于 LSTM的关系抽取

由于梯度消失、梯度爆炸的问题,传统的 RNN 在实际中很难处理长期依赖,后面时间的节点对于前面时间的节点感知力下降.而 LSTM 网络通过 3 个门控操作及细胞状态解决了这些问题,能够从语料中学习到长期依赖关系.

Yan 等人在 2015 年提出了基于 LSTM 的融合句法依存分析树的最短路径以及词向量特征、词性特征、WordNet 特征、句法类型特征来进行关系抽取,该论文的模型图如图 4 所示.首先,如图 4 左下部分,利用斯坦福解析器将句子解析为依赖树,并提取最短依赖路径(SDP)作为网络的输入,沿着 SDP,使用 4 种不同类型的信息(称为通道),包括单词、词性标签、语法关系和 WordNet 上位词;在每个通道中(图 4 右部分是每个通道的细节图),词语被映射成向量,捕获输入的基本含义,两个递归神经网络分别沿着 SDP 的左右子路径获取信息,网络中的 LSTM 单元用于有效信息的传播;之后,如图 4 左上部分,最大池化层从每个路径中的 LSTM 节点收集信息,来自不同通道的池化层连接在一起,然后输入到隐藏层;最后,使用 Softmax 输出层用于关系分类。

在这里插入图片描述

4 流水线方法存在的问题

  1. 错误传播:实体识别模块的错误会影响到接下来的关系分类性能;
  2. 忽视了两个子任务之间存在的关系:丢失信息,影响抽取效果;
  3. 产生冗余信息:由于对识别出来的实体进行两两配对,然后再进行关系分类,那些没有关系的实体对就会带来多余信息,提升错误率.

4.2 监督学习—联合学习(Joint)(End2End)

相比于流水线方法,联合学习方法能够利用实体和关系间紧密的交互信息,同时抽取实体并分类实体对的关系,很好地解决了流水线方法所存在的问题。

联合学习方法通过实体识别和关系分类联合模型,直接得到存在关系的实体三元组.因在联合学习方法中建模的对象不同,联合学习方法又可以分为参数共享方法和序列标注方法:参数共享方法分别对实体和关系进行建模,而序列标注方法则是直接对实体-关系三元组进行建模.下面分别对这两种方法进行说明。

针对流水线方法中存在的错误累积传播问题和忽视两个子任务间关系依赖的问题,基于参数共享的实体关系抽取方法被提出.在此方法中,实体识别子任务和关系抽取子任务通过共享联合模型的编码层来进行联合学习,通过共享编码层,在训练时,两个子任务都会通过后向传播算法更新编码层的共享参数,以此来实现两个子任务之间的相互依赖,最终找到全局任务的最佳参数,实现性能更佳的实体关系抽取系统.在联合学习模型中,输入的句子在通过共享的编码层后,在解码层会首先进行实体识别子任务,再利用实体识别的结果,并对存在关系的实体对进行关系分类,最终输出实体-关系三元组.

1 参数共享

针对流水线方法中存在的错误累积传播问题和忽视两个子任务间关系依赖的问题,基于参数共享的实体关系抽取方法被提出.在此方法中,实体识别子任务和关系抽取子任务通过共享联合模型的编码层来进行联合学习,通过共享编码层,在训练时,两个子任务都会通过后向传播算法更新编码层的共享参数,以此来实现两个子任务之间的相互依赖,最终找到全局任务的最佳参数,实现性能更佳的实体关系抽取系统。

在联合学习模型中,输入的句子在通过共享的编码层后,在解码层会首先进行实体识别子任务,再利用实体识别的结果,并对存在关系的实体对进行关系分类,最终输出实体-关系三元组。

Miwa 等人在 2016 年首次将神经网络的方法用于联合表示实体和关系,其模型图如图 5 所示.在该模型中,实体识别子任务和关系分类子任务共享编码层的 LSTM 单元序列表示(编码层包括 LSTM 单元和隐藏层).该方法将实体识别任务当作序列标注任务,使用双向序列 LSTM 输出具有依赖关系的实体标签;之后,通过在双向序列 LSTM 单元上堆叠双向树结构 LSTM 的方法,使关系分类子任务和实体识别子任务共享编码层的 LSTM单元序列表示,同时,在关系分类子任务中捕获词性标签等依赖特征和实体识别子任务中输出的实体序列,形成依存树,最终根据依存树中目标实体间的最短路径对文本进行关系抽取.但该模型中的关系分类子任务和实体识别子任务仅共享了编码层的双向序列 LSTM 表示,从严格意义上来说不是真正的联合模型.但是该模型的提出,为之后真正意义上联合学习模型的提出奠定了基础,是基于深度学习方法做联合学习模型的启发者。

在这里插入图片描述

2 序列标注

基于参数共享的实体关系抽取方法,改善了传统流水线方法中存在的错误累积传播问题和忽视两个子任务间关系依赖的问题.但因其在训练时还是需要先进行命名实体识别子任务,再根据实体预测信息对实体进行两两匹配,最后进行关系分类子任务,因其在模型实现过程中分开完成了命名实体识别和关系分类这两个子任务,仍然会产生没有关系的实体这种冗余信息.为了解决这个问题,基于新序列标注方法的实体、关系联合抽取方法被提出.

Zheng 等人在 2017 年提出了基于新的标注策略的实体关系抽取方法,把原来涉及到命名实体识别和关系分类两个子任务的联合学习模型完全变成了一个序列标注问题.在该方法中,共包含 3 种标注信息:

  • (1) 实体中词的位置信息{B,I,E,S,O},分别表示{实体开始,实体内部,实体结束,单个实体,无关词};
  • (2) 实体关系类型信息,需根据实际需要自定义关系类型并编码,如{CF,CP,…};
  • (3) 实体角色信息{1,2},分别表示{实体 1,实体 2}.

该方法能使用序列标注的方法同时识别出实体和关系,避免了复杂的特征工程,通过一个端到端的神经网络模型直接得到实体-关系三元组,解决了基于参数共享的实体关系抽取方法可能会带来的实体冗余的问题.新序列标注方法的模型图如图 6所示.在该端到端的神经网络模型中,对输入的句子,首先,编码层使用 Bi-LSTM来进行编码;之后,解码层再使用 LSTM 进行解码;最终,输出模型标注好的实体-关系三元组。

  • 在这里插入图片描述

3 联合学习存在的共性问题

联合学习方法包括基于参数共享和基于新序列标注的实体关系抽取方法:

  • 前者很好地改善了流水线方法中存在的错误累积传播问题和忽视两个子任务间关系依赖的问题;
  • 而后者不仅解决了这两个问题,还解决了流水线方法中存在的冗余实体的问题.
  • 但这两种方法对于现今有监督领域存在的重叠实体关系识别问题,并未能给出相关的解决方案。

4 监督学习的关系抽取核心公式

加粗样式

4.3 基于远程监督的RE

Mintz于 2009 年首次提出将远程监督应用到关系抽取任务中,其通过数据自动对齐远程知识库来解决开放域中大量无标签数据自动标注的问题。远程监督标注数据时主要有两个问题:噪声和特征提取误差传播.

下面按照 PCNN及其扩展模型、LSTM、COTYPE、深度残差网络的顺序来进行远程监督领域实体关系抽取的主流方法介绍.。

在这里插入图片描述

1 基于 PCNN 及其扩展模型的实体关系抽取

  • 基于 PCNN 和多示例(MIL)的实体关系抽取
  • 基于 PCNN 和注意力机制(ATT)的实体关系抽取
  • 基于 PCNN、注意力机制和实体表示信息的实体关系抽取

2 基于 LSTM 的实体关系抽取方法

He 等人提出一种 SE-LSTM 结合多示例学习的方法来解决远程监督中错误传播、错误积累问题。

  • a) LSTM 网络抽取实体对方向性信息(图 10 左上部分):HE 等人首先将句子的最短依存路径(SDP)分割成两个子路径作为 LSTM 结构的输入,自动地抽取特征,以此来抽取实体对的方向性信息;

  • b) CNN 网络提取句子整体信息(图 10 右部分):尽管 SDP 对关系抽取非常有效,但是这并不能捕捉到句子的全部特征.针对此问题,作者将全部句子放进 CNN 网络,进而抽取句子的全部信息(sentence embedding);

  • c) 特征融合(图 10 左下部分):最后,将 LSTM 隐藏层单元以及 CNN 的非线性单元相融合,通过 Softmax层来标注实体对对应的关系。

在这里插入图片描述

3 基于 COTYPE 联合抽取模型的实体关系抽取方法

还没看论文(参考文献3)

4 基于深度残差网络的实体关系抽取方法

还没看论文

Reference:

1.《A Review on Entity Relation Extraction》; DOI:10.1109/ICMCCE.2017.14
2.《A survey of relation extraction of knowledge graphs》;DOI:https://doi.org/10.1007/978-3-030-33982-1
3. 鄂海红,张文静,肖思琪,程瑞,胡莺夕,周筱松,牛佩晴.深度学习实体关系抽取研究综述[J].软件学报,2019,30(06):1793-1818

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42327752/article/details/121386738

智能推荐

centos 安装git并配置ssh_centos设置git ssh-程序员宅基地

文章浏览阅读405次,点赞9次,收藏7次。centos 安装git并配置ssh_centos设置git ssh

如何利用 onlyoffice 实现文档格式转换_onlyoffice转换pdf-程序员宅基地

文章浏览阅读744次。日常生活和工作中,文档格式转换应该是很常见的需求。面对这样的需求,我们技术男有没有属于自己的好方法呢?答案是有的,它就是 onlyoffice,今天就来介绍如何利用 onlyoffice 实现文档格式转换。官方的 onlyoffice 版本在 4.2 之前使用的请求是 Get 类型,之后的版本使用的请求类型是 Post,这一点需要我们特别注意。下面的表格是关于格式转换 API 参数的详细介绍。属性参数描述数据类型存在类型Async定义转换请求类型:异步与否。支持的值:truefalse。_onlyoffice转换pdf

JavaScript Math.PI 属性-程序员宅基地

文章浏览阅读1.4w次,点赞3次,收藏16次。什么是PI?PI就是圆周率π,PI是弧度制的π,也就是180°所以,Math.PI = 3.14 = 180°ps,PI是一个浮小数Math.PI/5*4分别是什么意思?let dig = Math.PI/5*4Math.PI/5,表示角度平分为36° 每个顶点到与中心连线之间的夹角α=(2π)/n = Math.PI / n * 2 那么相间的两个顶点到与中心连线之间的夹..._math.pi

Windows下,使用免安装ZIP归档,安装MySQL(5.5)服务器-程序员宅基地

文章浏览阅读1.1k次。1. 解压 MySQL ZIP压缩包 到 安装路径 D:\xapp\apps\,并将解压出来的文件夹重命名为 mysql。2.将MySQL的可执行文件目录 D:\xapp\apps\mysql\bin 加入系统环境变量,然后重启计算机。6.启动Windows命令行 键入 mysql -u root -p ,然后两次回车,进入MySQL控制台。如果通过配置文件 将 数据库目录设置到了别处,则需要将 mysql程序根目录的 data目录中。的内容拷贝到新的目录中,否则MySQL无法启动。

Bootstrap4总结(1)_bootstrap4的好处-程序员宅基地

文章浏览阅读1k次。一.Bootstrap简介1.什么是BootstrapBootstrap 是全球最受欢迎的前端组件库,用于开发响应式布局、移动设备优先的 WEB 项目。Bootstrap4 目前是 Bootstrap 的最新版本,是一套用于 HTML、CSS 和 JS 开发的开源工具集。2.Bootstrap的来源Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript开发的简洁、直观、强悍的前端开发框架,使得 W._bootstrap4的好处

[C++]LeetCode208 . 实现 Trie (前缀树)-程序员宅基地

文章浏览阅读264次。208 . 实现 Trie (前缀树)题目:实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert(“apple”);trie.search(“apple”); // 返回 truetrie.search(“app”); // 返回 falsetrie.startsWith(“app”); // 返回 truetrie.insert(“app”);tr

随便推点

java file数组 初始化_Java数组的定义,声明,初始化和遍历-程序员宅基地

文章浏览阅读633次。数组的定义数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。数组的三个基本特点:1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。2. 其元素必须是相同类型,不允许出现混合类型。3. 数组类型可以是任何数据类型,包括基本类型和引用类型。数组变量属引用类型,数组也可以看..._java file 数组

十四章上机1_北大青鸟java第十四章上机练习4-程序员宅基地

文章浏览阅读449次。实现客户姓名录入 package kj;public class kehu { String []names=new String[10]; public void addName(String name){ for(int i=0;i

React路由 报错 ‘Switch‘ is not exported from ‘react-router‘.-程序员宅基地

文章浏览阅读722次。配置 路由 报错 'Switch' is not exported from 'react-router'.npm uninstall react-router-domnpm install [email protected]

利用tushare实现选股_tushare 选股-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏7次。ID:399899量化交易中,首先要弄好的就是选股。然后在才是买卖策略的制定。不同类型的策略,选股思路也不相同。俗话说得好,不管黑猫白猫,抓到老鼠的就是好猫。一个好的选股策略,往往在量化中是起较为关键的作用的。要实现程序化选股的话,数据又是一个前提。要有数据才能去实现编写程序。数据来源有很多,可以去爬取,也可以去股票交易网站下载。当然也有一些接口可以提供数据。常见的接口有tushare、baostock、akshare在这里我以一个简单的选股案例,为大家介绍一下使用tushare接口使用tush_tushare 选股

Gin框架使用Casbin进行用户权限校验_gin 的权限校验-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏10次。以下是测试项目目录一、配置modelconf/casbin_rbac_model.conf# 请求[request_definition]r = sub,obj,act# sub ——> 想要访问资源的用户角色(Subject)——请求实体# obj ——> 访问的资源(Object)# act ——> 访问的方法(Action: get、post...)# 策略(.csv文件p的格式,定义的每一行为policy rule;p,p2为policy rule的名字。)_gin 的权限校验

OKR制定与实施:团队OKR众筹策略_运营okr的制定与实施-程序员宅基地

文章浏览阅读319次。例如,一个团队有20个人,其中有2个员工在共同做A业务,3个员工在共同做B业务,5个员工在共同做C业务,剩下10个员工在共同做D业务,那么可以基于业务相关性将这20个员工分成A业务研讨组、B业务研讨组、C业务研讨组和D业务研讨组,这样,在步骤2目标众筹时,就以A、B、C、D 4个研讨小组为单位,邀请其输出3~5个团队OKR,然后团队主管再基于所有小组贡献的团队OKR进行投票表决,形成团队的OKR。通过这种方式,大大增强了团队成员对团队目标的共识程度,团队目标真正变成了大家共同的目标,而不再只是主管的目标。_运营okr的制定与实施

推荐文章

热门文章

相关标签