自然语言形式化中的转换分析
1. 自然语言转换操作的基本需求
在自然语言处理中,有时需要对文本进行循环修改和重新解析。要应用一系列转换操作,就必须重新设计每个转换操作,使其不仅能应用于基本句子,还能应用于已经转换过的句子。例如,[Neg]→操作可能会被多次应用,先修改“Joe wants to eat the apple”,再修改已经转换后的句子“It is the apple that he does not want to eat”。显然,实现完整[Neg]→操作(能够处理任何句子)的语法构建要比图中所示复杂得多。
2. 转换序列模型的理论问题
尽管大多数当代语言学家使用转换序列模型,但该模型至少存在四个问题:
-
转换序列的等价性
- 不同的转换序列有时会产生相同的句子,有时则不会。例如:
- (1a) Joe saw the car [Pro0][Neg][Cleft0] → It is he who did not see the car
- (1b) Joe saw the car [Neg][Pro0][Cleft0] → It is he who did not see the car
这两个不同序列产生了相同的句子。
- (2a) Joe saw the car [Cleft0][Neg] → It is not Joe who saw the car
- (2b) Joe saw the car [Neg][Cleft0] → It is Joe who did not see the car
这两个序列产生了不同的句子。
- 语言的形式化应该能够预测不同转换序列是否产生相同结果,以及给定句子的不同分析是否等价。但由于潜在转换序列数量无限,很难对转换序列的等价性进行形式化。
-
转换后句子的歧义性
- 同一个句子可能由不同的转换序列产生,有时有歧义,有时没有。例如:
- (3a) Joe loves Lea + Joe loves Ida too [CoordV]→ Joe loves Lea, and Ida too
- (3b) Joe loves Lea + Ida loves Lea too [CoordVN1]→ Joe loves Lea, and Ida does too [doZ]→ Joe loves Lea, and Ida too
这里“Joe loves Lea, and Ida too”由两个不同序列产生,具有歧义。
- 转换模型应能解释为何不同转换序列有时产生有歧义的结果,有时产生无歧义的结果。同样,由于转换序列数量无限,很难区分不同但等价的转换序列和不同但不等价的转换序列。
-
理论句子的处理
- 以“我们喝这种药水”的转换序列为例:We drink this potion [MODcan]→ We can drink this potion [Passive]→ This potion can be drunk [Vable]→ This potion is drinkable。但该序列会产生许多中间语法序列,如“We bear Joe [MODcan]→ We can bear Joe [Passive]→
Joe can be borne [Vable]→ Joe is bearable”,对于中间句子“
Joe can be borne”有两种处理方法:
- 将其描述为理论句子,允许使用转换序列,但语言的生成语法识别理论句子会带来很多问题,尤其是在生成时不希望产生这些句子,并且会与实际句子产生人为歧义。
- 构建直接转换,如[MODcanPassiveVable] One can bear Joe = Joe is bearable。但这种方法会大幅增加直接转换的数量,因为每个例外都需要构建一个与转换序列等价的直接复杂转换,而且直接转换与转换序列方法相悖,因为它们是冗余的。
-
需实现的转换数量
- 通常,为基本句子开发的转换操作不一定能应用于已转换的句子。以[Passive]→操作为例:
- 对“He loves Lea”应用基本[Passive]→操作会产生错误句子“* Lea is loved by he”,正确结果应该是“Lea is loved by him”,这就要求[Passive]→语法考虑主语为“he”的句子。
- 对否定句应用[Passive]→操作时,需要删除“does”并将否定附加到“be”动词上。
- [Passive]→操作还需要考虑动词为复合时态、与其他操作、情态或体动词结合以及句子结构重组等情况。
- 评估这样一个系统的复杂性时,补充[Passive]→语法以识别所有被动句相当于为每种已转换的句子类型构建一组特定语法,即构建专门操作。如果以一千个基本转换为基础,仅实现[Passive]→操作就需要考虑1000种句子结构,构建一千个专门操作。如果要描述1000个转换,涉及两个转换时可能需要构建100万个专门操作,涉及三个转换时需要构建10亿个专门操作,分析包含多达六个转换的句子时,需要构建$10^{18}$个专门操作。
下面用mermaid流程图展示转换操作的复杂性:
graph LR
A[基本句子] --> B[转换操作1]
B --> C[已转换句子1]
C --> D[转换操作2]
D --> E[已转换句子2]
A --> F[转换操作3]
F --> G[已转换句子3]
G --> H[转换操作4]
H --> I[已转换句子4]
C --> J[转换操作5]
J --> K[已转换句子5]
E --> L[转换操作6]
L --> M[已转换句子6]
3. NooJ的转换分析方法
由于应用基本转换操作序列存在严重理论问题,且仅使用直接转换操作数量无限,同时转换语法与语言的生成语法存在大量冗余,因此NooJ采用其解析器和生成器协同工作的方式,使用单一语法来分析和生成语言中的所有句子。
3.1 以“生成”模式应用语法
NooJ自动进行转换分析和生成,无需在生成语法中添加转换操作。语言形式化中没有独立的“转换”层次,每个句子的转换是从识别该句子的生成语法计算得出的。NooJ的基本思路是在分析和生成模式中都使用生成语法。例如,如果一个给定语法识别以下句子:
- Joe eats an apple.
- Joe does not eat an apple.
- An apple is eaten by Joe.
- It is Joe who eats an apple.
- It is Joe who does not eat an apple. 等。
那么NooJ既能识别也能生成这些句子。这些句子之间的等价性通过生成器能够根据任何一个句子生成所有这些句子而存在,即生成语法定义了转换等价类。
下面是一个简单的表格展示不同句子及其对应的转换特征:
| 句子 | 转换特征 |
| — | — |
| Joe eats an apple. | 无 |
| Joe does not eat an apple. | +Neg |
| An apple is eaten by Joe. | +Passive |
| It is Joe who eats an apple. | +Cleft0 |
| It is Joe who does not eat an apple. | +Cleft0, +Neg |
3.2 转换的参数
目标是构建一个既能解析又能生成语言中任何句子的语法。为确保系统生成的句子与分析的句子具有相同的参数且参数位置正确,使用NooJ全局变量。例如,将分析句子的主语存储在变量@S中,动词存储在变量@V中,直接宾语存储在变量@O中。对于简化语法,当应用于“my cousin eats the cake”时:
- 变量@S的值为“my cousin”。
- 变量@V的值为“eats”。
- 变量@O的值为“the cake”。
当该语法用于生成模式时,NooJ会生成两个序列:
- @S @V @O.
- @S does not @V @O
由于变量以ALUs为值而非简单词形,@V可以对应多种词形。在图的顶部路径中施加约束
,底部路径施加约束
,最终生成句子:
- my cousin eats the cake.
- my cousin does not eat the cake.
将此语法应用于大量及物句子时,NooJ会生成相应的否定句子。同时,为了给生成的句子关联代表转换的分析,会在语法中添加输出。例如,解析“Joe does not see my cousin”时,语法会生成七个句子,如“It is my cousin that Joe sees”并关联输出+ Cleft1(宾语提取),“my cousin is not seen”关联特征+ Passive、+ Neg和+ Z0(删除主语)。英语NooJ模块中的语法处理代词、主谓一致、潜在名词化、情态和体动词、强化词等,能生成超过200万个及物陈述句和300万个疑问句。
综上所述,通过构建识别所有可相互转换句子的生成语法,可以描述大量转换,该语法可按需解析和生成一组等价句子,并为每个匹配或生成的句子提供转换分析。
4. 问答系统中的应用
问答是自然语言处理的一个试点项目,直到2007年都是TREC会议年度竞赛的主题。问答系统通常是一个软件应用程序,它处理查询(问题)并通过解析潜在的大量文本语料库(如维基百科甚至整个网络)来找到答案。
像NooJ这样的转换引擎可以作为问答软件的基础。基本思想是,一个问题如“Where did Obama go?”可以看作是基本句子“Obama went to India”的转换版本。这样就可以构建一个自动应用程序,为给定问题在文本中找到所有其转换后的句子(即答案)。
通过在语法中添加术语和表达式的同义词,可以进一步推广转换的概念。例如,希望前面的问题也能找到以下句子:
- … President Obama and the First Lady traveled to India this week…
- … the President is the first to have visited India…
为了建立这种对应关系,需要将“to go to”动词与其同义词“to travel to”和“to visit”关联起来,同样,需要将“President”(以及其他同义词:Chief of State, Head of State, Commander in Chief等)与专有名称“Barak Obama”关联起来。
下面是一个问答系统使用转换引擎的简单流程图:
graph LR
A[输入问题] --> B[转换引擎处理]
B --> C[在文本语料库中查找转换后的句子]
C --> D[输出答案]
问答系统利用转换引擎的优势在于能够更灵活地匹配问题和答案,通过同义词关联等方式扩大搜索范围,提高找到准确答案的可能性。但也面临一些挑战,如如何准确判断转换后的句子是否真正是问题的答案,以及如何处理复杂的语义和语境信息。未来,可以进一步研究如何优化转换引擎在问答系统中的应用,结合更多的自然语言处理技术,如语义理解、知识图谱等,提高问答系统的性能和准确性。
自然语言形式化中的转换分析
5. 转换引擎在问答系统中的具体操作步骤
要将转换引擎应用于问答系统,需要遵循以下具体操作步骤:
5.1 数据准备
- 收集语料库 :收集一个包含大量文本的语料库,如维基百科、新闻文章、学术论文等。这个语料库将作为查找答案的基础。
- 构建同义词词典 :整理术语和表达式的同义词,例如将“to go to”与“to travel to”、“to visit”关联,将“President”与“Chief of State”、“Head of State”、“Commander in Chief”等关联。可以使用现有的词库如WORDNET,也可以手动整理。
以下是一个简单的同义词词典示例表格:
| 原词 | 同义词 |
| — | — |
| to go to | to travel to, to visit |
| President | Chief of State, Head of State, Commander in Chief |
5.2 问题处理
- 输入问题 :用户输入一个问题,例如“Where did Obama go?”
- 问题转换 :利用转换引擎,根据生成语法将问题转换为多种可能的形式。这可能包括改变句子结构、添加或删除某些成分等。例如,可能将问题转换为“Obama went where?”等形式。
- 同义词替换 :根据同义词词典,将问题中的术语替换为其同义词。例如,将“go”替换为“travel”或“visit”。
5.3 语料库搜索
- 在语料库中查找 :将转换后的问题在语料库中进行搜索,查找与之匹配的句子。可以使用字符串匹配、正则表达式等方法。
- 筛选结果 :对搜索到的结果进行筛选,排除明显不相关的句子。可以根据句子的上下文、语义等进行判断。
5.4 答案输出
- 确定答案 :从筛选后的结果中确定最可能的答案。可以根据句子与问题的匹配程度、句子的可信度等进行评估。
- 输出答案 :将确定的答案输出给用户。
下面用mermaid流程图展示问答系统的详细操作流程:
graph LR
A[输入问题] --> B[问题转换]
B --> C[同义词替换]
C --> D[在语料库中查找]
D --> E[筛选结果]
E --> F[确定答案]
F --> G[输出答案]
6. 转换分析的优势与挑战总结
6.1 优势
- 统一语法处理 :NooJ使用单一语法进行分析和生成,避免了构建独立“转换语法”带来的冗余问题。通过生成语法定义转换等价类,能够高效地处理大量的句子转换。
- 灵活性和扩展性 :在问答系统中应用转换引擎,通过添加同义词和转换规则,可以灵活地匹配问题和答案,扩大搜索范围,提高找到准确答案的可能性。
- 自动处理 :NooJ能够自动进行转换分析和生成,无需手动添加大量的转换操作,提高了处理效率。
6.2 挑战
- 理论问题处理 :转换序列模型存在等价性、歧义性、理论句子处理和转换数量等理论问题,虽然NooJ提出了一些解决方案,但仍然面临一定的挑战。例如,难以对转换序列的等价性进行形式化,处理理论句子可能会带来新的问题。
- 语义和语境理解 :在问答系统中,准确判断转换后的句子是否真正是问题的答案,需要深入理解语义和语境信息。目前的方法在处理复杂的语义和语境时还存在不足。
- 系统复杂性 :随着处理的句子类型和转换规则的增加,系统的复杂性会大幅提高。例如,实现[Passive]→操作需要考虑多种句子结构,构建大量的专门操作。
7. 未来发展方向
- 结合更多技术 :将转换分析与其他自然语言处理技术如语义理解、知识图谱、机器学习等相结合,提高系统对语义和语境的理解能力。例如,利用知识图谱可以更好地处理实体之间的关系,提高问答系统的准确性。
- 优化转换规则 :进一步研究和优化转换规则,减少理论问题的影响。例如,探索更有效的方法来处理转换序列的等价性和歧义性,降低系统的复杂性。
- 多语言支持 :将转换分析扩展到更多语言,开发适用于不同语言的转换引擎和问答系统。不同语言的语法和语义特点不同,需要针对性地进行研究和开发。
以下是一个简单的列表总结未来发展方向:
- 结合语义理解、知识图谱和机器学习等技术
- 优化转换规则,减少理论问题
- 实现多语言支持
通过不断地研究和改进,自然语言形式化中的转换分析有望在问答系统、机器翻译、信息检索等领域取得更好的应用效果,为自然语言处理的发展做出更大的贡献。
超级会员免费看
4809

被折叠的 条评论
为什么被折叠?



