Tokenizer

Transformers 多语言模型 | 十一

梦想的初衷 提交于 2020-05-01 14:21:17
作者|huggingface 编译|VK 来源|Github 该库中可用的大多数模型都是单语言模型(英语,中文和德语)。有一些多语言模型可用,并且与单语言模型具有不同的机制。本页详细介绍了这些模型的用法。 当前支持多种语言的两个模型是BERT和XLM。 XLM XLM共有10个不同的checkpoints,其中只有一个是单语言的。剩下的9个模型checkpoints可以分为两类:使用语言嵌入的checkpoints和不使用语言嵌入的checkpoints XLM和语言嵌入 本节涉及以下checkpoints: xlm-mlm-ende-1024 (掩码语言建模,英语-德语) xlm-mlm-enfr-1024 (掩码语言建模,英语-法语) xlm-mlm-enro-1024 (掩码语言建模,英语-罗马尼亚语) xlm-mlm-xnli15-1024 (掩码语言建模,XNLI语言) xlm-mlm-tlm-xnli15-1024 (掩码语言建模+翻译,XNLI语言) xlm-clm-enfr-1024 (因果语言建模,英语-法语) xlm-clm-ende-1024 (因果语言建模,英语-德语) 这些checkpoints需要语言嵌入,这些语言嵌入将指定推理时使用的语言。这些语言嵌入表示为张量,其形状与传递给模型的输入idS相同。这些张量中的值取决于所使用的语言

【原创】elasticsearch入门

我与影子孤独终老i 提交于 2020-04-22 02:16:02
示例 示例一: 示例二: 示例三: 示例四: ES介绍 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。 安装过程 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz tar -xvzf elasticsearch-6.4.0.tar.gz cd elasticsearch-6.4.0/bin ./elasticsearch -d 修改配置文件 # ---------------------------------- Cluster ----------------------------------- # # Use a descriptive name for your cluster: # cluster.name: my-application # ---------------------------------- Network ----------------------------------- # # Set the bind address

#19 re&jieba模块

旧街凉风 提交于 2020-04-17 20:13:16
前言 在Python中,需要对字符串进行大量的操作,有时需要从一个字符串中提取到特定的信息,用切片肯定是不行的,所有这一节记录两个强大的文本处理模块,一个是正则表达式re模块,另一个是中文处理模块jieba,Here wo go! 一、re模块 re模块的出现使得Python完全支持正则表达式,在学re模块之前,先来认识一下正则表达式 正则表达式使用单个字符串来描述、匹配出特定句法的字符串,在文本编辑中,正则表达式常用来检索、替换那些特定匹配模式的文本。正则表达式使用起来十分繁琐,但是它带来的功能确实无比强大的,掌握正则表达式之后,工作效率将会大幅度提高! 1. 正则表达式基本语法 定位符 正则表达式 描述 示例 ^ 行起始标记 ^ import 匹配以import开头的行 $ 行尾标记 import $ 匹配以import结尾的行 限定符 正则表达式 描述 示例 . 匹配任意一个字符 impor.可以匹配到import、imporq、impor1等 + 匹配之前项1次或者多次 import+可以匹配到import、importt、importtt等,但是不能匹配到impor * 匹配之前项0次或者多次 import*可以匹配到impor、import、importt、importtt等 ? 匹配之前项0次或者1次 impor?t可以匹配到impot、import

NLP python库 nltk 安装

て烟熏妆下的殇ゞ 提交于 2020-04-10 15:11:19
使用python进行自然语言处理,有一些第三方库供大家使用: ·NLTK(Python自然语言工具包)用于诸如标记化、词形还原、词干化、解析、POS标注等任务。该库具有几乎所有NLP任务的工具。 ·Spacy是NLTK的主要竞争对手。这两个库可用于相同的任务。 ·Scikit-learn为机器学习提供了一个大型库。此外还提供了用于文本预处理的工具。 ·Gensim是一个主题和向量空间建模、文档集合相似性的工具包。 ·Pattern库的一般任务是充当Web挖掘模块。因此,它仅支持自然语言处理(NLP)作为辅助任务。 ·Polyglot是自然语言处理(NLP)的另一个Python工具包。它不是很受欢迎,但也可以用于各种NLP任务。 先由nltk入手学习。 1. NLTK安装 简单来说还是跟python其他第三方库的安装方式一样,直接在命令行运行:pip install nltk 2. 运行不起来? 当你安装完成后,想要试试下面的代码对一段英文文本进行简单的切分: import nltk text=nltk.word_tokenize("PierreVinken , 59 years old , will join as a nonexecutive director on Nov. 29 .") print(text) 运行结果, 报错如下: ... raise LookupError

