标记化是自然语言处理(NLP)和机器学习(ML)中的一个基本步骤,包括将文本分解成更小的单元,即标记。这些标记可以是单词、子单词、字符或符号,具体取决于任务和所用模型的特定要求。通过将原始文本转换成机器学习模型可以理解的数字格式,标记化对各种人工智能应用至关重要。
定义
标记化是将一串文本分割成单个标记的过程。把它想象成把一个句子切成碎片。这些片段或标记成为计算机可以处理的基本单位。例如,句子 "Ultralytics YOLO is fast." 可以被标记为 ["Ultralytics", "YOLO", "is", "fast", "."]。文本标记化的方式会极大地影响模型理解和处理语言的能力。目前有不同的标记化策略,各有优缺点。常见的方法包括
- 单词标记化:这是最直接的方法,通常根据空格和标点符号将文本分割成单个单词。例如,"让我们学习人工智能!"就变成了["让"、"的"、"学习"、"人工智能"、"!"]。
- 字符标记化:在这里,每个字符都被视为一个标记。同样的句子 "让我们学习人工智能!"将被标记为["L"、"e"、"t"、"'"、"s"、""、"l"、"e"、"a"、"r"、"n"、""、"A"、"I"、"!"]。这种方法适用于词与词之间没有明显空格分隔的语言,或处理词汇量不足的词时。
- 子词标记化:这种方法在单词标记化和字符标记化之间取得了平衡。它根据频繁出现的字符序列将单词分解成更小的单位(子单词)。例如,"unbelakable "可标记为["un"、"break"、"able"]。这种技术能有效处理稀有词并减少词汇量,尤其适用于 BERT(来自变换器的双向编码器表示)和 GPT(生成预训练变换器)系列模型,包括GPT-4和GPT-3。
相关性和应用
标记化是几乎所有 NLP 任务的先决条件,它使机器能够处理和理解人类语言。代币化应用广泛,横跨各个领域:
- 情感分析:在情感分析中,标记化有助于将客户评论或社交媒体帖子分解为单个词或短语,然后对其进行分析,以确定整体情感(正面、负面或中性)。例如,在分析 "这个Ultralytics HUB 对用户友好得令人难以置信!"这句话时,标记化可以让情感分析模型关注 "令人难以置信 "和 "用户友好 "等单个词,从而判断正面情感。
- 机器翻译:标记化对机器翻译至关重要。在将句子从一种语言翻译成另一种语言之前,首先要对句子进行标记化。这样,翻译模型就能逐字或逐个子字地处理文本,从而促进准确和上下文感知的翻译。例如,翻译 "如何训练Ultralytics YOLO 模型 "时,首先要将其标记化为单词或子词,然后再将这些标记映射到另一种语言。
- 文本生成:用于文本生成的模型,如大型语言模型(LLM),在很大程度上依赖于标记化。生成文本时,这些模型会预测序列中的下一个标记。标记化可确保输出由有意义的单元(无论是单词还是子单词)构成,从而生成连贯且语法正确的文本。
- 搜索引擎和信息检索:搜索引擎利用标记化为网页编制索引并处理搜索查询。当您搜索 "使用Ultralytics YOLO 进行对象检测 "时,搜索引擎会将您的查询标记为关键字,并将这些标记与索引内容进行匹配,以检索相关结果。语义搜索通过理解标记的含义及其上下文,进一步完善了这一过程。
令牌化类型
虽然标记化的基本概念简单明了,但各种技术却能满足不同语言和 NLP 任务的需要:
- 空白标记化:这种简单的方法根据空白字符(空格、制表符、换行符)分割文本。这种方法虽然容易实现,但可能无法有效处理标点符号,对于不使用空格分隔单词的语言也有困难。
- 基于规则的标记化:这种方法使用预定义的规则来处理标点符号、缩略词和其他特定语言的细微差别。例如,可以设置规则将标点符号作为单独的标记来分离,或将 "can't "等缩略词作为两个标记来处理:"ca "和 "n't"。
- 统计标记化:更先进的技术利用在大型文本库中训练的统计模型来确定标记边界。这些方法包括字节对编码(BPE)和 WordPiece 等子词标记化算法,对于处理复杂语言和词汇表之外的词语尤为有效。
令牌化的好处
在人工智能和 ML 方面,令牌化具有几个关键优势:
- 简化文本数据:通过将文本分解为更小、更易于管理的单元,标记化技术可将复杂的非结构化文本数据转换为算法可高效处理的格式。
- 启用数字表示:标记可以轻松转换为数字表示,如向量,这是机器学习模型的标准输入。这种转换对于模型学习文本数据中的模式和关系至关重要。单词嵌入等技术通过捕捉语义进一步增强了这种表示方法。
- 提高模型性能:有效的标记化可以大大提高 NLP 模型的性能。针对特定任务和语言选择正确的标记化策略,可以提高分类、翻译和生成等任务的准确性和效率。
- 管理词汇量:子词标记化尤其有助于管理词汇量。通过将单词分解为子单词单元,可以减少模型需要学习的唯一标记的数量,从而使模型更加高效,能够处理更广泛的文本,包括罕见或未见的单词。
总之,标记化是 NLP 和 ML 中一个关键的预处理步骤,能让计算机理解和处理文本数据。其有效性取决于所选技术及其对特定任务和语言的适用性。从情感分析到复杂的语言模型(如Ultralytics YOLO -World,它可以理解文本提示以进行对象检测),了解标记化对于任何使用基于文本的人工智能应用的人来说都是至关重要的。