©PaperWeekly 原创 · 作者|龚俊民

学校|新南威尔士大学硕士生

研究方向|NLP、可解释学习

论文标题:Hierarchical Entity Typing via Multi-level Learning to Rank

论文来源:ACL 2020

论文链接:https://arxiv.org/abs/2004.02286

引言

细粒度实体标注 Fine-graind Entity Typing(FET)任务是给定一个候选实体







(Mention) 和其上下文







(Context),求这个涉及的可能类别集合







(Type),




















。它与实体命名识别 Named Entity Recognition (NER) 任务有几个显著不同在:

  • 在引入统一阅读理解 MRC 框架之前,NER 通常是序列标注任务。它需要模型从一段文本序列中找出实体的边界和实体的类型,以及非实体的边界。序列标注任务搜索空间很大,限制了实体的类别数量通常不会很多。

  • FET 做的是有层级的多标签分类任务。它的实体边界通常是已经给好了,需要从远程监督的候选标签中找出正确的、符合上下文语境的实体类型集合。它不关心给定上下文是否包含了别的实体。FET 类别有上下层级。比如位置这个一级类别下有行政区、建筑类等等,行政区二级类别下又可以分国家、省份和城市等等。子类别确定了父类别,而父类别又限定了其可能候选的子类别。

过去鲜有研究针对这种类别间的层次树形结构进行建模。他们处理该问题的常用做法是将所有不同层级的类别展平成同一级别,而忽略了树形结构中的子类型有效时其父类型也一定有效的特点。

直觉上看,类别数量更少的粗粒度分类比类别更多的细粒度分类更容易。这种展平的分类方式会增大模型要预测的类别数量。还需要依赖额外的技术手段来解决类别间不独立问题,比如 AFET [1],CLSC [2]。

本论文提出了一种层次化的排序学习框架来解决此类问题。排序模型会针对不同层级,制定不同的边际标准去进行分类。解码器会从粗粒度到细粒度去搜索类型的层级结构,以保证不违反层次结构的特性。结果在 BBN、OntoNotes 以及 FIGER 数据集上达到了 SOTA 水平。

相关工作

FET 过往研究主要专注在以下两个方面:

1. 更好的 mention 表征:从最开始的人工二元特征 [3,4],到分布式表征 [5],再到预训练好的词向量,如 LSTMs [1], CNN [6],和 Attention [7],到后来的预训练语言模型,如 ELMo [8,9] 。本论文用的是 ELMo 的表征方法。

2. 层级标签处理:此前大部分研究都是把标注问题看成是没有用层级结构的多标签分类问题,但有部分研究除外。

AFET [1] 提出了一种适应性的排序学习方法 来让相似的类别具有更小的 margins。NFETC [10] 提出了一种层级损失来给违背层级结构的输出惩罚。[11] 提出了用下级标签的关系来约束标签特征空间的嵌入。HYENA [12] 提出了在类型层级中为某父类别下的子类别排序方法,但它不支持神经网络端对端训练。本论文的从粗到细的端到端的解码方式能严格地保证输出不违背层级特性,从而得到了更好的表现。

针对细粒度实体标注任务,研究者们提出了几种不同的规范化描述方式。比如,类别并非层级构建的 Ultra-fine Entity Typing [13],类别标签是从海量语料中抽取出的短语。也有基于知识图谱中的实体关系构建类别标签体系的 [14],和用实体链接来增强的 [15]。

问题规范化

mention 用一个三元组












表示。其中,
























为一个由词组成的上下文句子序列,span








为指定 mention 在句子中的实体边界,其内容为

















。给定一个




,层级类型标注模型要输出一个类型集合 Y。这个类型集合归属于整个类别体系








层级类型以一个森林的形式表示。每棵树以一级类别为根,比如 /person, /location 等等。我们用 “/” 作为第零级类型 “entity”的表示,作为所有的一级类别的根,方便把森林连成一棵树。

▲ 不同数据集下的层级类型树,L1,L3 分别表示第一级类别和第三级类别

我们用二元关系






表示类型




是类型




的一个子类。




的唯一父节点被表示为













。类别