广告行业中那些趣事系列8:详解BERT中分类器源码

风流意气都作罢 提交于 2020-04-08 17:54:41
最新最全的文章请关注我的微信公众号:数据拾光者。 摘要:BERT是近几年NLP领域中具有里程碑意义的存在。因为效果好和应用范围广所以被广泛应用于科学研究和工程项目中。广告系列中前几篇文章有从理论的方面讲过BERT的原理,也有从实战的方面讲过使用BERT构建分类模型。本篇从源码的角度从整体到局部分析BERT模型中分类器部分的源码。 目录 01 整体模块划分 02 数据处理模块 03 特征处理模块 04 模型构建模块 05 模型运行模块 06 其他模块 总结 01 整体模块划分 对于机器学习工程师来说,会调包跑程序应该是万里长征的第一步。这一步主要是帮助我们迅速将模型应用到实际业务中,并且提升自信心,但这还远远不够。要想根据不同的业务场景更好的使用模型,我们需要深层次的理解模型,读点源码才能走的更远。 本篇解读的是BERT开源项目中分类器部分的源码,从最开始的数据输入到模型运行整个流程主要可以分成数据处理模块、特征处理模块、模型构建模块和模型运行模块。具体如下图所示: 图1 BERT分类器整体模块划分 因为原生态BERT预训练模型动辄几百兆甚至上千兆的大小,模型训练速度非常慢,对于BERT模型线上化非常不友好,所以使用目前比较火的BERT最新派生产品ALBERT来完成BERT线上化服务。ALBERT使用参数减少技术来降低内存消耗从而最终达到提高BERT的训练速度

PyTorch 使用TorchText进行文本分类

你离开我真会死。 提交于 2020-03-12 05:56:12
要查看图文并茂版教程,请移步: http://studyai.com/pytorch-1.4/beginner/text_sentiment_ngrams_tutorial.html 本教程演示如何在 torchtext 中使用文本分类数据集,包括 - AG_NEWS, - SogouNews, - DBpedia, - YelpReviewPolarity, - YelpReviewFull, - YahooAnswers, - AmazonReviewPolarity, - AmazonReviewFull 此示例演示如何使用 TextClassification 数据集中的一个训练用于分类文本数据的监督学习算法。 使用ngrams加载数据 一个ngrams特征包(A bag of ngrams feature)被用来捕获一些关于本地词序的部分信息。 在实际应用中,双字元(bi-gram)或三字元(tri-gram)作为词组比只使用一个单词(word)更有益处。例如: "load data with ngrams" Bi-grams results: "load data", "data with", "with ngrams" Tri-grams results: "load data with", "data with ngrams" TextClassification

ElasticSearch 分词器,了解一下

北慕城南 提交于 2020-03-08 20:19:50
这篇文章主要来介绍下什么是 Analysis ,什么是分词器,以及 ElasticSearch 自带的分词器是怎么工作的,最后会介绍下中文分词是怎么做的。 首先来说下什么是 Analysis: 什么是 Analysis? 顾名思义,文本分析就是 把全文本转换成一系列单词(term/token)的过程 ,也叫 分词 。在 ES 中,Analysis 是通过 分词器(Analyzer) 来实现的,可使用 ES 内置的分析器或者按需定制化分析器。 举一个分词简单的例子:比如你输入 Mastering Elasticsearch ,会自动帮你分成两个单词,一个是 mastering ,另一个是 elasticsearch ,可以看出单词也被转化成了小写的。 再简单了解了 Analysis 与 Analyzer 之后,让我们来看下分词器的组成: 分词器的组成 分词器是专门处理分词的组件,分词器由以下三部分组成: Character Filters :针对原始文本处理,比如去除 html 标签 Tokenizer :按照规则切分为单词,比如按照空格切分 Token Filters :将切分的单词进行加工,比如大写转小写,删除 stopwords,增加同义语 同时 Analyzer 三个部分也是有顺序的,从图中可以看出,从上到下依次经过 Character Filters , Tokenizer

AI:深度学习用于文本处理

