思维工程
上QQ阅读APP看书,第一时间看更新

二、原始句子转为词汇流

在人类单句自然语言处理过程中,第一步是识别词汇。

有些语种词汇间的边界已经很清晰了,比如英文,每个单词在书写和拼读时都有明显的边界特征,识别逻辑非常简单;有些语种的词汇边界则很模糊,比如中文,中文的句子在输出的时候是文字流,需要听者识别词汇流的词组。

在原型机中,我们不希望AI的起点就拥有某一词库,而是希望AI能够像人类一样在听多了某个词作为字的固定组合之后习得某一词汇(此时还不需要知道词的含义)。这样做的原因,其一是因为我们很难获得真正完整的词库,每个地方都会有自己独有的词汇,甚至一个家庭会用新的词约定相互间的昵称。其次,即使不考虑小众词汇,每年都会有许多新的大众词汇产生。其三,实现人类学习的机制是思维工程永恒的追求,因为这个过程总是会有意想不到的收获。

对于人类而言,我们能对经常出现的字组合形成印象,这正是我们需要在这里实现的。大致算法逻辑是这样的:

1.将学习的逻辑插入第一步:句子中的词汇识别。

2.对词汇识别后剩下的句子片断进行处理。

3.维护一个猜想词库。

4.识别片段中的两两字组合,如果猜想词库中存在,则增加频次强度,不存在则新建。

5.猜想词组的频次强度随时间衰减,但如果有猜想词组AB的频次强度超出阈值,则保存为正式词汇。

6.保存为正式词汇前,还需要考察CA或BC的频次强度,如果也非常显著则意味着词组可能不是2字组合,而是CAB或ABC。以此类推,我们能以二元组合为起点,找到比如3字的词或4字的成语。

工程上可执行的算法还要基于此框架细化。对于此学习机制,我们会定义一些测试。我们在AI没有任何词库的情况下输入家长和幼儿、儿童对话的样本,考察生成的词汇(实验8.1a),其中放入一些3字词汇和4字成语,考察是否能够生成对应的词汇(实验8.1b)。我们在AI有一定语言基础的情况下,在表达中使用一些它没有学过的词,考察AI是否能识别到新词,并询问语义“你说的中伤是什么意思啊”。(实验11.1-实验11.3)

两个词还有可能组成新的词,按照人类组词的逻辑,新词往往带有组成它的词的意向。这点在类似英文这种词汇边界清晰的自然语言中也存在,比如玻璃杯(glass cup)、苹果树(apple tree)等。所以AI需要按照上面对字的固定组合形成印象的逻辑对词的固定组合形成印象,并生成由词的组合形成的词汇。我们可以在测试案例中插入AI已知词汇组合的词汇考察其是否能够生成新的词,并询问词义(实验11.4)。

第一步原始句子转为词汇流的实现参考模块8.1。