当前位置:首页 > 问答 > 正文

后浪云AI教程聊聊那些AI里头的标记化、词干化还有词形化到底是啥意思

主要综合整理自网络上的常见AI与自然语言处理入门教程、技术博客以及像Towards Data Science等数据科学社区的文章观点)

咱们今天就来聊聊AI是怎么“读”懂人话的,你对着手机说“今天天气真好”,AI能明白你的意思,还能回你一句“是啊,适合出门”,这背后第一步,就是把它听到或看到的文字,变成自己能处理的小零件,标记化、词干化、词形化就是制造这些小零件的三板斧。

第一板斧:标记化——把句子拆成“积木块”

想象一下,你拿到一盒全新的乐高,但所有零件都粘在一块大板子上,你根本没法拼,标记化干的就是把零件从板子上掰下来的活儿,对AI来说,一整句话就像那块大板子,它看不懂,标记化就是按照一定的规则,把句子切分成一个个有意义的单元,这些单元就叫“词元”。

我爱北京天安门”这句话,最简单的标记化就是按空格和标点来切,得到[“我”, “爱”, “北京”, “天安门”]四个词元,英文句子“I don't like apples.”则会切成[“I”, “don’t”, “like”, “apples”, “.”]

但这里头有学问,像“don't”是拆成[“do”, “n’t”]好,还是就当做一个整体好?“天安门”是当一个整体,还是拆成“北京”和“天安门”?不同的拆法会影响AI后续的理解,标记化是第一步,也是最基础的一步,目标就是把连续的文本变成离散的、可处理的单元清单,这就好比厨师做菜前,得先把菜洗好、切好一样。

第二板斧:词干化——寻找单词的“粗胚”

零件掰下来了,但你会发现,很多零件形状很像,只是多了个小凸起或颜色不同,running”、“runner”、“runs”都和“run”有关,如果AI把它们都当成完全不同的东西,那它就学不到“跑”这个核心概念,学习效率会很低,词干化做的就是“磨平”这些差异,粗暴地砍掉词缀(前缀、后缀),得到一个单词的原始骨架,也就是“词干”。

词干化有点像粗暴的打磨机,它不管这个词干是不是一个真正的英文单词,它的目的就是归并。

  • “running” -> “run”
  • “runner” -> “runn” (注意,这里“runn”不是一个真单词,但词干化不关心)
  • “cats” -> “cat”
  • “ponies” -> “poni” (把“ies”砍掉,得到的不再是“pony”)

它的好处是简单、速度快,能大幅减少词汇表的大小,但缺点也很明显,就是不够精确,有时会产生像“nunn”、“poni”这样奇怪的“词”,而且它无法区分像“universe”(宇宙)和“university”(大学)这样虽然有相同词干但意思完全不同的词,所以词干化通常用在需要快速、粗略处理文本的场景,比如简单的搜索引擎关键词匹配。

第三板斧:词形还原——找到单词的“标准身份证”

词形还原比词干化文明多了,也聪明多了,它不像词干化那样蛮干,而是像一个有学问的语言学家,会根据词汇学和词典,把一个词的各种变化形式都还原回它的标准形式,也就是“词元”。

这个词元,一定是在词典里能查到的标准单词,词形还原需要考虑单词的词性,因为同样的拼写,词性不同,原形可能也不同。

举个例子就明白了:

  • “running” (动词) -> “run”
  • “runner” (名词) -> “runner” (注意!名词“runner”本身就是原形,它不会还原成“run”)
  • “better” (形容词) -> “good”
  • “saw” (如果作为名词,意思是“锯子”) -> “saw”
  • “saw” (如果作为动词“看见”的过去式) -> “see”

你看,词形还原能更准确地找到单词的根本意思,保留更多的语言信息,它需要依赖一个庞大的词典和复杂的语法规则来判断词性和变形规则,所以计算上比词干化要慢、要复杂,但在需要精确理解文本含义的任务中,比如情感分析、高级的聊天机器人、机器翻译,词形还原的效果通常远好于词干化。

一个形象的比喻

我们可以把处理文本想象成整理一个杂乱的工具箱:

  • 标记化:相当于把一堆缠在一起的工具(句子)分开,把螺丝、扳手、锤子(单词、标点)一个个识别出来,摆在工作台上。
  • 词干化:相当于把各种尺寸的螺丝刀(“螺丝刀头”、“螺丝刀柄”)都粗暴地归类为“螺丝刀”这个大类,不管它是否完整能用,追求的是速度和大致的归类。
  • 词形还原:则像是把“菲利普二号螺丝刀”和“一字型三号螺丝刀”都准确地放回它们对应的、标有标准名称的工具格子里,精准且规范。

AI并不是天生就懂语言的,它需要我们先帮它把人类模糊、灵活的语言,通过标记化、词干化/词形还原这些步骤,转换成它能够进行数学计算和逻辑推理的规整数据,这三者往往是协同工作的,先标记化,然后再对每个词元进行词干化或词形还原,为后续更复杂的理解任务打下坚实的基础。

后浪云AI教程聊聊那些AI里头的标记化、词干化还有词形化到底是啥意思