烈酒焚心 提交于 2020-03-06 01:22:15
同本文一起发布的另外一篇文章中,提到了 BlueDot 公司,这个公司致力于利用人工智能保护全球人民免受传染病的侵害,在本次疫情还没有引起强烈关注时,就提前一周发出预警,一周的时间,多么宝贵! 他们的 AI 预警系统,就用到了深度学习对文本的处理,这个系统抓取网络上大量的新闻、公开声明等获取到的数十万的信息,对自然语言进行处理,我们今天就聊聊深度学习如何对文本的简单处理。 文本,String 或 Text,就是字符的序列或单词的序列,最常见的是单词的处理(我们暂时不考虑中文,中文的理解和处理与英文相比要复杂得多)。计算机就是固化的数学,对文本的处理,在本质上来说就是固化的统计学,这样采用统计学处理后的模型就可以解决许多简单的问题了。下面我们开始吧。 处理文本数据 与之前一致,如果原始要训练的数据不是向量,我们要进行向量化,文本的向量化,有几种方式: 按照单词分割 按照字符分割 提取单词的 n-gram 我喜欢吃火……,你猜我接下来会说的是什么?1-gram 接下来说什么都可以,这个词与前文没关系;2-gram 接下来可能说“把,柴,焰”等,组成词语“火把、火柴、火焰”;3-gram 接下来可能说“锅”,组成“吃火锅”,这个概率更大一些。先简单这么理解,n-gram 就是与前 n-1 个词有关。 我们今天先来填之前挖下来的一个坑,当时说以后将介绍 one-hot,现在是时候了。

200行代码实现超轻量级编译器

穿精又带淫゛_ 提交于 2020-02-26 03:01:44
前言 本篇内容主要由 the-super-tiny-compiler 中的注释翻译而来,该项目实现了一款包含编译器核心组成的极简的编译器。希望能够给想要初步了解编译过程的同学提供到一些帮助。 概要 本篇和大家一起学习写一款超级简单轻量,去掉注释只有不到200行代码的编译器。 该编译器将类 lisp 语法函数调用 编译为 类 C 语言函数调用 如果不熟悉上述的两种语法的其中任意一种,下面给出了简单的介绍 例如有两个函数 add 和 subtract 他们用对应的语言分别实如余下: 内容 类lisp 类C 2 + 2 (add 2 2) add(2, 2) 4 - 2 (subtract 4 2) subtract(4,2) 2 + ( 4-2 ) (add 2 (subtract 4 2)) add(2, subtract(4,2)) 本篇要实现编译的全部语法如上所示。虽然既不涵盖完整的lisp语法和c语法,但是足够展示一个现代编译器需要的主要组成部分 编译器组成 大部分的编译器可以粗略的划分为3个阶段: 解析 Parsing ,翻译 Transformation ,代码生成 Code Generation 解析 获取原始代码并将其转化为一个更抽象的代码表示 翻译 用抽象的代码表示为编译器想要完成的操作做准备 代码生成 将翻译过的抽象表示转化为新的要编译的代码 解析 Parsing

elasticsearch中英文搜索在kibaba中使用

扶醉桌前 提交于 2020-01-06 18:21:41
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> elasticsearch中英文查询实战 今天我们就来看看kibaba中怎么结合es来做中英文查询? 需求 项目需要就是通过用户输入的中文,英文关键字查询出我们的效果。比如: 雪花啤酒 需要搜索雪花、啤酒 、雪花啤酒、xh、pj、xh啤酒、雪花pj 。我们在百度搜索的时候一样,无论我们输入什么关键字,都可以对应查询出来。感觉很高大上的样子 那es怎么实现这样的需求呢? 拼音和ik分词器导入 拼音分词需要拼音分词器,中文分词需要ik分词器。分词器的安装很简单,只需要把下载的包放到plugins目录下,重启即可。 跟ik一样 下载下来打包移动到es plugins 目录名字改为pinyin https://github.com/medcl/elasticsearch-analysis-pinyin ik分词参考https://www.cnblogs.com/LQBlog/p/10443862.html 我们测试一下: get请求: http://127.0.0.1:9200/_analyze body: { "analyzer":"pinyin", "text":"雪花啤酒" } 我们输入的中文,希望是可以拼音分词实现。看看响应效果: 看到没有,如果出现下面的分词效果,说明你安装插件成功了。 中英文分词实现