的所有子类别集合有












,与其共享同一个父节点的姊妹类别有












and










我们把候选实体只能被分类为一种细粒度类别的情景称作单路径标注。这是因为从根节点到叶节点只有一条路径可走,比如 AIDA 数据集。我们把能被分类为多种类别的情景称作多路径标注,因为从根节点到多个叶节点有多条路径,比如 BBN 数据集。

在 FIGER 中,存在一级类别作为叶节点没有往下继续分的情况。但在 AIDA 数据集,又存在对该一级类别下使用特殊叶节点处理的情况,比如 /per/police/<unspecified>。这种类型路径存在两种可能解释:

  • Exclusive 互斥的: 




    属于类别




    ,但




    不是




    的任何现有子类别




    中的一个。比如

  • Underfined 为定义的:




    属于类别




    ,但它是不是




    的某个子类是未知的。

针对以上两种不同的情景,我们要采取不同的策略。对于互斥的情景,我们为所有类别增加了一个 other 类别来补充可能存在




不是




中任何现有子类标签的情况。

比如“爱德华大夫”是医生人名,在原数据集中被标注为 /person,这是因为人名下面只有运动员、政客、娱乐明星等子类。这里“爱德华大夫”标签会被修改成  /person/other。对于未定义的情景,我们则不修改该样本在数据集中的标签。这样分开处理对结果会有显著影响。

模型

4.1 Mention Representation

▲ 论文 [9] 中的模型架构和表征方法

Mention 的表示用的是论文 [9] 中的 ELMo 编码方法。过往研究的做法是直接把 mention 的词向量相加取平均,而忽略了 mention 中不同词对整个标注结果存在不同的影响权重。

比方说上图中 “Department of Chemistry” 为其标注为组织机构类别,起作用的词是 “Department”。我们希望模型针对这类有信息的词做更多的侧重。因此 mention 的表征应该是用不同词嵌入基于注意力权重的加权平均。

本论文会先把序列通过 ELMo,获得每个词的动态词向量







。再把作为 mention 的部分取出来,乘上一个权重后做最大池化得到




接着,我们再拿这个




作为 Query,对 Context 做乘法注意力,得到每个词的注意力权重,再用它与原上下文的动态词向量







做加权求和得到上下文表征 c。最后我们把









接在一起得到








,丢给下游分类器解码。

注明:这里倾向于用 ELMo 而不是 BERT 的原因在用 ELMo 表现更好。ELMo 用到了丰富的字符级嵌入信息。这种低层嵌入对 FET 任务很有用。如果是涉及高级语义特征的任务,比如机器阅读理解任务,BERT 会更合适。

4.2 Type Scorer

一个样本被编码成








后会被喂给一个两层的带 tahn 非线性单元的前馈网络,来把 mention-context 嵌入映射到与类型嵌入一致的特征空间,再与类型嵌入做点乘就可以得到与每种类型的相似度。

4.3 Hierarchical Learning-to-Rank

我们引入一个自创的允许多标签多层级分类的排序学习损失。首先,我们计算每个类别的 hinge loss 来把正例类别排在负例类别前面。

这实际上是 ranking SVM 的损失。模型会学到正类样本






的得分要比负类样本






的得分高一个




。通常这个




会被设为




(类型嵌入可以线性尺度缩放),我们用 L2 正则来约束类型嵌入。

但这种方法考虑的是平展开的所有类别,而不是层次化的类别结构——所有类别被给予相同的对待而没有利用它们在类型树中的层次关系。直觉上看,粗粒度类别(更上级的类别)会比细粒度类别(更下级的类别)更容易确认。

比如,把一个实体分类为 /person 还是 /location 比把这个实体分类成 /artist 还是 /athlete 更容易。我们把这一直觉放在 L2R 框架中,便是模型每次只对同级粒度的实体类型进行排序。通过设置不同的 margins 参数来处理不同的粗细粒度级别。

其中,









指的是类别




的层级。比方说,lev (/location) = 1,以及 lev (/person/artist/singer) = 3。其中,正例类型




只会与其姊妹类别










比较。而设置边际的超参数














取决于类别




