NLP技术中的Tokenization

2023-10-31

d1aad1df67e5ffbca41919c6a9327e6a.gif

©作者 | Gam Waiciu

单位 | QTrade AI研发中心

研究方向 | 自然语言处理

前言

今天我们来聊一聊 NLP 技术中的 Tokenization。之所以想要聊这个话题,是因为,一方面在 NLP 技术中 Tokenization 是非常重要的一个环节,它是数据进入到模型进行计算之前所必须的一个步骤;一方面,不少 NLPer 可能关注的往往是模型的花里胡哨,炼丹 Tricks 的纷繁复杂又或者是数据清洗的枯燥无味,对于字符串数据进入到模型之前所必经的 Tokenization 环节知之甚少;另一方面,笔者曾在工作过程中无意发现字符经过 XLM-Roberta 的 Tokenization 会多出“_”这个特殊符号,于是在 Tokenization 这方面进行了一番调研,便有会意,遂欣然忘食,执笔著之。

028ef63b7d85e7f96786bd287e8e8b75.png

引言

1.1 什么是Tokenization

相信大家作为一个 NLPer 都很熟悉 NLP 的流程,如下图。无论大家熟悉不熟悉,请准许我先介绍一番。

729e7c3aec852c6fbceb78cae42f33e1.png

图1.1 NLP流程

首先,我们将文本句子切分成一个个子单元,然后将子单元数值化(映射成向量),接着将这些向量输入到模型进行编码,最后输出到下游任务中进一步得到最终结果。对于为什么要数值化,是因为除了决策树模型,机器学习中绝大多数模型是不支持字符串数据的,想要模型能够顺利有效地学习,必须对字符串数据先数值化。另外,我们并不是直接对输入句子或者单词进行数值化,我们需要先将其切分成一个个有限的子单元,然后将这些子单元数值化。

而这个将原始文本切分成子单元的过程就叫做 Tokenization。国内很多翻译为“分词”,私以为,这样的翻译多少会让人有误解,让人误以为是针对中文进行词语的分割。尽管这是 Tokenization 的任务之一,但并不局限与此(它要做的还有更多)。

1.2 Tokenization的难点 

由 1.1 节我们可以知道,Tokenization 其实是为数值化作准备,数值化的过程必然需要映射,而映射又需要一个目标集合或者说映射表。这里就产生一个问题了,如果我们切分出来的子单元种类是非常多甚至无限多的,那么我们就需要一个非常庞大的映射表了,这就会导致巨大的内存消耗以及过多的计算量,这显然是不理想的。

一种做法是将大量的低频子单元使用几个特定的符号(例如,[UNK])代替,这样便缩小了映射表了,但是这样一来我们原始文本就损失了很多信息了。另外,对于切分出来的子单元到底是什么,可以是任意的东西吗?直观上来讲,显然不应该是任意的东西,这些被切分出来的子单元应该是有一定的含义的。比如:【unhappily】如果切分成了【un, happ, ily】显然要比【unh ap pily】要合理得多。因为【un, happ, ily】中每一个子单元都有一定的含义,而后者不然。 

综上所示,Tokenization 的难点便是——如何获得理想的切分,使文本中所有的 token 都具有正确的语义,并且不会存在遗漏(out of the vocabulary 问题)。

1.3 三类Tokenization方法 

这里笔者对 Tokenization 按切分的粒度分成了三大类,一是按词粒度来分,二是按字符粒度来分,三是按 subword(子词粒度来分)。对于词粒度切分这类方法是自然而然的,因为我们人类对于自然语言文本的理解就是按照这种方式切分的。对于字符粒度,这是一种极简的方法,基本不需要什么技巧,但是它有很多弊端。对于 subword 粒度切分,它似乎继承了儒家学派的中庸之道,是这样一种折中的方法。三种方法概括如下图:

6533639a2b0eb57b64aa848d34b69425.png

图1.2 Tokenization方法(按粒度分类)

354738cf7cd61612ad32df8bcde40f21.png

词粒度Tokenization

本节我们来讨论词粒度的相关方法。词粒度的切分就跟人类平时理解文本原理一样,可以用一些工具来完成,例如英文的 NLTK、SpaCy,中文的 jieba、HanLP 等。

