一文搞懂大模型的前处理

从一段文本说起

大语言模型的输入是文字,这段文字的语义和语法按照人类可理解的规则进行编码,编码规则就是各个国家的语言:

  • 中文:“我的家在东北,松花江上啊”

人类获取这段文字所表达的含义,是通过语法的学习以及相关知识的储备,大脑主动将这段文字按照

  • 主语
  • 动词
  • 宾语
  • 语气助词
  • 介词

进行人肉分词后,这段文字可以映射到大脑的知识储备中,进行自然语言理解。

理解了肉身文字处理的原理,我们采用类似的方式让大语言模型能够理解这段中文,我们首先要按照类似的方式对这段文字进行预处理。

分词- tokenizer

分词的处理,在英文中翻译成tokenizer,它拆分一段文本为独立的单元,成为token,其中的token可以是一个词语(word),也可以是一个句子(sentence),还可以是一个字符(character)。

中文的分词方法和英文有一些差别,主要体现在:

  • 分词方式不同,中文更难:英文有天然的空格作为分隔符,但是中文没有。所以如何切分是一个难点,再加上中文里一词多意的情况非常多,导致很容易出现歧义。下文中难点部分会详细说明。
  • 英文单词有多种形态:英文单词存在丰富的变形变换。为了应对这些复杂的变换,英文NLP相比中文存在一些独特的处理步骤,我们称为词形还原(Lemmatization)和词干提取(Stemming)。中文则不需要

词性还原:does,done,doing,did 需要通过词性还原恢复成 do。
词干提取:cities,children,teeth 这些词,需要转换为 city,child,tooth”这些基本形态

  • 中文分词需要考虑粒度问题:例如[我的家在东北,松花江上啊]就有很多种分法:

我的家在东北,松花江上啊
我的家|在|东北,松花|江上|啊
我|的|家|在|东北,松花江|上|啊

粒度越大,表达的意思就越准确,但是也会导致召回比较少。所以中文需要不同的场景和要求选择不同的粒度。这个在英文中是没有的。

  • 英文分词方法:

中文分词

  • 词典匹配的分词方式:
    基本思想是基于词典匹配,将待分词的中文文本根据一定规则切分和调整,然后跟词典中的词语进行匹配,匹配成功则按照词典的词分词,匹配失败通过调整或者重新选择,如此反复循环即可。代表方法有基于正向最大匹配和基于逆向最大匹配及双向匹配法。

  • 基于统计的分词方法:
    这类目前常用的是算法是HMM、CRF、SVM、深度学习等算法,比如stanford、Hanlp分词工具是基于CRF算法。以CRF为例,基本思路是对汉字进行标注训练,不仅考虑了词语出现的频率,还考虑上下文,具备较好的学习能力,因此其对歧义词和未登录词的识别都具有良好的效果。

  • 基于深度学习
    例如有人员尝试使用双向LSTM+CRF实现分词器,其本质上是序列标注,所以有通用性,命名实体识别等都可以使用该模型,据报道其分词器字符准确率可高达97.5%。

  • 常见的中文分词器:

    • Hanlp
    • Stanford 分词
    • ansj 分词器
    • 哈工大 LTP
    • KCWS分词器
    • jieba
    • IK
    • 清华大学THULAC
    • ICTCLAS

英文分词

分词方法:

  • BPE
    使用字节对编码分词有以下优点。
    第一,由于BPE的子词表里含有所有单个字符,所以任何单词都可以分拆成BPE的子词,即没有OOV(out of vocabulary)问题。
    第二,BPE可以通过调整合并次数动态控制词表大小。
    因此,BPE常被运用在机器翻译、语言模型等
  • 常见的英文分词工具
    • Keras
    • Spacy
    • Gensim
    • NLTK

词向量(word vector)

通过分词,我们得到了可以独立准确表达语义的单元token,以上操作叫做Tokenization. 目前为止,这些独立单元还是人类所熟悉的词组,还需要进一步将其数字化,表达成机器语言。
To be continued...

Reference

  • 中英文分词的区别:https://zhuanlan.zhihu.com/p/77281678
  • https://cloud.tencent.com/developer/article/1623920
  • 分词是否是必须的:https://arxiv.org/pdf/1905.05526.pdf
  • 词向量分析:
    • https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
    • https://medium.com/@saschametzger/what-are-tokens-vectors-and-embeddings-how-do-you-create-them-e2a3e698e037
  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值