朋友们,最近打算做一个大工程,我曾多次提过,chatgpt未来将是一股非常大的信息技术革命,有的人不以为然,或者国内很多企业好像并不是很重视,以我从业多年来的经验,chatgpt与之前的NLP技术有着较为本质的区别,从chatgpt开始,我愿意称程序员的编程语言为第四代编程语言,也就是没有过程,只需要告诉需求,就可以实现编程,这是一个伟大的突破,一旦第四代编程语言成型,纯程序员我觉得绝大部分会被替代为prompt设计师或者需求分析师。
既然这次AI浪潮如此强大,我也想做点什么,想来想去,很多人对AI听说甚至自己干这行,但是对该行业的整个历史发展历程不够清楚,我经过寻找,找到了《Speech and Language Processing》这本书,打算把这本书整本都给大家解释,带读,希望能尽绵薄之力带你进入AI的世界。
正则表达式,文本规范化,编辑距离
上面是1966年由系统工程师约瑟夫·魏泽堡和精神病学家肯尼斯·科尔比在20 世纪60 年代共同编写的机器人ELIZA,是世界上第一个真正意义上的聊天机器人。
是的,你没有看错,就是1966年,也就是如果你是90年左右出生的,大概是你的父亲那一辈,就已经有聊天机器人了,并且他是世界上第一个AutoRobot。
译文:上面的对话来自ELIZA,这是一个早期的自然语言处理系统,可以通过模仿Rogerian心理治疗师的反应与用户进行有限的对话(Weizenbaum, 1966)。ELIZA是一个非常简单的程序,它使用模式匹配来识别像“我需要X”这样的短语,并将它们转换成合适的输出,比如“如果你得到X对你意味着什么?”这个简单的技术在这个领域取得了成功,因为ELIZA实际上不需要知道任何东西来模仿罗杰斯式的心理治疗师。正如Weizenbaum所指出的,这是为数不多的对话类型之一,听众可以表现得好像他们对世界一无所知。Eliza对人类对话的模仿非常成功:许多与Eliza互动的人开始相信它真的理解他们和他们的问题,甚至在向他们解释了程序的操作之后,许多人仍然相信Eliza的能力(Weizenbaum, 1976),即使在今天,这样的聊天机器人仍然是一种有趣的娱乐。
当然,现代会话代理不仅仅是一种消遣;他们可以回答问题,预订机票,或寻找餐馆,这些功能依赖于对用户意图的更复杂的理解,我们将在第26章看到。尽管如此,为ELIZA和其他聊天机器人提供动力的基于模式的简单方法在自然语言处理中发挥着至关重要的作用。
我们将从描述文本模式的最重要的工具开始:正则表达式。正则表达式可以用来指定我们可能想要从文档中提取的字符串,从上面Eliza中转换“I need X”,到定义像$199或$24.99这样的字符串来从文档中提取价格表。
所谓规范化文本,其实就是把原来的text转化为更加便利、标准的模式。
分词是我们处理自然语言的第一个步骤,英文通常有天然的空格来区分不同的词,但是英文也有部分词语不能用空格去区分,对于日文和中文,则更没有空格去区分,这都是难点。
文本规范化的另一部分是词根化,即确定两个单词具有相同的词根,尽管它们表面上存在差异。例如,单词sang, sung和sings都是动词sing的形式。sings这个词是这些词的共同根,将所有这些词映射成sings。词形化对于处理像阿拉伯语这样的形态复杂的语言是必不可少的。
词干提取指的是一种更简单的词尾提取,我们主要是从词尾提取后缀。文本规范化还包括句子分割:使用句点或感叹号等线索将文本分解成单独的句子。最后,我们需要比较单词和其他字符串。
我们将引入一个称为编辑距离的度量,它根据将一个字符串更改为另一个字符串所需的编辑(插入、删除、替换)次数来度量两个字符串的相似程度。编辑距离是一种应用于整个语言处理的算法,从拼写纠正到语音识别再到共同参考分辨率。