首先我们直观地看一下词粒度进行 Tokenization 是怎么样的一种方法。

c313e3ec9952a5453610c7428eae3949.png

f95f8284bdc3bd5b90b7de3fc25cfbbe.png

图2.1 词粒度的Tokenization示例

很显然,跟我们人类阅读时自然而然地切分是一致的。

这种方法的优点是,能够很好地保留词的语义和边界信息。

对于英文等拉丁语系的词粒度 Tokenization 很简单,我们可以直接按照空格便能水到渠成地切出来,但是针对中日韩这类文字是无法通过空格进行切分的,这时针对这类语言的文字我们便需要用到一些分词方法。这些方法中一类是使用模型学习如何分词的,另一类是通过一个常用词表然后根据各种算法进行词表匹配来进行分词。使用模型进行序列标注这种方法不在本文的讨论范畴之内。笔者仅仅对词表匹配这类方法进行介绍。

基于词表和规则的分词方法可以分为 3 种:

1. 前(后)向最大匹配法; 

2. 最短路径分词法; 

3. 基于 N-Gram LM 的统计词频分词法。

这里先抛出问题,假设给定一个词典 V,如何对一个句子 S 进行分词呢。

e11d4b289f9bff53798cd97cf34fd1e2.png

图2.2 中文分词

下面笔者将对三种分词方法作一个简单介绍。

2.1 前(后)向最大匹配法

前(后)向最大匹配法的方法很简单,只需要知道前向匹配,那么后向匹配自然也就理解了。这里以前向最大匹配法进行讲解。我们来看一个例子,就能对前向匹配法的了然。

预设条件:  

1. 设定最大匹配长度 2(当然可以是 3,4,5 或者更长); 

2. 从左往右扫描句子(也可以从右往左)。

49082d0f2166506a52a89d211868e6c0.png

图2.3 前向匹配过程

则最终输出结果为:

07d23b72a64d6681929542f5cbb4c5a7.png

图2.4 前向匹配结果

很显然,这种规则虽然简单,但是却不是一种什么好方法。因为它无法解决歧义的问题,而且 N 的大小和和前还后向匹配对结果的影响很大。

题外话:由于词表一般比较大,为了节省内存和提高查找效率,一般会将词库构造成字典树。

2.2 最短路径分词法

最短路径分词法首先将句子中所有字都切分开来,然后根据词表将组成词的字连接起来,构成“词图”,然后求解“词图”的最短路径就是分词结果。

1ac298f49518875bdae112314670186e.png

图2.5 最短路径分词法的词图示例

本文中的例子构造出的“词图”,如上图所示。路径上的数字“1”代表权重,这里我们全部取为 1,代表每种分词的重要性或者说可能行等价。然后利用 N-最短路径或者 Dijkstra 算法便可以求解出最短路径。然后最短路径上的词汇就是我们最终需要的结果。

上述结果中,我们的分词结果是:

6deb3de1fcd7614a29889a8d51e48ba3.png

图2.6 最短路径分词法结果

2.3 基于N-Gram LM的统计词频分词法 

上述方法中,我们实际上作了简化边的权重都是 1,而现实中却不是这样的,常见的词出现频率高,我们可以用将求解“词图”最短路径的方法转为求解概率(频率)最大的路径。 

利用 2-Gram 语言模型,我们可以计算出词语的共现概率,结合词典 V,我们可以得到下面的“词图”。

c2437b451d3457558f36c85fcad6f67a.png

图2.7 2-Gram LM统计分词法的词图示例

P(他|<s>) 的含义是,“他”作为句子开头对于训练好的语言模型来说其概率是多少,同理 P(说|他) 表示“说”在在“他”字后面出现的概率是多少。我们有理由相信,这是一种更合理的方法,因为其考虑了不同词语之间先后出现的概率。

Tips:N-Gram 中的 N 也可以取 3,4,5,6 等。这里之所以用 2-Gram 一方面是为了表述方便,另一方面是因为实际应用中也不会取得太大,因为 N 取得越大,计算量就越高。

2.4 基于词粒度的Tokenization优缺点 

我们先来看看优点,概括来说就是词的边界和含义得到保留。 