所在的层级。显而易见,

















类似于原版,




可以默认设置为




,我们用其相对比例来进行比较。为简化,论文做了超参数搜索实验,最终经验得出,按如下公式设置最为合适。其中




为类别体系的总层级数,




为当前类别的层级序数。比如体系有三个级别,那么每一层的边际大小就可以分别设置为



























我们要如何设置正例类别相对于实体表征的相关性大于负例样本的阈值呢?我们可以像论文 [9] 那样,把阈值设置为 0 便可。这样多标签分类问题就成了一系列二分类问题。

或者,我们像论文 [16] 中那样,调出一个能根据不同类型调整适应的动态阈值。这里我们提出一个简单的解决方案。

我们设定,排序器要学会“正例子类别的得分要大于它的父类别的得分,它的父类别得分又要大于它的负例姊妹类别的得分”。基于这个公式,解码的时候,给定一个父类别




,若其子类别






的得分高于父类别




的得分,则输出正例。

为此我们可以把 margin




拆分为两项:















。前者为正例类别和其父类别的间距,后者为其父类别和其姊妹负例类别的间距。












可以被用来调整精度和召回的权衡。越小的




正例类别和其父节点类别的间距也就越小,就越容易提升精度而降低召回。反之,增加




,则精度降低,召回增加。这一过程可以被可视化为下图。

最终,我们考虑了三种顺序的层级排序损失函数为:

4.4 Decode

解码的算法如下。我们已知模型预测的 mention 与 每种类别的相似度,以及预先设定好的类型树,求满足
















&#xff0c;













排序顺序的候选路径。首先我们把根类别 “ENTITY” 放入候选实体类型的队列中。循环里,每次出队一个父类型




,用 Type Scorer 计算其相关性得分




再把该类型下所有子类别输入给 Type Scorer 得到每个子类型的相关性,并筛选出相关性大于其父类型的子类型。把这些类型加入候选输出集合后,再入队,直到队列为空跳出循环。

4.5 Subtyping Relation Constraint

论文 [17] 用 ComplEx 方法来构建关系嵌入,针对子类别中的 anti-symmetric and transitive 的关系有很好的表现。ComplEx 通过加入正则损失来约束类型嵌入。它操作在复数空间。论文通过实空间和复空间的自然同构将类型嵌入映射到复杂空间(前半部分为实数,后半部分为虚数)。

我们为子类关系学习单类型嵌入。给定类型









,关系






可以用如下评分函数建模:

其中,




为元素相乘,









为其复数共轭。若存在






,则











。给定一个实例 (x, Y),对每个正例类型






,都有以下三种关系:

分别对应,一个子类为正例,其父类也一定为正例(父子关系),这个正例的父类不会是它任意的兄弟姊妹(姊妹关系),这个正例的父类也不会是它任意的叔伯姑姨(叔伯关系)。这些关系刚好可以转换为二分类的 SVM 的原始形式,于是这部分的损失有:

与论文 [11] 的二元交叉熵损失不同,这个 hinge loss 在实际实验中表现要更好,原因在我们用姊妹关系和叔伯关系来作为负例样本。这些负例类别会与其父类非常接近。因此训练时,模型能利用更具竞争力的负例样本来加强学习。

4.6 Training and Validation

最终的损失为如下式子。训练时用的优化器为 2019 年热度很高的 AdamW。超参数包括了



















用来调节边距阈值比例,




用来调节关系约束正则项的比例,




作为正则项用来约束模型参数大小,防止过拟合。最终结果为超参数搜索后的最佳结果。

Experiments

5.1 Datasets

5.2 Setup

论文使用了 ELMo 三层的全部输出,













。类型嵌入









,初始学习率为







,Batch Size 为 256。最终模型选择为超参数搜索到基于验证集上 F1 score 表现最好的组合。

5.3 Baselines

对于 AIDA 数据集而言,过往研究没用过,没法比。论文只比了 BBN,OntoNotes,以及 FIGER 上近几年来的 SOTA 结果。

