npm 包 tokenizers.io 使用教程

阅读时长 5 分钟读完

前言

对于一名前端开发人员来说,数据处理是非常重要的一项技能。然而,在进行数据处理时,我们往往需要将一段文本进行拆分、分词或者进行序列化处理,这时我们就需要使用到一些文本处理工具或者库。本文将介绍一个非常常用的文本处理库——tokenizers.io。

什么是 tokenizers.io

tokenizers.io 是一个由 Hugging Face 公司开发的文本处理库,它能够对文本进行分词、序列化等处理。该库已经发布到了 npm 上,我们可以直接通过 npm 安装并使用它。

安装

安装非常简单,只需要在终端中执行以下命令即可:

使用

下面将介绍 tokenizers.io 的主要使用方式。

1. 初始化

在使用 tokenizers.io 时,我们首先需要初始化一个 Tokenizer 对象。在初始化时,我们需要指定一个 Tokenizer 类型,比如:BertWordPieceTokenizer、ByteLevelBPETokenizer、UnigramTokenizer 等等。

接下来我们以 BertWordPieceTokenizer 为例进行介绍。

如上述代码所示,我们通过 BertWordPieceTokenizer.fromOptions 方法初始化了一个 BertWordPieceTokenizer 类型的 Tokenizer 对象,并且指定了一个 vocabFile 参数,该参数指向存放词表的 json 文件路径。

由于我们是在前端应用中使用 tokenizers.io,所以我们需要将该词表从本地读取,并将其作为一个 json 对象传递给 Tokenizer 实例。如下所示:

-- -------------------- ---- -------
------ - ---------------------- - ---- --------------------------

----- -------- ---------------- -
  ----- -------- - ----- ---------------------------------
  ----- ---------- - ----- ----------------
  ------ -----------
-

----- -------- ------ -
  ----- ---------- - ----- -----------------
  ----- --------- - ------------------------------------
    ------ -----------
  ---
  -- -- --------- ---- ---------
-

-------

2. 分词

在分词时,我们需要使用 Tokenizer 的 encode 方法,该方法接收一段文本,并返回一个 TokenizerEncoding 对象。

encode 方法会将传入的文本进行分词处理,并返回一个 TokenizerEncoding 对象,该对象包含了多个有用的信息,例如:tokens、offsets、attentionMask 等等。

3. 序列化

在序列化操作中,我们需要将经过分词处理后的 Token 值,序列化成一个一维的数组。

4. 反序列化

在将序列化后的一维数组还原成经过分词处理后的 Token 值时,我们需要使用 Tokenizer 的 decode 方法。

5. 获取 Token 的偏移量

如果我们需要获取每个 Token 在原始文本中的偏移量,我们可以通过 TokenizerEncoding 对象的 offsets 属性获取。

通过 offsets 属性,我们可以获得一个二维数组,其中每个元素表示原始文本中一个 Token 的起始和结束位置,例如 [0, 5] 表示在原始文本中第一个 Token 的起始偏移量为 0,结束偏移量为 5。

总结

通过本文,我们学习了 npm 包 tokenizers.io 的使用方法。该库提供了非常多的文本处理方法,可以帮助我们快速完成数据处理与分析工作。如果您在进行数据处理时,需要进行文本预处理或者序列化处理,可以考虑使用 tokenizers.io 这个非常方便的库。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668f0d9381d61a3540d8f

纠错
反馈