词粒度很像人类去阅读一样,一方面能够很好地保留词的边界信息,另一方面能够很好地保留词的含义。这对后续模型来说是一件好事,拿 NER 任务来说,通常标签偏移是由于词边界没有约束好导致的,所以词语的边界信息对于某些下游任务来说是很重要的。在 MRC 任务中,词语含义能否被模型捕获也显得很重要,如果最初输入到模型的是丢失了某些关键词的词含义信息,那么最终结果可能会收到一定影响。 

当然词粒度的方法也有一定的缺陷。 

Issue1:词粒度的方法,需要构造的词典太过庞大,严重影响计算效率和消耗内存。 

Issue2:即使使用这么大的词典不影响效率,也会造成 OOV 问题。因为人类语言是不断发展的,词汇也在发展中不断增加。例如:针不戳,Niubility,Sixology 等。 

fdabbe8f04b7f4ca59aa11561f98eaa1.png

Issue3:词表中的低频词/稀疏词在模型训练过程中无法得到充分训练,进而模型不能充分理解这些词的语义。

Issue4:一个单词因为不同的形态会产生不同的词,如由“look”衍生出的“looks”, “looking”, 但是意义相近,对他们都进行训练是不必要的。

6b9dcedca2e393309b92df0515cef2db.png

字粒度Tokenization

字粒度又称字符粒度,它是按某一种语言最小符号来进行切分的。字符粒度最早应该是 2015 年 Karpathy 提出,简单说英文(拉丁语系)就是以字母为单位,中文日文韩文等就是以字为单位进行切分。

a14c7484111d600028b60a960b1f41f7.png

a948a2d8522da636297a9bcc4ab2ff23.png

图3.1 字粒度Tokenization示例

它的优点是,词表大大减小,26 个英文字母基本能覆盖出几乎所有词,5000 多个中文基本也能组合出覆盖的词汇。但是它的缺点也很严重,这种方法严重丢失了词汇的语义信息和边界信息,这对 NER 等关注词汇边界的任务来说会有一定的影响。而且把单词切分的太细,会使得输入太过长增加输入计算压力,减小词表的代价就是输入长度大大增加,从而输入计算变得更耗时,训练时更占内存空间。

这一种 Tokenization 方法没有什么过多可说的,因为现实中除了中日韩等语言外一般不用,尤其是拉丁语系。

53d503a497a2413610dd417ab0eedebc.png

subword(子词)粒度的Tokenization

在讲 subword 粒度的 Tokenization 之前,我们首先来谈谈什么样的 Tokenization 才是理想的 Tokenization。概括来说就是,词表要尽可能地小,小的同时又能覆盖到绝大多数的词尽可能地少出现 OOV 的词,另外此表中的每一个 token 都是有一定的含义,也就是说,对于一个词切出来的 subwords 中每一个都是有意义的,再者就是不要切得太细。

而第 2 节和第 3 节中讲到的方法都存在或多或少的缺点,都不能同时满足以上需求。那么有没有一种兼顾各方的方法呢?有的,那就是子词切分的方法。不过这里首先声明一下,这种方法只适用于英文等拉丁语系的语言,对于中文来说总不能把一个字分为偏旁部首和字根吧。

那么 subword 的 Tokenization 是怎么切分的呢?

a0e6d55c9e9bc0f2c3e2bdbefb836a22.png

5a113b751db8261901bffe4bdca7eae6.png

图4.1 subword粒度的Tokenization示例

接着又要提问了,如何切分或者说如何构造出 subwords 词典呢?目前主要有 4 种方法。如下图所示,下面将一一讲解这 4 种方法的原理和异同。

e6a45965d978e41d869c16d800c64cdf.png

图4.2 subword粒度的方法

4.1 BPE

BPE 全称 Byte Pair Encoding,字节对编码,是一种数据压缩方法。最早是论文 [1] 将其引入到 NLP 技术中。BPE 迭代地合并最频繁出现的字符或字符序列,具体步骤:

4526a07cd77efbc8f1cb2d6e80104d9d.png

图4.3 BPE训练步骤

下面看一个理解便能更好地理解。

6c629f637ab89ad6a7c1a6313f8f2b97.png

图4.4 BPE训练示例

可以看到,每次尝试合并相邻的两个字符,如果合并后出现概率是目前最大的,那就将合并后的字串加入到词汇表。