5.4 Metrics

  • strict accuracy (Acc): 全部标签分类正确样本占所有样本比。

  • macro







    (MaF): 计算每个类别的准召,得到各自







    ,再求平均。

  • micro







    (MiF): 不区分类别,直接用总样本的准召计算







5.5 Results and Discussions

所有结果都基于互斥的和未定义的分开来比较。对于 AIDA 中有 187 个类别,但训练/验证集中只覆盖了 93 个类别,测试集中有 85 个类别,其中有 23 种类别是训练集、验证集中没见过的。

我们可以用零样本实体标注去处理这类问题。做法是用类型的名字和其描述去初始化类型嵌入。这类问题可以放在以后解决。

在 BBN,OntoNotes,和 FIGER 数据集上都显著好于去年的 SOTA。以上下浮动 0.5 个百分点为基准。实验表明,部分路径标签问题,用未定义的方式处理在 BBN 和 OntoNotes 数据集上都显著好于用互斥的方式去处理。

这个问题来源于数据标注阶段,取决于标注员如何理解互斥和未定义这两种类别。未来也是一个值得探究的方向。

消融实验表明,加入层次化的排序学习或类型关系约束在不同数据集上都有不同程度的提升。其中,层次化排序学习的加入带来的提升更显著。

错误分析集中在三个方面:

1. 对某些类型混淆。比如 /gpe/city 与 /location/region 混淆。这类错误是类型本身相似导致的,一般是可以容忍的。

2. 未完整的类型。比如 “Immigration and Customs Enforcement” 只标 /government agency ,却漏掉了标 /organization。这个跟数据集的分类体系构建有关。可以在类别体系构建上优化。

3. 只专注于部分 mention。“... suggested they were the work of Russian special forces assassins out to blacken the image of Kievs pro-Western authorities” 实例中,模型基于 “Russian special forces” 输出了 /org/government,但正确的标签是 /per/militarypersonnel,模型忽略了 “assassins” 这部分。这个问题与 mention 表征有关。日后引入 type-aware 类型表征或许能解决这类问题。

作者有话说

好的 idea 的产生来自于看待问题的角度。从新的视角将模型要学的任务规范化、简化,往往能得到新奇的效果。但思考如何实现它却是一个工程活。序列标注问题本质是一个结构化学习。

其难点在,它要为序列解码,搜索空间很大。为一个东西分十几个类别的任务肯定要比为一个序列的每个位置去分十几个类别要简单。感觉引入机器阅读理解框架的那篇 NER 论文 [19],实际也是用类似的方式把问题简化了。

序列标注改成了只需要在上下文中预测指定类型的实体边界 span,BERT 句嵌入接两个 MLP 分别预测开头和结尾,就能有很好的效果。更有趣的是,机器阅读理解中的很多奇技淫巧也可以用上。

参考文献

[1] Ren, X., He, W., Qu, M., Huang, L., Ji, H., & Han, J. (2016, November). AFET: Automatic Fine-Grained Entity Typing by Hierarchical Partial-Label Embedding. In Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing (pp. 1369-1378).
[2] Chen, B., Gu, X., Hu, Y., Tang, S., Hu, G., Zhuang, Y., & Ren, X. (2019). Improving distantly-supervised entity typing with compact latent space clustering. arXiv preprint arXiv:1904.06475.
[3] Xiao Ling and Daniel S. Weld. 2012. Fine-grained entity recognition. In Proceedings of the Twenty-Sixth AAAI Conference on Artificial Intelligence, July 22-26, 2012, Toronto, Ontario, Canada., pages 94–100.

[4] Dan Gillick, Nevena Lazic, Kuzman Ganchev, Jesse Kirchner, and David Huynh. 2014. Context-dependent fine-grained entity type tagging. CoRR, abs/1412.1820.

[5] Dani Yogatama, Daniel Gillick, and Nevena Lazic. 2015. Embedding methods for fine grained entity type classification. In Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing of the Asian Federation of Natural Language Processing, ACL 2015, July 26-31, 2015, Beijing, China, Volume 2: Short Papers, pages 291–296.

[6] Shikhar Murty, Patrick Verga, Luke Vilnis, Irena Radovanovic, and Andrew McCallum. 2018. Hierarchical losses and new resources for fine-grained entity typing and linking. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics, ACL 2018, Melbourne, Australia, July 15-20, 2018, Volume 1: Long Papers, pages 97–109.

