Tokenizer与分词

1. 分词和Tokenizer的核心概念

1.1 分词的定义

分词(Word Segmentation) window是NLP的基础任务,目的是将连续的文本(句子或段落)分割成有意义的语言单位(通常是单词、词语、子词或字符)。这些单位是后续NLP任务(如词性标注、句法分析、机器翻译、情感分析等)的基础。

  • 英文分词:英文通常以空格和标点为分隔符,分词相对简单。例如:
    • 输入:“I love to eat apples.”
    • 输出:[“I”, “love”, “to”, “eat”, “apples”]
  • 中文分词:中文没有明确的词语边界,分词需要依赖词典、上下文或模型。例如:
    • 输入:“我爱吃苹果”
    • 输出:[“我”, “爱”, “吃”, “苹果”]

1.2 Tokenizer的定义

Tokenizer(分词器)是一个工具、算法或模块,用于将原始文本分解为一系列“标记”(Tokens)。Tokens可以是:

  • 单词(Word-level):如“I”, “love”。
  • 子词(Subword-level):如“playing” → [“play”, “##ing”]。
  • 字符(Character-level):如“我” → [“我”]。
  • 字节(Byte-level):如Unicode字符的字节表示。

Tokenizer不仅限于分词,还可能包括:

  • 去除标点或特殊字符。
  • 转换为小写(英文)。
  • 添加特殊标记(如[CLS]、[SEP],用于BERT)。
  • 将Tokens映射为ID(用于模型输入)。

1.3 分词和Tokenizer的重要性

  • 结构化文本:将无结构的文本转化为离散的、计算机可处理的单位。
  • 语义保持:确保分割后的单位具有语义(如“苹果”作为一个词,而不是“苹”和“果”)。
  • 模型输入:深度学习模型(如Transformer)需要将文本转化为数值化输入,分词是第一步。
  • 跨语言适配:处理不同语言的分词规则(如英文的空格分隔、中文的连续性)。

1.4 分词 vs Tokenizer

  • 分词:一个任务,目标是分割文本为语义单位。
  • Tokenizer:实现分词任务的工具,可能包括额外的预处理步骤(如归一化、映射ID)。

2. 分词的挑战与语言特性

分词看似简单,但实际上面临诸多挑战,尤其是在不同语言、复杂场景和特定领域中。

2.1 语言差异

  • 英文
    • 通常以空格和标点分隔,分词较简单。
    • 挑战:缩写(如“don’t”)、连字符(如“well-known”)、专有名词(如“New York”)。
  • 中文
    • 无明确词界,需依赖词典或模型判断。
    • 例子:“南京市长江大桥”可能分为:
      • 正确:[“南京市”, “长江大桥”]
      • 错误:[“南京”, “市长”, “江大桥”]
  • 日韩语
    • 类似中文,无明确词界,且有复杂的形态学(如日语的假名和汉字混合)。
  • 泰语、越南语
    • 泰语无空格,越南语虽有空格但词界复杂。
  • 多语言混合
    • 社交媒体文本(如“今天天气很好,btw I’m coding”)包含多语言、表情符号、缩写等。

2.2 歧义问题

分词结果因上下文而异:

  • 中文
    • “研究生物”:
      • [“研究生”, “物”](研究生和物体)
      • [“研究”, “生物”](研究生物学)
    • “他说的确实在理”:
      • [“他”, “说”, “的”, “确实”, “在理”]
      • [“他”, “说”, “的”, “确”, “实在”, “理”]
  • 英文
    • “New York”应作为一个Token,而不是[“New”, “York”]。
    • “bank”可能是“银行”或“河岸”,需上下文消歧。

2.3 未登录词(OOV, Out-Of-Vocabulary)

  • 定义:不在词典中的新词或专有名词(如“区块链”“自拍杆”)。
  • 挑战:传统词典方法无法处理OOV。
  • 解决方案
    • 子词分词(如BPE)。
    • 字符级分词。
    • 动态词典更新。

2.4 粒度选择

分词的粒度影响模型性能:

  • 单词级
    • 优点:语义明确。
    • 缺点:词汇表大,OOV问题严重。
  • 子词级
    • 优点:平衡语义和泛化能力,适合多语言和OOV。
    • 缺点:可能丢失部分语义。
  • 字符级
    • 优点:词汇表最小,泛化能力强。
    • 缺点:序列长,语义信息少。
  • 字节级
    • 优点:支持任何语言,无需预处理。
    • 缺点:计算成本高。

2.5 领域特定性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱看烟花的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值