语言模型是对文本进行推理的,文本通常是字符串形式,但模型的输入只能是数字,因此需要将文本转换成数字形式。
Tokenization是自然语言处理的基本任务,根据特定需求能够把一段连续的文本序列(如句子、段落等)切分为一个字符序列(如单词、短语、字符、标点等多个单元),其中的单元称为token或词语。
根据下图所示的具体流程,首先将文本句子切分成一个个单元,然后将单元素数值化(映射为向量),再将这些向量输入到模型进行编码,最后输出到下游任务进一步得到最终的结果。
文本切分
按照文本切分的粒度可以将Tokenization分为词粒度Tokenization、字符粒度Tokenization、subword粒度Tokenization三类。
1.词粒度Tokenization
词粒度Tokenization是最直观的分词方式,即是指将文本按照词汇words进行切分。例如:
The quick brown fox jumps over the lazy dog.词粒度Tokenized结果:['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog', '.']
在这个例子中,文本被切分为一个个独立的单词,每个单词作为一个token,标点符号'.'也被视为独立的token。
中文文本通常会根据照搬词典收录的标准词汇汇编或者是通过分词算法识别出的短语、成语、专有名词等进行切分。
我喜欢吃苹果。词粒度Tokenized结果:['我', '喜欢', '吃', '苹果', '。']
这段中文文本被切分成五个词语:“我”、“喜欢”、“吃”、“苹果”和句号“。”,每个词语作为一个token。
2.字符粒度Tokenization
字符粒度Tokenization将文本分割成最小的字符单元,即每个字符被视为一个单独的token。例如:
Hello, world!字符粒度Tokenized结果:['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!']
字符粒度Tokenization在中文中是将文本按照每个独立的汉字进行切分。
我喜欢吃苹果。字符粒度Tokenized结果:['我', '喜', '欢', '吃', '苹', '果', '。']
3.subword粒度Tokenization
subword粒度Tokenization介于词粒度和字符粒度之间,它将文本分割成介于单词和字符之间的子词(subwords)作为token。常见的subword Tokenization方法包括Byte Pair Encoding (BPE)、WordPiece等。这些方法通过统计文本数据中的子串频率,自动生成一种分词词典,能够有效应对未登录词(OOV)问题,同时保持一定的语义完整性。
helloworld
假设经过BPE算法训练后,生成的子词词典包含以下条目:
h, e, l, o, w, r, d, hel, low, wor, orld
子词粒度Tokenized结果:
['hel', 'low', 'orld']
这里,“helloworld”被切分为三个子词“hel”,“low”,“orld”,这些都是词典中出现过的高频子串组合。这种切分方式既能处理未知词汇(如“helloworld”并非标准英语单词),又保留了一定的语义信息(子词组合起来能还原原始单词)。
在中文中,subword粒度Tokenization同样是将文本分割成介于汉字和词语之间的子词作为token。例如:
我喜欢吃苹果
假设经过BPE算法训练后,生成的子词词典包含以下条目:
我, 喜, 欢, 吃, 苹, 果, 我喜欢, 吃苹果
子词粒度Tokenized结果:
['我', '喜欢', '吃', '苹果']
在这个例子中,“我喜欢吃苹果”被切分为四个子词“我”、“喜欢”、“吃”和“苹果”,这些子词均在词典中出现。虽然没有像英文子词那样将汉字进一步组合,但子词Tokenization方法在生成词典时已经考虑了高频词汇组合,如“我喜欢”和“吃苹果”。这种切分方式在处理未知词汇的同时,也保持了词语级别的语义信息。
索引化
假设已有创建好的语料库或词汇表如下。
vocabulary = {'我': 0,'喜欢': 1,'吃': 2,'苹果': 3,'。': 4}
则可以查找序列中每个token在词汇表中的索引。
indexed_tokens = [vocabulary[token] for token in token_sequence]print(indexed_tokens)
输出:[0, 1, 2, 3, 4]。
以上是一文搞懂Tokenization!的详细内容。更多信息请关注PHP中文网其他相关文章!

软AI(被定义为AI系统,旨在使用近似推理,模式识别和灵活的决策执行特定的狭窄任务 - 试图通过拥抱歧义来模仿类似人类的思维。 但是这对业务意味着什么

答案很明确 - 只是云计算需要向云本地安全工具转变,AI需要专门为AI独特需求而设计的新型安全解决方案。 云计算和安全课程的兴起 在

企业家,并使用AI和Generative AI来改善其业务。同时,重要的是要记住生成的AI,就像所有技术一样,都是一个放大器 - 使得伟大和平庸,更糟。严格的2024研究O

解锁嵌入模型的力量:深入研究安德鲁·NG的新课程 想象一个未来,机器可以完全准确地理解和回答您的问题。 这不是科幻小说;多亏了AI的进步,它已成为R

大型语言模型(LLM)和不可避免的幻觉问题 您可能使用了诸如Chatgpt,Claude和Gemini之类的AI模型。 这些都是大型语言模型(LLM)的示例,在大规模文本数据集上训练的功能强大的AI系统

最近的研究表明,根据行业和搜索类型,AI概述可能导致有机交通下降15-64%。这种根本性的变化导致营销人员重新考虑其在数字可见性方面的整个策略。 新的

埃隆大学(Elon University)想象的数字未来中心的最新报告对近300名全球技术专家进行了调查。由此产生的报告“ 2035年成为人类”,得出的结论是,大多数人担心AI系统加深的采用


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版
视觉化网页开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。