[7] Sheng Zhang, Kevin Duh, and Benjamin Van Durme. 2018. Fine-grained entity typing through increased discourse context and adaptive classification thresholds. In Proceedings of the Seventh Joint Conference on Lexical and Computational Semantics, *SEM@NAACL-HLT 2018, New Orleans, Louisiana, USA, June 5-6, 2018, pages 173–179.

[8] Matthew E. Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. 2018. Deep contextualized word representations. In Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, NAACL-HLT 2018, New Orleans, Louisiana, USA, June 1-6, 2018, Volume 1 (Long Papers), pages 2227–2237.

[9] Ying Lin and Heng Ji. 2019. An attentive fine-grained entity typing model with latent type representation. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), pages 61986203, Hong Kong, China. Association for Computational Linguistics.

[10] Peng Xu and Denilson Barbosa. 2018. Neural fine-grained entity type classification with hierarchy-aware loss. In Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, NAACL-HLT 2018, New Orleans, Louisiana, USA, June 1-6, 2018, Volume 1 (Long Papers), pages 16–25.

[11] Murty, S., Verga, P., Vilnis, L., Radovanovic, I., & McCallum, A. (2018, July). Hierarchical losses and new resources for fine-grained entity typing and linking. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 97-109).

[12] Mohamed Amir Yosef, Sandro Bauer, Johannes Hoffart, Marc Spaniol, and Gerhard Weikum. 2012. HYENA: hierarchical type classification for entity names. In COLING 2012, 24th International Conference on Computational Linguistics, Proceedings of the Conference: Posters, 8-15 December 2012, Mumbai, India, pages 1361–1370.

[13] Choi, E., Levy, O., Choi, Y., & Zettlemoyer, L. (2018). Ultra-fine entity typing. arXiv preprint arXiv:1807.04905.

[14] Hailong Jin, Lei Hou, Juanzi Li, and Tiansi Dong. 2019. Fine-grained entity typing via hierarchical multi graph convolutional networks. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), pages 4968–4977, Hong Kong, China. Association for Computational Linguistics.

[15] Hongliang Dai, Donghong Du, Xin Li, and Yangqiu Song. 2019. Improving fine-grained entity typing with entity linking. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), pages6209–6214, HongKong, China.Association for Computational Linguistics.

[16] Sheng Zhang, Kevin Duh, and Benjamin Van Durme. 2018. Fine-grained entity typing through increased discourse context and adaptive classification thresholds. In Proceedings of the Seventh Joint Conference on Lexical and Computational Semantics, *SEM@NAACL-HLT 2018, New Orleans, Louisiana, USA, June 5-6, 2018, pages 173–179.

[17] ThéoTrouillon, JohannesWelbl, SebastianRiedel, ´ Eric Gaussier, and Guillaume Bouchard. 2016. Complex embeddings for simple link prediction. In Proceedings of the 33nd International Conference on Machine Learning, ICML 2016, New York City, NY, USA, June 19-24, 2016, pages 2071–2080.

[18] Ilya Loshchilov and Frank Hutter. 2019. Decoupled weight decay regularization. In 7th International Conference on Learning Representations, ICLR 2019, New Orleans, LA, USA, May 6-9, 2019.

[19] Li, X., Feng, J., Meng, Y., Han, Q., Wu, F., & Li, J. (2019). A Unified MRC Framework for Named Entity Recognition. arXiv preprint arXiv:1910.11476.

更多阅读

#投 稿 通 道#

 让你的论文被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。

???? 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

???? 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site

• 所有文章配图,请单独在附件中发送

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