这里顺便讲一下,目前我们只是得到了词汇表,对于给定的一个单词,我们怎么对它进行编码呢?很简单,编码分为 3 步:1)对于单词 w,依次遍历排好序的词典。查看当前子词是否是该单词的子字符串,如果是,则输出当前子词,并对剩余单词字符串继续匹配。有点类似(前向最大匹配);2)如果遍历完字典后,仍然有子字符串没有匹配,则将剩余字符串替换为特殊符号输出,如“<unk>”;3)单词 w 的表示即为上述所有输出子词。

13cd27982bfcd149eace56989bce1dfd.png

图4.5 BPE解码

4.2 WordPiece 

WordPiece 最早在 [2] 中提出,并应用于解决日语和韩语语音问题。它与 BPE 相同点:每次从统计语料中选取出两个新的子词进行合并。它与 BPE 最大区别在于选择两个子词进行合并的原则:BPE 按频率,WordPiece 按能够使得 LM 概率最大的相邻子词加入词表。 

对于 WordPiece 构造词表的原理如下:

假设由句子 由 个子词组成, 表示第 个子词,且假设子词之间是相互独立的,那么句子 的语言模型对数似然值为:

6c71f240be4914242a3adec2b920b481.png

假设把相邻的 和 两个子词合并,产生 子词,此时句子的对数似然值增益为:

ed9b654f507417d16cd2cb25af737e05.png

两个子词合并前后的对数似然值增益等于 和 的互信息。所以,WordPiece 每次选择合并的两个子词,具有最大的互信息值,从语言模型上来说两个子词之间有很强的关联性,从语料上来说两个子词共现概率比较高。

WordPiece 的算法步骤如下:

cf96a2fe5df3e98de612b7dec9c65cc6.png

图4.6 WordPiece训练步骤

4.3 UniLM 

Unigram 语言建模首先在 [3] 中提出。这种方法与 WordPiece 相同点是:同样使用语言模型来挑选子词。与 WordPiece 最大区别:WordPiece 算法的词表大小都是从小到大变化。UniLM 的词库则是从大到小变化,即先初始化一个大词表,根据评估准则不断丢弃词表,直到满足限定条件。ULM 算法考虑了句子的不同分词可能,因而能够输出带概率的多个子词分段。 

对于 UniLM 构造词表的原理如下:

对于句子 ,假如存在一种子词切分结果为 则当前分词下句子 的对数似然值可以表示为:

186808d133a5e157bcc2f7bbbcdcce43.png

对于句子 ,挑选似然值最大的作为分词结果,即:

82f587ce65baadc6da717707cb3cf936.png

为最优切分结果。

UniLM 构造词典的算法步骤如下:

da2233405e2f4ef47078afff5e1a2fce.png

图4.7 UniLM的训练步骤

可以看出,UniLM 会保留那些以较高频率出现在很多句子的分词结果中的子词,因为这些子词如果被丢弃,其损失会很大。 

4.4 SentencePiece 

以上三种方法都存在着两个问题就是:1)无法逆转;2)训练的时候需要提前切分。无法逆转是什么意思呢,就是对句子 s 进行切分后得到的结果无法准确复原回 s。更直白地说就是空格不能被保留,如下:

5f6cd025701e9b66643e1233d3f1269e.png

图4.8 切分不可逆示意

而 SentencePiece [4] 的解决方法是: 

1. SentencePiece 首先将所有输入转换为 unicode 字符。这意味着它不必担心不同的语言、字符或符号,可以以相同的方式处理所有输入; 

2. 空白也被当作普通符号来处理。Sentencepiece显式地将空白作为基本标记来处理,用一个元符号 “▁”( U+2581 )转义空白,这样就可以实现简单地decoding; 

3. Sentencepiece 可以直接从 raw text 进行训练; 

4. 支持 BPE 和 UniLM 训练方法。

df73ecf7e4bbb33d9357fb298705ea2a.png

结语

目前在中文方面其实我们的大多数预训练模型包括 Bert,Roberta 等都是使用字粒度的方法进行 Tokenization,它们对词汇的含义和边界信息的捕获可能会有所欠缺,所以很多方法诸如 [5][6] 等都在探讨如何通过外部词汇提高这些模型对词汇的理解。而对于拉丁语系(比如英文)大多都是使用的 subword 粒度的 Tokenization 方法。

