七、模块列表
模块8.1a
描述:这个模块读取一段原始表达信息,识别当中的词汇或词组,输出分词(词汇识别)后的信息流。
隶属功能大类:自然语言正转录
输入:一段原始表达信息
输出:替换词ID后的句子
逻辑机制:
1.调取所有词信息,比如中文中词如何由字组词的信息,英文中字母如何组成单词的信息。
2.识别原始表达中的词汇,识别到后用词ID替换。
3.如果最后留下未识别的信息,比如中文句子中留下的字组成的片段,调用模块8.1b进行处理,模块8.1b会形成新词汇的猜想。(英文因为单词即是分词,所以对于不存在词汇ID的单词,直接建立对应的词汇ID就可以)
Remark:如果是中文,读取信息是文字流,然后识别其中词后替换为词ID;如果是英文,识别到单词后直接替换为词ID。
模块8.1b
描述:这个模块根据负责猜想词汇的维护。
隶属功能大类:自然语言正转录
输入信息:词汇识别后剩下的每个句子碎片。
逻辑机制:
1.在句子中先进行猜想的词汇的匹配,匹配上的增加5的强度。
2.强度每天衰减10%。
3.就句子找出连接的两两的字的组合,作为猜想的词汇,初始化5的强度,1中匹配上的,强度不重复增加。
4.如果某个2字组合AB作为一个猜想词汇强度到了50,就考察猜想词汇中是否有XA,和BX的词汇,如果强度非常接近则说明更完整的词汇是XAB或ABX(因为每次出现AB的时候肯定也会出现XA和BX)。重复这个过程,就可以找到完整的词汇。找到完整的词汇后保存为一个正式的词汇节点。
模块8.2
描述:这个模块读取完成词汇识别,并用词汇ID替换句子中的词汇,然后把里面能对应到概念节点的词汇换为概念。
隶属功能大类:自然语言正转录
输入:替换词ID后的句子
输出:替换概念ID后的句子
逻辑机制:
1.创造对不熟悉概念的好奇。根据(概念=,词汇=)把具体中的词汇替换为概念ID。如果没有概念ID,则建立概念ID。标注(概念=IDA,熟悉状态=不熟悉),且生成一个好奇点。(主体信息=IDA,好奇内容=含义),保存为长期记忆且放入cf;如果已经有概念ID,寻找(概念=IDA,熟状态=)的信息,没有找到信息,就调用模块8.5。如果是不熟悉,则把好奇点(主体信息=IDA,好奇内容=含义)写入cf。
2.(代词的替换)如果是代词“他”“它”“她”,去语境变量依次(从最近出现的开始)考察每个具体对象是否是男人/动物/女人的子类,最先找到的具体对象为用来替换代词的对象。如果找到指向的具体对象,除了替换外,再把其在语境中的强度+1。
3.(对象类的替换)如果是对象类,需要两种可能的替换。其一,替换为词汇对应的对象类的ID;其二,去语境变量依次(从最近出现的开始)考察每个具体对象是否是其子类。最先找到的具体对象为此对象类对应词汇所指向的具体对象。如果找到指向的具体对象,除了替换外,再把其在语境中的强度+1。如果语境中没有子类,则建立一个具体对象ID,且记录此具体对象为此对象类的子类。
4.(属性类的替换)对于属性类型的概念,依次在语境中判断这个概念和语境中属性类概念的意向距离(模块8.4),如果小于阈值则用语境中的概念替换之。
5.(属性类的替换)如果一个属性类概念没有在语境中找到意向距离足够相近的概念,这个时候就在长期记忆中寻找意向距离足够小(低于阈值)且强度足够大(高于阈值)的概念,用词概念替换之。
Remark 1:第4条的依据:人类表述的时候习惯换着方式表述一个属性类的信息,如果不进行归一,运算将难以进行。第5条的依据:人类也会把对方表达中出现的概念归一到足够接近的自己熟悉的概念上,这样能有助于运算的发生。
Remark 2:比如“猫吃鱼”分词后为“猫w吃w鱼w”替换后为“猫cc/ac吃cc/ac鱼cc/ac”。
Remark 3:关于语境指代,有两种可以选择的策略。其一,语境中储存类似(语境类型=,具体对象=)这样的信息,如果遇到一个代词、对象类,就去此类语境记忆中寻找对象类后面的具体对象进行替代。其二,把最近出现的具体对象保存在语境中,比如(语境具体对象=),如果遇到一个代词或对象类,就可以去语境中依次判断那些出现过的具体对象是否是其子类。
这里我们选择第二种方式。第一种方式有一种缺陷,如果一个对象的母类很多,就无法决定语境类型后的母类是什么。如果AI选择了母类,而表达者用了另外一个母类去指向,AI就无法完成替换。
Remark 4:人类幼儿在刚刚学语言的时候,还不会询问某个概念是什么意思。因为结构性词汇很有限,到了人类开始询问一个不熟悉的概念的意思的时候,这些结构性词汇已经被作为一种结构标识存在了。所以我们不会看到儿童去询问结构性词汇的意思。
模块8.3a 正转录算子
描述:最初输入为概念替换词汇后的表达信息,之后为每次算子处理后输出的表达信息。按照特定顺序选取语法映射中的句子结构信息,匹配识别输入的表达信息中是否有此句子结构。如果有,对句子进行切分,根据语法映射,把切割出来的信息演绎为具体的表达信息单元。如果是陈述型的信息,则把切分出的信息替换为演绎出的结构信息ID;如果是指向型信息,则把切分出的信息替换为演绎后所指向的信息ID。如此,就把输入信息吸收掉一部分,且留下更简略的信息进行第二次算子作用,直到算子不再能产生反应。
隶属功能大类:自然语言正转录
输入:概念替换词汇的表达信息,对话者
逻辑机制:
1.调用模块8.6,根据对话来源对象,创造一个优先的语法映射匹配集合。这个优先匹配集合中包含了这个对象习惯使用的语法映射,以及这个对象所属的对象类习惯使用的语法映射。接下来需要检测语法映射的时候优先从这个集合中获取。
2.调用分句模块(模块8.3b),对每个可能的句子结构进行分句,进行统辖检测。具体而言就是把句子中结构性词汇前后的概念ID进行判断是否为表达结构对应位置的子类,如果符合则划分出来成为一个转录的单元。
3.当没有语法模板能精确匹配上的时候,调用模糊匹配(模块8.3c)。
4.从1开始重复内容直到句子不再剩下未解析的成分,或一次算子的运算停在第2步,无法找到匹配的句子结构。
5.如果无法找到匹配的句子结构,则把剩下的句子丢给模块(模块8.3c)对表达对应的表达单元信息进行猜想。
Remark:第一条逻辑是为了应对不同群体、不同个体特有的表达习惯。AI在熟悉这些表达习惯后就可以先用这些习惯对应的语法映射进行匹配,可以增加语法识别的效率和精确度。
模块8.3b
描述:这个模块按照特定顺序选取语法映射中的句子结构信息,匹配识别输入的表达信息中是否有此句子结构。
隶属功能大类:自然语言正转录
输入:正转录算子要处理的替换概念后的表达信息
输出:分句后的句子和对应的表达单元
逻辑机制:
1.优先寻找属性层的表达信息单元对应的句子结构,然后寻找事件层表达信息单元对应的句子结构,最后是事件关系层。
2.每次选定句子结构(模板)后,优先寻找句子中的结构性词汇,考察句子中结构性词汇前面和后面的概念是否是句子结构(模板)中对应概念的子类。如果是则继续向前后延伸,直到完成判断。
3.如果遇到并列表达符号,则把并列表达中的概念作为一个集合,考察是否都是句子结构(模板)中的概念的子类。如果没有并列表达的符号,则在一个模板匹配受阻的时候,考察延伸匹配的概念是否和上一个是相同类型的——都属于结构模板中对应概念的子类,此时也可以视为并列表达的元素。
4.如果遇到分句符号则停止。
5.如果此时句子中信息只覆盖部分的表达单元信息中的元素,且没有其他已有的严格匹配,这时考察剩下的元素是否在语境中有其子类,从最近的开始寻找。如果找到我们认为的这个语境中的子类就是省略的内容,就用此信息填补缺失。这条逻辑用于实现表达中省略信息的识别和补全。
6.如果完成判断,则输出:
(1)对应的语法映射。[句子结构(模板)到表达单元信息的映射]
(2)句子结构(模板)中的概念到句子中具体概念的统辖映射。(如果有并列表达生成多个统辖映射)
(3)利用(1)和(2)的信息执行演绎。(模块:8.3d)(如果有并列表达,执行多次演绎生成多条信息)
7.如果演绎出信息是对象属性,比如属性A。
(1)寻找语境中该对象的属性,依次调用模块8.4判断属性A和语境中属性的意向相似度。如果低于阈值,则用语境中的属性替换之;如果完全相同的对象属性已经存在,则直接增加其在语境中的频次强度,并且把语境中这条对象属性信息增加5的频次强度。
(2)如果没有找到,则在长期记忆中寻找频次强度超过阈值的属性,利用模块8.4计算和这些属性的意向相似度。如果低于阈值,则用语境中的属性替换之,同时增加账期记忆中这个属性的频次强度,并把对象属性写入语境。
8.如果演绎出的是对象事件,比如事件B。
在事件类中查找属性、行为效果、行为是否是描述对象的合法信息。如果不是则意味着存在比喻,找到属性、行为、行为效果的意向。
9.如果演绎出的是对象事件,比如事件B。
(1)依次寻找语境中的事件,考察是否有相同的事件。如果有,增加其频次强度。
(2)在语境猜想事件中,寻找(事件=事件A,可能原因/可能结果=事件i),对每个事件i统辖检测是否是事件B的母类。如果是,则删除(事件=事件A,可能原因/可能结果=事件i),替换为(事件=事件A,原因/结果=事件B)。
(3)调用模块8.7a考察此事件B和语境中事件的因果相关性。如果识别到和语境中事件A的因果相关性,则在语境中记录这种因果相关性。
(4)如果没有识别到相关性,则调用模块8.8,输出这个事件可能的原因和导致的事件(记为事件B)。写入到语境中,标注为(事件=事件A,可能原因/可能结果=事件B)。
10.如果演绎出的表达信息单元是陈述或是指向,则在句子中用陈述或指向信息的ID替换之。
模块8.3c 模糊匹配(语法学习)
描述:这个模块在无法完成精确匹配的时候被触发,利用模糊匹配寻找相近的句子结构。
隶属功能大类:自然语言正转录
输入:概念替换词汇后的表达信息
逻辑机制:
1.忽略结构性词汇和顺序,只考察其中的概念,搜索是否有一个句子结构模板能完全统辖覆盖它。
2.如果找到则认为通过模糊匹配。
3.通过模糊匹配,则输出:
(1)对应的语法映射。(表达结构到表达信息单元的映射)
(2)过程中语法模板中的概念到句子中具体概念的统辖映射。(如果有并列表达,生成多个统辖映射)
(3)用输出的内容执行演绎。(模块:8.3d)(如果有并列表达,执行多次演绎生成多条信息)
(4)把输出的内容——识别到的表达单元信息,和输入的内容——概念替换词汇后的表达信息,作为输入,执行语法抽象运算。(语言系统:第十章 语言的习得)
Remark:A统辖覆盖B的定义为“B中任意一个概念的某个母类必定是一个A中的概念”。
模块8.3d
描述:这个模块根据句子结构模板到表达单元信息的映射,用分句后的句子演绎出具体的表达信息单元。
隶属功能大类:自然语言正转录
逻辑机制:
1.演绎输出过程参考演绎。
2.如果是一个指向,就在记忆中进行搜索。如果搜索不到,则生成对应关系信息,然后返回指向的ID;如果搜到,则直接返回指向的ID。
3.把指向的ID写入语境记忆中,初始化强度为5。
模块8.4
描述:这个模块计算两个概念之间的意向接近度。
隶属功能大类:自然语言正转录
输入:两个概念,比如(概念A、概念B)
输出:意向接近度
逻辑机制:
1.读取概念A和概念B的意向向量,比如a=(a1, a2, ……an), b=(b1, b2, ……bn)。
2.接下来通过基础意向之间的“投影矩阵T”,计算aTb,即为概念A和概念B之间的意向接近度。
Remark:意向“投影矩阵”描述了两两基础意向之间意向接近度。
模块8.5
描述:这个模块计算一个概念的信息完备度,决定一个概念是否仍然需要询问学习。
隶属功能大类:自然语言正转录
输入:一个概念节点IDA
输出:熟悉状态标记信息(概念IDA,熟悉状态=熟悉)(概念IDA,熟悉状态=不熟悉),好奇点(主体信息=IDA,好奇内容=含义)。
逻辑机制:
1.寻找这个概念所有的意向关系,对这些关系的强度进行求和。
2.寻找这个概念的定义。
3.如果概念有定义或是概念的意向关系强度超过阈值,我们认为这个概念是熟悉的,否则这是不熟悉的。
4.如果是熟悉的内容则进行标注(概念=IDA,熟悉状态=熟悉);如果是不熟悉的就进行标注(概念IDA,熟悉状态=不熟悉),且生成一个好奇点(主体信息=IDA,好奇内容=含义)。
模块8.6
描述:这个模块利用语言第6章模块x(语法抽象模块)维护的不同群体或个体语法映射的频次强度,找出对话者可能使用的语法映射,放入一个集合,以增加正转录运算的效率和准确度。
隶属功能大类:自然语言正转录
输入:对话者ID
输出:语法映射集合
逻辑机制:
1.输出这个对话者强度高于阈值的母类。
2.就对话者ID和找到的母类寻找结构信息(语法映射=,语法来源=对话者ID/对话者母类)。
3.把搜索到的语法映射信息放入集合。
模块8.7a
描述:这个模块读取两个具体事件来判断是否存在因果相关性。
隶属功能大类:自然语言正转录
输入:广义事件A、广义事件B
逻辑机制:
1.读取广义事件A,在因果知识组织的事件类集合中,就事件A在其中进行统辖搜索,找到所有统辖事件A的知识。
2.然后在上面找到的知识中,逐条寻找知识组织的另外一部分事件是否是广义事件B的母类。
3.如果是,则找到一条组织广义事件A和广义事件B的知识,增加找到知识的频次强度。
4.输出找到的(事件=事件A,创造=事件B)子类的具体事件层的因果关系信息。
模块8.7b
描述:这个模块读取两个具体事件来判断是否存在意向层面的因果相关性。
隶属功能大类:自然语言正转录
输入:广义事件A、广义事件B
逻辑机制:
1.读取广义事件A,在意向类因果知识组织的事件类集合中,就事件A在其中进行意向统辖搜索,找到所有统辖事件A的知识。
2.然后在上面找到的知识中,逐条寻找知识组织的另外一部分事件是否是广义事件B意向层的母类。
3.如果是,则找到一条组织广义事件A和广义事件B的意向层的知识,增加找到知识的频次强度。
4.输出找到的[事件=事件A,创造(意向)=事件B]子类的具体事件层的因果关系信息。
模块8.8
描述:这个模块读取一个具体事件,通过因果层的知识,输出其很可能有因果相关的事件。
输入:广义事件A
逻辑机制:
1.读取广义事件A,在因果知识组织的事件类集合中,就事件A在其中进行统辖搜索,找到所有统辖事件A的知识。
2.演绎出因果知识组织的另外一部分的事件。
Remark 1:事件的相关性可能是意向层面的。
Remark 2:缺少相对关系的替换,缺少并列表达的处理。