在NLP任务中,文本是没有办法直接参与数学计算的,因此首先要考将文本转换为数字,也就是文本向量。
分词器: 文本的拆分方法
分词器的目的是将连续的文本序列切分成有意义的、可供模型处理的基本单元(Token)。 这个“基本单元”的定义,随着计算能力、数据规模和任务需求的变化而演变。 其发展主线是:从追求人类可理解的“词”,转向追求模型高效处理的“子词”。
基于规则(字典)的分词
- 原理:维护一个词典。分词时,采用匹配策略在文本中查找最长能匹配的字符串。
- 经典算法:
- 正向/反向/双向最大匹配法:从左到右(或从右到左)扫描句子,每次尝试匹配当前位置开始的最长词典词。
- 例子:句子“我爱北京天安门”。
- 词典包含 {“我”, “爱”, “北京”, “天安门”, “天安”}。
- 正向最大匹配结果为 “我 / 爱 / 北京 / 天安门”(而不是“天安 / 门”)。
- 优点:简单、快速、对于词典内的词准确率高。
- 缺点:
- 未登录词(OOV)问题:无法识别词典外的新闻、专名、网络用语等。
- 歧义切分问题:如“羽毛球拍卖完了”,可切为“羽毛/球拍/卖完/了”或“羽毛球/拍卖/完/了”。
- 依赖高质量词典:不同领域需要定制词典,维护成本高。
