精华内容
下载资源
问答
  • js 数组扁平化处理flat

    2020-11-18 21:58:38
    js 数组扁平化处理flat1、直接调用flat2、正则表达式匹配3、递归4、数组累加器reduce5、展开运算符...和while循环 1、直接调用flat flat (arr) { return arr.flat(Infinity) }, 2、正则表达式匹配 flat1 (arr) ...

    1、直接调用flat

        flat (arr) {
          return arr.flat(Infinity)
        },
    

    2、正则表达式匹配

        flat1 (arr) {
          const str = JSON.stringify(arr)
          const reg = /(\[\]))/g
          return str.replace(reg, '').split(',')
        },
    

    3、递归

        flat2 (arr) {
          const result = []
          const fn = function(ary) {
            ary.forEach(item => {
              if (item instanceof Array) {
              // if (Array.isArray(item)) {
                fn(item)
              } else {
                result.push(item)
              }
            })
          }
          fn(arr)
          return result
        }
    

    4、数组累加器reduce

        flat3 (arr) {
          return arr.reduce((result, item) => {
            return result.concat(Array.isArray(item) ? this.flat3(item) : item)
          }, [])
        }
    

    5、展开运算符…和while循环

        flat4 (arr) {
          while (arr.some(Array.isArray)) {
            arr = [].concat(...arr)
          }
          return arr
        }
    
    展开全文
  • 论文阅读《FLAT:Chinese NER Using Flat-Lattice Transformer》

    千次阅读 多人点赞 2020-10-19 10:17:55
    FLAT: Chinese NER Using Flat-Lattice Transformer》阅读有感,希望能帮到有缘人

    LawsonAbs的认知与思考,还请各位读者批判阅读。

    总结

    • flat的源码你确定你能看懂??各种调库的操作对小白也太不友好了吧~
    • 持续更新~


    本博客分成两部分,第一部分(part1)主要描述了一下复现flat可以参考的文档,数据集等;第二部分(part2)主要讲了论文的核心内容


    part 1. 预热知识

    1 可参考文档

    本文介绍一种FLAT方法用于做中文NER操作。

    • 论文地址
    • 论文的Github:https://github.com/LeeSureman/Flat-Lattice-Transformer
      大家需要多根据issues 发现问题和解决问题,原作者对大多数问题进行了比较完整的回答。很多时候,不是因为解决不了问题,而是因为GitHub用的不熟悉。
    • 作者讲演视频:https://www.bilibili.com/video/BV1Z54y1y766?from=search&seid=16334174024820448071

    2 数据集

    • WeiboNER:
      flat这份工作中,作者对原微博数据集进行了稍微的修改,然后得到了下面这个网盘中的数据集。具体的修改方式我清楚。
      链接:https://pan.baidu.com/s/1SxsvSY1L446hb4zToRb1sA 提取码:7v5y
    • 其它数据集可以在链接 https://github.com/RowitZou/LGN 中获取具体的对应数据集(如下图所示)。
      在这里插入图片描述

    part 2. 论文内容

    1.任务

    中文NER

    1.1中文NER和英文NER的区别

    1.1.1 英文NER

    英文NER 是基于单词(在我心中,其实这也是字哇),但为什么英文NER的任务就较轻松于中文NER 呢?是因为英文单词多种组合的情况很少,上下词确定时,其含义就比较唯一固定了。

    1.1.2 中文NER

    不同于英文NER(英文NER是以单词为单位),中文NER通常以字符为单位进行序列标注建模。但是我觉得中文NER较英文NER复杂的根本原因有两个,分别是:
    第一:英文中的一个单词就约等于中文某个词组的效果。比如说:beautiful就相当于中文中的漂亮的,英文一个单词就可以解决,但是中文却需要使用三个字符才可以表示。

    第二:中文NER中,按照字为单位后,其后续过程中遇到的组合种类更多,具有的不确定性更大。比如:重庆人和药店就可以理解成如下两种方式:

    • 重庆人药店
    • 重庆人和药店

    而且这两种拆分方式没有固定的答案,需要通过上下含义才能得到。

    1.2为什么需要这个方法?

    基于分词的方法导致的误差使得中文NER只能基于字符的方法来做。但是将整句话分词字,就无法利用词的信息了。重庆人和药店这句话,将其作为单个字符来训练模型时,就不能利用上重庆人和药店这两个词语。我们都知道,在深度学习中,该利用上的数据都应该使用,从而使得模型具备更好的拟合效果。于是便提出了基于词汇增强方式的FLAT 算法诞生了。

    2.相关工作

    2.1 Lattice LSTM

    在这里插入图片描述
    这个工作我目前尚不是很清楚。

    3.主要思想

    文章的contribution就只有一个:
    使用一种位置编码方式能够还原出 flat lattice 的信息,从而能够可以更好的得到训练效果。

    3.1 什么是span?

    在这里插入图片描述上面图中的每个绿色框框就是一个span。例如:人和药店等都是span。

    3.2 什么是flat lattice

    lattice 本意为栅栏,栅格。下图就是一个形象的lattice结构:
    在这里插入图片描述

    3.3 将 lattice 式的DAG 转为flat lattice时,如何保持原序列结构?

    在NER 问题中,位置信息是很重要的。flat的作者在transformer 的positional embedding的设计下,想到了能否使用一种各个span的相对编码方式从而保证原序列的结构信息?
    在这里插入图片描述

    • 可以看到整个图被压平了,所以称之为FLAT

    3.4 如何利用flat之后的信息?

    lattice 给我们flaten了,但是该怎么利用这些信息呢?有两个处理:

    • 将序列分成了head 和 tail 两种
    • 利用这个head 和 tail 信息做一个相对位置操作。也就是文中说的:

    To encode the interactions among spans, we propose the relative position encoding of spans.For two spans xi and xj in the lattice, there are three kinds of relations between them: intersection, inclusion and separation, determined by their heads and tails.

    也就得到了如下的信息:
    d i j ( h h ) = h e a d [ i ] − h e a d [ j ] d i j ( h t ) = h e a d [ i ] − t a i l [ j ] d i j ( t h ) = t a i l [ i ] − h e a d [ j ] d i j ( t t ) = t a i l [ i ] − t a i l [ j ] d_{ij}^{(hh)} = head[i] - head[j] \\ d_{ij}^{(ht)} = head[i] - tail[j]\\ d_{ij}^{(th)} = tail[i] - head[j] \\ d_{ij}^{(tt)} = tail[i] - tail[j] dij(hh)=head[i]head[j]dij(ht)=head[i]tail[j]dij(th)=tail[i]head[j]dij(tt)=tail[i]tail[j]
    然后根据上面的这些数据,可以得到一个相对位置编码数据。
    在这里插入图片描述
    这里的 W r W_r Wr是可学习参数,其它的参数与attention中原有的参数很像~ 【我不是很清楚

    4.源码阅读

    4.1 可以参考我之前写的文章如何读源码?

    4.2 如何跑通这份代码?

    跑通这份代码可以用WeiboNER数据集(也就是原作者的数据集。)示例效果还是很贴合论文中的数据的,(水分还是比较少哇~)。但是下面我的讲解示例是用的是自己的一份数据集(TianchiNER)。
    运行代码的时候需要注意配置fitlog,同时最好在Linux机器上跑(是因为有小伙伴在windows上跑的满是bug~)。

    4.3 数据集

    关于原作者的数据集,我在原作者的GitHub中的issues中说的很清楚了,这里再补充一下吧。

    • 微博有份原始数据集是叫 WeiboNER ,可以在链接https://github.com/hltcoe/golden-horse/tree/master/data ,但是作者把这个数据集做了一定的修改,以便方便代码使用,修改后的文件如果需要可以加我微信(wxID就是csdn昵称),我私发给大家(网盘操作稍微麻烦,就不搞了~)
    • 其它的数据集像 onetonotes,msra 我就不提供了,对于学习这份代码应该没有太大的影响 ~

    4.1 宏观架构

    先看一下宏观的过程,也就是对应论文中的那个花花绿绿的图:
    在这里插入图片描述
    下图中的红框的1,2,3,4 就代表上述的Embedding,slef-attention,Add & Norm,FFN,Add & Norm,Linear &CRF 中的一个或某几个步骤。下面仔细讲讲:

    • 1代表的就是将embedding ,位置信息交由attention 处理
      其中的self-Attention, Add&Norm , FFN, Add&Norm 等操作都被封装到encoder 中了,所以只需要使用一个encoder()就行了。
    • 2代表的是将attention处理的结果放到最后一层的Linear 中操作
    • 3.代表的就是上步的结果做CRF 操作。

    在这里插入图片描述其中embedding 是由 embed_char 和 embed_lex 两者合并得到的。
    在这里插入图片描述

    4.2 微观调试

    这一部分主要是仔细的查看整个过程变量的变化,以及处理的细节问题。

    4.2.1 数据准备

    为了方便调试,这里就用了几个字作为数据用于训练和测试。如下数据作为本次调试中的数据。
    在这里插入图片描述

    4.3 类的使用

    在这个代码中,数据集的加载并非是pytorch 中的dataset 作为数据集的封装,而是用的fastNLP中自带的类。主要涉及到DataSet, Vocabulary,Embedding 三个部分。其功能分别是:封装数据集;词典中词到下标的映射;将词映射成embedding。

    4.4 数据生成的概括

    主要的加载过程如下:
    在这里插入图片描述- load_tianchi_ner() 方法是用于加载我自己的一个数据集,返回值是datasets,vocab, embeddings

    • load_yangjie_rich_pretrain_word_list() 方法是用于加载词典信息,这个涉及到后面的datasets中lexicon的使用
    • equip_chinese_ner_with_lexicon() 方法是用于将词典信息写入datasets中

    4.5 数据生成的详细过程

    下面讲一下数据生成的详细过程:
    chars:是原生的文本
    target:就是序列标注的结果,也就是label。但是通常会将其写成target
    bigram: 这个是文本的连续的分割结果。分割方法是连续两两分割,比如对于上面的dev数据集,得到的 bigram 就是下面这样:

    在这里插入图片描述
    字典中存在的词语有:
    在这里插入图片描述
    [0,1,'本品'] ,前两个数字代表起止下标,后面代表匹配的词语。

    下面这个就是遍历每一个 datasets,然后交由concat
    在这里插入图片描述

    concat() 的功能就是把找到的词语拼接到之前的话中,得到ins[‘lattice’],结果如下:
    在这里插入图片描述

    在这里插入图片描述
    各个字段的含义是什么?
    seq_len:语句长度
    lexicons:加入的词典信息
    raw_chars: 源char
    lex_num:表示raw char匹配词典中词的个数
    lex_s: 各个匹配词中匹配的起始下标
    lex_e: 各个匹配词中匹配的终止下标
    lattice:源字符串匹配词典添加在源字符串之后得到的结果

    在经过下面三个 apply操作,
    在这里插入图片描述数据就变成如下的样子了:
    在这里插入图片描述
    datasets['train']['lattice'] 可以得到 lattice_vocab ,其值如下:
    在这里插入图片描述其长度为:
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    可以看到datasets 这个变量的值的变化。变化的原则是:把datasets中每个汉字改为对应vocab中的值的下标Vocabulary这个类的作用就是实现字到下标的转换。(详细知识可以在Vocabulary的源码中看到)

    至此datasets这个变量值的设置就完成了,接下来就需要操作 vocabs 这个变量了。

    StaticEmbedding 这个实现自 TokenEmbedding,但是TokenEmbedding实现自nn.Module,所以前二者都有 forward()方法用于将一个tensor处理。这里以 StaticEmbedding 为例,介绍其forward的方法:
    在这里插入图片描述
    其方法中做了三件事儿:

    • drop_word
    • 得到words 的 embedding。这个embedding是 pytorch 自身模块中的 nn.Embedding的一个实例。

    经过所有的处理之后,datasets 的值形式如下:
    在这里插入图片描述传入模型中训练的数据就是 datasets[‘train’] ,如下:
    在这里插入图片描述

    真正训练时传入 forward 的是batch_x,
    在这里插入图片描述
    其值如下:
    在这里插入图片描述

    那么 lexicon 是怎么生成的呢?在add_lattice.py 下面的代码中:
    在这里插入图片描述
    其中get_skip_path() 如下:
    在这里插入图片描述
    其中chars是datasets[‘train’]中的chars值,也就是原生的字符串。w_trie是通过 词典得到的一个word_list,然后将其放入到了一个Trie树中。 get_lexicon()方法是用一个二重循环的方法去寻找一个匹配的result。得到的结果就是上面注释的这种,也如下面这个图所示:
    在这里插入图片描述

    在这里插入图片描述

    难点

    • fastNLP,fitlog 等开源的学习
    • 源码阅读过程遇到的问题,解决问题的过程?

    参考文章

    • https://mp.weixin.qq.com/s/5-B4IRQ3Y_sTdryu4dNuNQ
    展开全文
  • flatfile 乱码This article was created in partnership with Flatfile.io. Thank you for supporting the partners who make SitePoint possible. Looking to partner with SitePoint? Get more information here. ...

    flatfile 乱码

    This article was created in partnership with Flatfile.io. Thank you for supporting the partners who make SitePoint possible. Looking to partner with SitePoint? Get more information here.

    本文是与Flatfile.io合作创建的。 感谢您支持使SitePoint成为可能的合作伙伴。 想要与SitePoint合作? 在此处获取更多信息

    Close your eyes and imagine what it is like to import data into your application. Now open them.

    闭上眼睛,想象一下将数据导入应用程序的感觉。 现在打开它们。

    Does it look something like this?

    它看起来像这样吗?

    alt

    The typical user experience when importing CSV data to an application.

    将CSV数据导入应用程序时的典型用户体验。

    When creating a new or improving an existing product, building useful features is, of course, priority number one. What many forget, though, is that in innovation is wasted when the product experience is not intuitive. When crafting the customer journey, a product manager must pay particular attention to the customer's first steps.

    当创建新产品或改进现有产品时,构建有用的功能当然是第一要务。 但是,许多人忘记的是,当产品体验不直观时,创新就白白浪费了。 在设计客户旅程时,产品经理必须特别注意客户的第一步。

    In many products, the data importing process is one of those early steps. Unfortunately, it is often a major pain point for the customer. This isn't all the PM's fault; we've come to expect data import to be a lousy software experience. So we keep sending customers to complex templates, long support articles, and cryptic error screens, often within the first few minutes of their journey.

    在许多产品中,数据导入过程是这些早期步骤之一。 不幸的是,这通常是客户的主要痛点。 这不是所有PM的错。 我们已经期望数据导入是一种糟糕的软件体验。 因此,我们通常会在客户旅行的最初几分钟内,将他们吸引到复杂的模板,长期支持文章以及错误的错误屏幕。

    Not anymore, though. Flatfile offers a simple solution: an intuitive, plug-and-play data importer.

    不过,现在不行了。 Flatfile提供了一个简单的解决方案:直观,即插即用的数据导入器。

    alt

    Flatfile enables user-facing CSV imports into apps using Angular, React, Vue, Ruby, PHP, and more.

    Flatfile支持使用Angular,React,Vue,Ruby,PHP等将面向用户的CSV导入应用程序。

    什么是Flatfile? (What Is Flatfile?)

    alt

    Provide a world-class CSV import experience for your users without pre-built CSV templates, or intimidating documentation.

    无需预先构建的CSV模板或令人生畏的文档,即可为您的用户提供世界一流的CSV导入体验。

    Flatfile offers software companies an alternative to building their own data importers.

    Flatfile为软件公司提供了构建自己的数据导入器的替代方法。

    For users, that means no more jumping through hoops to upload their data. Now, they can use Flatfile's platform instead for a seamless, smooth, and supportive data importing experience. Flatfile is designed to support users of any technical skill level: firefighters, real estate agents, and data analysts all leverage the Flatfile Importer.

    对于用户而言,这意味着不再需要跳动上传数据。 现在,他们可以使用Flatfile的平台来获得无缝,流畅和支持性的数据导入体验。 Flatfile旨在支持任何技术水平的用户:消防员,房地产经纪人和数据分析人员都可以利用Flatfile Importer。

    For PMs, that means no more worrying about handling the UX and engineering complexities of data import. Instead of planning a whole sprint – if not several – on building a custom solution, PMs can hand their engineering team Flatfile's documentation and get an elegant, crafted experience in a day. Put simply, Flatlife takes the pain out of building and maintaining a data importer, and lets product teams focus on innovative, differentiating features.

    对于PM,这意味着您不必担心处理用户体验和数据导入的工程复杂性。 PM无需在构建自定义解决方案时计划整个冲刺(如果不是几个冲刺),而是可以交给工程团队Flatfile的文档,并在一天内获得优雅,精心制作的体验。 简而言之,Flatlife减轻了构建和维护数据导入器的麻烦,并使产品团队专注于创新的差异化功能。

    Flatfile如何工作? (How Does Flatfile Work?)

    alt

    Flatfile allows imported CSV files to be mapped to specific data models seamlessly along with intuitive data validation.

    Flatfile允许导入的CSV文件与直观的数据验证无缝地映射到特定的数据模型。

    Flatlife lets users upload their spreadsheets with just a few clicks. They can also manually enter their data.

    Flatlife使用户只需单击几下即可上传其电子表格。 他们还可以手动输入数据。

    Once the data has been uploaded, Flatfile asks the user a few simple questions about how their spreadsheet matches to your product, ensuring that the data is aligned with the correct field (e.g. first name, last name, email address, etc.).

    数据上传后,Flatfile会向用户询问有关其电子表格如何与您的产品匹配的一些简单问题,以确保数据与正确的字段(例如,名字,姓氏,电子邮件地址等)对齐。

    The final step is data repair, where the user can review and update their import to correct any data errors. These errors appear based on validations you can pre-define, ensuring the tidiness of data before it ever hits your product database.

    最后一步是数据修复,用户可以在其中查看和更新​​其导入以更正任何数据错误。 这些错误是根据您可以预先定义的验证显示的,从而确保数据在到达您的产品数据库之前保持整齐。

    Once these steps are complete, the user is back in your application, and you have a clean, structured set of JSON data that's easy to pull into any database.

    完成这些步骤后,用户将返回您的应用程序,并且您将获得一组干净的,结构化的JSON数据,可以轻松将其提取到任何数据库中。

    Meghann, Product Lead at Digsy.ai says: "When we were looking for solutions, we knew we could either build it ourselves or try to find something. Our product lead at the time heard of Flatfile. He presented it to the team, and ultimately we decided to implement Flatfile. We didn't see anything else on the market."

    Digsy.ai产品负责人Meghann说 :“当我们寻找解决方案时,我们知道我们可以自己构建它或尝试寻找一些东西。当时我们的产品负责人听说过Flatfile。他向团队介绍了该产品,最终,我们决定实施Flatfile。我们在市场上没有看到其他产品。”

    alt

    Your world-class product deserves a world-class data import experience.

    您的世界一流产品值得世界一流的数据导入体验。

    为什么要选择Flatfile? (Why Should You Choose Flatfile?)

    When a user is importing data to your product, they want to use it and they want to see its value. Don't let them get hung up on spreadsheet templates and intimidating documentation. Flatfile takes most organizations less than a week to implement, and it gives users a simple, smooth, and delightful data import experience. Get started with a 30 day free trial and see how Flatfile.io can improve your customer journey.

    用户将数据导入您的产品时,他们想使用它,并且想看到它的价值。 不要让他们挂在电子表格模板和令人生畏的文档上。 Flatfile可使大多数组织花费不到一周的时间来实施,并且为用户提供了简单,流畅和令人愉悦的数据导入体验。 开始进行30天的免费试用,并查看Flatfile.io如何改善您的客户体验

    alt

    Visit Flatfile.io.

    访问Flatfile.io

    翻译自: https://www.sitepoint.com/customer-journey-flatfile-data-importer/

    flatfile 乱码

    展开全文
  • 代码地址:https://github.com/LeeSureman/Flat-Lattice-Transformer 文章目录背景介绍模型设计将格子转换为平坦结构对于区间的相关位置编码实验结果 Character-word lattice结构对于解决中文NER问题是有效的,然而...

    作者:刘锁阵
    单位:燕山大学


    论文地址:https://arxiv.org/pdf/2004.11795.pdf
    代码地址:https://github.com/LeeSureman/Flat-Lattice-Transformer


    Character-word lattice结构对于解决中文NER问题是有效的,然而由于格子结构是复杂的和动态的,大多数现在的基于格子的模型很难完全利用GPU的并行计算能力,并且通常有着比较低的推断速度

    在本篇paper中,作者提出了FLAT:Flat-Lattice Transformer for Chinese NER,将格子结构转换为由位置区间组成的平坦结构。 每个区间对应一个字符或潜在单词及其在原始格中的位置。通过使用Transformer和特定的位置编码方案,Flat可以充分利用格子信息,并具有出色的并行化能力

    背景介绍

    Figure 1
    使用Lattice的两种方式:

    • 一种是设计一个模型与格子输入兼容,例如Lattice LSTM和LR-CNN。在Lattice LSTM中,如Figure 1(b)所示,采用了一个额外的单词单元对潜在单词进行编码,并使用注意机制在每个位置融合变量节点。LR-CNN使用CNN来在不同的窗口编码可能的单词。然而,RNN和CNN都很难构建长距离依赖模型。由于动态的lattice 结构,这些方法不能完全利用GPU的并行计算能力。
    • 另一种方法是将格子转换为图,并使用GNN来进行编码,例如LGN和CGN。

    在本篇论文中,作者提出了Flat Lattice Tranformer。

    • Transformer采用了全连接的注意力机制来对文本序列中的长距离信息进行建模,为了记录位置信息,引入了文本序列中每个token的位置表示。
    • 并针对lattice结构设计了一个位置编码方案。

    模型设计

    在这里插入图片描述

    将格子转换为平坦结构

    在根据词典从文本中得到格子之后,将其展平。如Figure 1(c)所示,Flat-Lattice被定义为区间的集合,一个区间对应一个token,一个head和一个tail。

    对于区间的相关位置编码

    对于在格子中的两个区间 x i x_i xi x j x_j xj,他们有三种关系:

    • 交叉(相交)
    • 包含
    • 分离

    使用dense vector来对他们的关系进行建模。因为区间包含头部和尾部信息,所以不仅可以使用它表示两个token的关系,而且还能够表示一些更详细的信息,例如一个字符和一个单词之间的距离。
    假定 h e a d [ i ] head[i] head[i] t a i l [ i ] tail[i] tail[i]表示区间 x i x_i xi的头部和尾部位置。显然,可以得到4种相关距离:

    • d i j h h = h e a d [ i ] − h e a d [ j ] d_{ij}^{hh} = head[i] - head[j] dijhh=head[i]head[j]
    • d i j h t = h e a d [ i ] − t a i l [ j ] d_{ij}^{ht} = head[i]-tail[j] dijht=head[i]tail[j]
    • d i j t h = t a i l [ i ] − h e a d [ j ] d_{ij}^{th} = tail[i] - head[j] dijth=tail[i]head[j]
    • d i j t t = t a i l [ i ] − t a i l [ j ] d_{ij}^{tt} = tail[i] - tail[j] dijtt=tail[i]tail[j]

    相关位置编码:
    R i j = R e L U ( W r ( P d i j h h ⊕ P d i j t h ⊕ P d i j h t ⊕ P d i j t t ) ) R_{ij} = ReLU(W_r(P_{d_{ij}^{hh}}\oplus P_{d_{ij}^{th}}\oplus P_{d_{ij}^{ht}}\oplus P_{d_{ij}^{tt}})) Rij=ReLU(Wr(PdijhhPdijthPdijhtPdijtt))

    计算 p d p_d pd(Vaswani et al. (2017))
    P d 2 k = s i n ( d / 1000 0 2 k / d m o d e l ) P_d^{2k} = sin(d/10000^{2k/d_{model}}) Pd2k=sin(d/100002k/dmodel)
    P d 2 k + 1 = c o s ( d / 1000 0 2 k / d m o d e l ) P_d^{2k+1} = cos(d/10000^{2k/d_{model}}) Pd2k+1=cos(d/100002k/dmodel)

    然后通过一个注意力机制的变体(Dai et al., 2019))来使用相关位置编码:
    A i , j ∗ = W q T E x i T E x j W k , E + W q T E x i T R i j W k , R + u T E x j W k , E + v T R i , j W k , R A_{i,j}^{*} = W_q^T E_{x_i}^T E_{x_j} W_{k,E} + W_q^T E_{x_i}^T R_{ij}W_{k,R} + u^T E_{x_j}W_{k,E} + v^T R_{i,j}W_{k,R} Ai,j=WqTExiTExjWk,E+WqTExiTRijWk,R+uTExjWk,E+vTRi,jWk,R

    接下来的计算与vanilla Transformer相同。
    在FLAT之后,只将字符表示传入输出层,再之后是CRF。

    实验结果和分析

    作者使用了四个中文数据集来用于评估模型:

    1. Onenotes 4.0(Weischedel and Consortium, 2013)
    2. MSRA (Levow, 2006)
    3. Resume(Zhang and Yang, 2018)
    4. Weibo (Peng and Dredze, 2015; He and Sun, 2016)

    数据集展示:
    在这里插入图片描述
    结果对比:
    Table 2
    注意力机制优于Lattice-LSTM的两个原因:

    • 所有的字符能够直接与它匹配的单词交互
    • 长距离依赖能够被完全建模

    计算效率对比:
    在这里插入图片描述
    与BERT的兼容:
    在这里插入图片描述
    可以看到,对于大数据集例如onenotes和MSRA,FLAT+BERT能够相比BERT有不错的提升。对于小数据集Resume和Weibo,提升效果比较小。

    结论

    在本篇论文中,作者引入了一个flat-lattice Transformer来结合中文NER的词典信息。

    模型的核心是将lattice结构转换为区间集合,并引入了特定位置编码。

    实验结果表明FLAT模型在效果和性能上都明显优于其它基于词典的模型。

    展开全文
  • 贪心匹配与非贪心匹配 Python的正则表达式默认是贪心的,即在有二义的情况下,它会匹配最长的字符串;非贪心匹配算法则是尽可能匹配最短的字符串,也就是在花括号的后面加上一个问号。 hero = re.compile(r'Iron...
  • 结合TENER和Lattice LSTM的改进工作:改LSTM为Transformer,这样匹配词就可以通过在Transformer的Self-Attention的时候引入,并通过调整position encoding用以计算Attention时作单词对齐 模型架构:单层...
  • FLAT: Chinese NER Using Flat-Lattice Transformer系列文章目录前言一、基础概念二、 前言 本论文相关工作被ACL2020会议接收。 近年来,将词典信息加入模型被证明对中文命名实体识别任务很有效。但是结合...
  • 文章目录1 引言2 背景3 模型3.1 转换格子为扁平结构3.2 范围的相对位置编码4 实验4.1 实验设置4.2 整体性能4.3 全连接结构的优势4.4 FLAT效率4.5 FLAT的提升4.6 BERT兼容性 【论文链接】:FLAT: Chinese NER Using ...
  • flat device tree

    千次阅读 2015-10-23 18:07:47
     Linux设备树翻译计划  2014-03-02 22:15:23| 分类: Embedded System | 标签:设备树 device_tree linux  |举报 |字号大中小 订阅   ...用易信 “扫一
  • flat file date datatype

    2012-05-08 16:21:28
    当SOURCE是 flat file,且有date 数据,而TARGET oracle table 是date datype,要在transformation中用to_date(xxxx,'xx--xx--xxxx'),日期f...
  • mdesc的匹配过程

    2017-03-10 11:44:38
    在setup_arch中调用setup_machine_fdt来匹配最合适的mdesc mdesc = setup_machine_fdt(__atags_pointer);...其中调用of_flat_dt_match_machine--->of_flat_dt_match_machine 来匹配 所有的mdesc都是用 DT_MACHIE
  • 根据“MIMO 系统简介”(MathWorks) 开发。 请注意,Alamouti 2x1 的情况与理论二阶分集完全匹配,但是,由于额外的阵列增益,Alamouti 2x2 具有更好的 BER 性能。
  • 花了一点时间将之前的文本分类改成现在的QA匹配,实际上思路还是很简单的,原来的x 输入换成xq,xa,label不变。 匹配层我用的是difference+ absolute value的操作。它计算两个句子,q,a相似程度。非常简单。 ...
  • nginx 路由匹配规则

    2019-12-16 11:47:08
    首先匹配=(精确匹配),其次匹配^~(非正则),其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。 注意: = 精准匹配命中时,停止location 动作,直接走...
  • 平面拼图项目。 版权所有 (c) 2014 ColabearStudio 保留所有权利。 使用 Unity 引擎构建的简单 3 场比赛基本游戏... 当匹配成功时,将块的状态更改为匹配并等待。 如果每一帧都有一个匹配的块,则该块被移除并排序。
  • 这是Folio Flat File数据库的完整流式处理词法分析器,解析器和编译器。 输出包括SLX,XML,HTML和Lucene。 基于流的(不是基于DOM的)-可以以非常低的RAM使用率快速处理千兆字节。 第一步是无损转换为SLX格式。 ...
  • 文 |JayLou娄杰编 | YY来自 | 夕小瑶的卖萌屋近年来,引入词汇信息逐渐成为提升中文NER指标的重要手段。ACL2020中一篇来自复旦大学邱锡鹏老师团队的 FLAT: Chi...
  • 编辑丨3D视觉开发者社区高精度的实时立体匹配网络是时下研究的一个热点,它在自动驾驶、机器人导航和增强现实等领域中有着广泛的应用。虽然近年来对立体匹配网络的研究已经取得了显著的成果,但要同时...
  • FLAT:中文NER屠榜之作!复旦大学邱锡鹏团队出品 道翰天琼认知智能机器人平台API接口大脑为您揭秘。近年来,引入词汇信息逐渐成为提升中文NER指标的重要手段。ACL2020中一篇来自复旦大学邱锡鹏老师团队的 FLAT: ...
  • 深度文本匹配总结

    千次阅读 2018-09-06 20:04:51
    深度文本匹配总结  有幸参加“拍拍贷”举办的“第三届魔镜杯大赛”,此次比赛是基于其职能客服聊天机器人的数据,计算“提出问题”和“知识库问题”的相似度,进而定位问题给出答案,因此本次比赛需要关注“文本...
  • ACL2020中一篇来自复旦大学邱锡鹏老师团队的 FLAT: Chinese NER Using Flat-Lattice Transformer 刷新了中文NER任务的新SOTA。 如上图所示,在MSRA-NER任务中,FLAT+BERT登顶榜首;而单独的FLAT(1层TransFormer...
  • 而如今,提升中文NER指标的主要方式是引入词汇信息,JayJay在之前的综述《中文NER的正确打开方式: 词汇增强方法总结》一文中就详细介绍了中文NER的一些主流方法,而SOTA属于FLAT[1]。 最近arxiv上的一篇paper《Lex-...
  • 接下来解释如何利用匹配到的词汇与模型进行融合的代码,首先利用匹配的词汇转
  • 360-flat-clean-buttons 超过 360 个纯 CSS3 按钮的集合 描述 这些按钮是完全可定制的,只需使用它们的类即可。 顾名思义,有超过 360 种可能性(不考虑颜色变化)。 它们的效果不使用图像和 js,它们是“纯 CSS”...
  • if one of the patches is flat, then the correlation will be zero independently of the content of the second patch. In contrast, the  “affine” similarity measure  defined below can be non zero ...
  • 这几篇文章开始写图像特征和匹配相关的内容。 参考书籍:Computer Vision: Algorithms and Applications,Richard Szeliski 特征点检测和匹配是计算机视觉应用的重要组成部分,以解决寻找一张图像上的点,在另一张...
  • It is two major committed steps of interfering measurement that Interferometric SAR image registration and removal of the phase of the flat earth. Some methods about data preprocessing, control points...
  • 模式匹配与正则表达式 # 正则表达式的模块 re(Regex) # 方法: # 1.用import re 导入正则表达式模块。 # 2.用re.compile()函数创建一个Regex对象。 # 3.想Regex对象的search()方法传入想查找的字符串,它返回一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,432
精华内容 4,572
关键字:

flat匹配