ACL 2020 | 基于多级排序学习的层次化实体标注相关推荐

  1. EMNLP 2022 | RAPO: 基于自适应排序学习的双语词典归纳

    ©PaperWeekly 原创 · 作者 | 李朝卓 单位 | 微软 研究方向 | 图挖掘.自然语言处理 论文标题: RAPO: An Adaptive Ranking Paradigm for Bi ...

  2. ACL 2020 | 基于不同硬件搜索更好的Transformer结构

    论文标题: HAT: Hardware-Aware Transformers for Efficient Natural Language Processing 论文作者: Hanrui Wang ( ...

  3. ACL 2020 | 基于稠密段落检索的开放域问答系统技术

    ©PaperWeekly 原创 · 作者|蔡杰 学校|北京大学硕士生 研究方向|QA 论文标题:Dense Passage Retrieval for Open-Domain Question Ans ...

  4. 【代码+论文】基于自适应排序学习的个性化推荐方法

    题目: Adaptive Pointwise-Pairwise Learning-to-Rank for Content-based Personalized Recommendation 论文地址: ...

  5. ACL 2020 | 基于机器阅读理解框架的命名实体识别方法

    论文标题: A Unified MRC Framework for Named Entity Recognition 论文作者: Xiaoya Li, Jingrong Feng, Jiwei Li ...

  6. ACL 2020 | 多跳问答的基于对齐的无监督迭代解释检索方法

    ©PaperWeekly 原创 · 作者|舒意恒 学校|南京大学硕士生 研究方向|知识图谱 论文标题:Unsupervised Alignment-based Iterative Evidence R ...

  7. 【ML4CO论文精读】基于深度强化学习的组合优化问题研究进展(李凯文, 2020)

    基于深度强化学习的组合优化研究进展 本人研究方向(博士期间):多目标组合优化与决策研究--致力于多约束多目标多任务组合优化算法和多目标决策系统的研究与开发,以及多目标优化技术在一些工程实践中的应用. ...

  8. [排序学习】基于Pairwise和Listwise的排序学习

    [排序学习]基于Pairwise和Listwise的排序学习_飞桨PaddlePaddle的博客-CSDN博客导语PaddlePaddle提供了丰富的运算单元,帮助大家以模块化的方式构建起千变万化的深 ...

  9. 【ACL 2020】腾讯AI Lab解读三大前沿方向及入选的20篇论文

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来源:腾讯AI实验室 自然语言理解是腾讯 AI Lab 的主要研究方向之一,研究能力也 ...

最新文章

  1. 在疯狂的前端世界,为什么选择学习React
  2. 如果每个人都是一个粒子…… | 从物理学中寻找社会规律
  3. 全球及中国停车场建设产业十四五盈利模式与建设现状分析报告2022版
  4. 南京大学与东南大学计算机学院,南京被“严重低估”的1所大学,拥有8个A+学科,无奈校名太普通...
  5. [css] 如何隐藏没有静音、自动播放的音视频?
  6. 嵌入式实时操作系统Ucos3
  7. 任正非给华为代表处CFO定位:能力不够的赶快补
  8. 帆软finereport决策系统自定义登录界面
  9. 爬虫项目——BS练手(2)
  10. 10115 - Automatic Editing
  11. 网站静态化处理--总述(1)
  12. html选择时间区间控件,Html5添加用户选择一个日期时间范围的日期选择器插件教程...
  13. mysql五日均线代码_通达信均线源码,5日通达信均线公式源码
  14. 【原创】技术员 Ghost Win 10(x86/x64)企业版 201806
  15. HU6285A升压输出12V,电流1A芯片
  16. 使用telnet和ssh登录linux
  17. HTML前端页面颜色的四种方法,色号表
  18. 腾讯云Ubuntu18.04配置OpenPCDet深度学习环境
  19. 强化学习——Proximal Policy Optimization Algorithms
  20. 工程管理系统企业工程管理系统简介

热门文章

  1. 汇编语言--微机CPU的指令系统(五)(字符串操作指令)
  2. 反素数(luogu 1463)
  3. CiscoIOUKeygen
  4. 操作系统学习(五) 、代码段和数据段描述符
  5. urllib基本使用-Handler和自定义的opener()
  6. HDU 2516 取石子游戏 斐波纳契博弈
  7. battlesvr结构
  8. MyEclipse 10 之下Web Service 的创建和实现
  9. Nutch2.1+mysql+solr3.6.1+中文网站抓取
  10. 分享31个非常有用的 HTML5 教程