学习 Tokenization 确实是一件非常枯燥无味的事情,尤其是需要深入学习的时候。本文尽最大努力从知识面的广度来讲解为什么要 Tokenization 以及 Tokenization 到底在做什么。尽管这些知识对一个 NLP 炼丹师来说不是经常用得到甚至用不到。但或者这些东西对大家日后的工作或者 idea 创新有帮助呢?

outside_default.png

参考文献

outside_default.png

[1] Sennrich R, Haddow B, Birch A. Neural machine translation of rare words with subword units[J]. arXiv preprint arXiv:1508.07909, 2015. 

[2] Schuster M, Nakajima K. Japanese and korean voice search[C]//2012 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2012: 5149-5152. 

[3] Kudo T. Subword regularization: Improving neural network translation models with multiple subword candidates[J]. arXiv preprint arXiv:1804.10959, 2018. 

[4] Kudo T, Richardson J. Sentencepiece: A simple and language independent subword tokenizer and detokenizer for neural text processing[J]. arXiv preprint arXiv:1808.06226, 2018. 

[5] Ma R, Peng M, Zhang Q, et al. Simplify the usage of lexicon in Chinese NER[J]. arXiv preprint arXiv:1908.05969, 2019. 

[6] Liu W, Fu X, Zhang Y, et al. Lexicon Enhanced Chinese Sequence Labelling Using BERT Adapter[J]. arXiv preprint arXiv:2105.07148, 2021.


特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

更多阅读

86dca7cc55fe1967b2c1f11a803ab153.png

f4a109bf61364b4dd1f2dc58d52fb795.png

b6ab83aba988ff5b9b8cc5fd1ddeb24e.png

425ac9588597363bbbfdfa2984a05098.gif

#投 稿 通 道#

 让你的文字被更多人看到 

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

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

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NLP技术中的Tokenization 的相关文章

随机推荐

  • 音视频造数据的路

    目录 1 多路数据制造 1 合并多路 2 视频修改分辨率 3 修改视频码率 4 修改帧率 2 音频流多声道合成 1 双声道合并单声道 2 双声道提取 3 双声道转双音频流 4 单声道转双声道 5 两路音频合并双声道 6 合并多声道 7 声道
  • 光收发器安装介绍,光纤收发器连接示意图解

    对于光纤布线来讲光纤收发器都是非常熟悉的产品了 在光纤网络中 我们常常会使用到光纤收发器 那么 在网络布线过程中光纤收发器该怎么连接呢 接下来飞畅科技的小编就来为大家介绍下光纤收发器安装以及连接图解 感兴趣的朋友一起来看看吧 一 光收发器安
  • java实现excel的导出之使用easyExcel

    前言 在我们的项目需求中 经常会遇到导出的需求 其中excel的导出最为常见 生成Excel比较有名的框架有Apache poi jxl等 但他们都存在一个严重的问题就是非常的耗内存 如果你的系统并发量不大的话可能还行 但是一旦并发上来后一
  • PCL K4PCS算法实现点云配准

    目录 一 算法原理 1 算法概述 2 算法流程 3 参考文献 二 代码实现 三 结果展示 一 算法原理 1 算法概述 K 4PCS方法主要分为两个步骤 1 利用VoxelGrid滤波器对点云进行下采样 然后使用标准方法 3D harris或
  • 通过screw生成数据库文档,支持(WORD,HTML,MD)

    文章目录 前言 一 使用步骤 基于springboot项目 1 pom xml引入 2 运行screw 3 查看文档效果 前言 你还在通过手写数据库文档吗 out了 通过screw插件一键生成数据库文档 可生成HTML WORD MD三种类
  • 串口通信(PC-51单片机)

    实验现象 下载程序后打开串口调试助手 将波特率设置为4800 选择发送的数据就可以显示 接线说明 具体接线图可见开发攻略对应实验的 实验现象 章节 注意事项 include reg52 h
  • Luci的工作流程

    1 浏览器敲入192 168 1 1后就 路由器作为uhttp server会把 www index html这个页面返回给浏览器 而且这个页面又会刷新 去请求页面 luci cgi 代码如红色标记
  • vue中使用cookies和crypto-js实现记住密码和加密

    不多BB 搞快 搞快 使用crypto js加解密 第一步 安装 npm install crypto js 第二步 在你需要的vue组件内import import CryptoJS from crypto js 第三步 使用 Encry
  • 【Idea技巧】01.Idea无法打开,报错 Start Failed

    序章 个人使用Idea版本 借鉴文章 添加链接描述 解决方案 管理员命令cmd netsh int ipv4 set dynamicport tcp start 49152 num 16383 netsh int ipv4 set dyna
  • 怎么用计算机计算年月份,如何使用Excel计算两个日期之间的月数?

    一 这可以通过DATEDIF函数完成 二 DATEDIF函数的定义 DATEDIF函数是Excel中的隐藏函数 而不是帮助和插入公式中的隐藏函数 返回两个日期之间的年 月 日间隔的数量 DATEDIF函数通常用于计算两个日期之间的时差 语法
  • Windows11之QT开发框架超详细下载安装与使用教程

    文章目录 前言 3 1 QT开发框架下载 3 2 QT开发框架安装 3 3 QT开发框架使用 总结 前言 本博客的主要内容为在Windows11系统下的QT开发框架的下载安装与使用教程 QT开发框架开发C 图形化界面十分有用 读者跟着我一步
  • 球坐标系下梯度、散度、旋度和拉普拉斯的简单计算

    转载于 https www cnblogs com hiramlee0534 p 5480045 html
  • 七天玩转Redis

    一 简要了解 redis是一个key value存储系统 和Memcached类似 它支持存储的value类型相对更多 包括string 字符串 list 链表 set 集合 zset sorted set 有序集合 和hash 哈希类型
  • ELK系列(九)、配置ES和Kibana的用户密码

    前面介绍的都是没有设置密码的情况 ES默认没有密码 什么数据泄露的新闻简直是家常便饭 所以这里还是建议大家给ES和kibana设置用户登陆 或者使用nginx限制IP或用户访问 本文介绍ELK自带的创建用户的方式 ELK系列 一 安装Ela
  • CSDN编程竞赛第六期

    CSDN编程竞赛报名地址 https edu csdn net contest detail 16 本次是我第二次参加CSDN举办的编程竞赛 这一次的题相比上一次简单不少 对编程新人或者刚开始学习算法的人很友好 前言 背景 本次CSDN编程
  • 服务器管理系统是什么

    服务器管理系统是什么 服务器管理系统 是在操作系统下对操作系统的服务器软件及其相关软件进行二次设置的管理软件 是运营商管理域名 服务器 企业邮局 数据库等服务器主机类产品的一个网站平台 以达到快捷实现域名 服务器主机 企业邮局 数据库等产品
  • C#连接数据库SQlServer+Form窗格实现简单动态增删查改操作

    C 连接数据库SQlServer Form窗格实现简单动态增删查改操作 一 数据库连接 数据库连接部分学习自该博主原创博客 点击即可跳转 再附上该博主的博客链接 https blog csdn net kiss soul article d
  • 深度学习去运动模糊----《DeblurGAN》

    前言 现实生活中 大多数图片是模糊不清的 试想一下 追剧时视频不清晰 看着都很捉急 何况现实中好端端的一幅美景 美女也可以 被抓拍得不忍直视 瞬间暴躁 拍照时手抖 或者画面中的物体运动都会让画面模糊 女友辛辛苦苦摆好的各种Pose也将淹没在
  • 海湾主机汉字注释表打字出_海湾报警主机(JB-QG-GST5000)操作手册

    报警主机正面示意图 报警主机内部结构图 控制器 模块总线 通讯总线 联动电源输出端子示意图 A1 B1 An Bn RS 485有极性通讯线端子 接火灾报警显示盘 GND 24V LD D02电源盘对外输出端子 保护地 此端子与机壳相连 接
  • NLP技术中的Tokenization

    作者 Gam Waiciu 单位 QTrade AI研发中心 研究方向 自然语言处理 前言 今天我们来聊一聊 NLP 技术中的 Tokenization 之所以想要聊这个话题 是因为 一方面在 NLP 技术中 Tokenization 是非
Powered by Hwhale