3.5 依存句法分析
依存句法分析在机器翻译中经常用到,主要针对句子和短语进行结构化分析,用于确定句子中的词与词、短语与词等之间的相互关系,并利用树结构进行层次化表达。它是自然语言处理的关键问题之一。
3.5.1 依存句法分析概要
从搜索引擎的角度来看,依存句法分析可以使搜索引擎更加准确地理解文本信息,例如,确定句子中的词语相互关系及特定修饰性词语,尤其是在智能搜索中,对句子的理解往往决定了数据理解的方向。例如,对于搜索句子“马云的淘宝网创办于什么时候”,通过句法分析,可以得到搜索句子的搜索重心是词语“创办”,而不是“马云”或者“淘宝网”,“马云”“淘宝网”仅仅是核心成分的修饰词而已,用户期望的搜索结果也与“马云”没有直接关系,而“淘宝网创办”才是整个搜索的核心。
依存句法分析需要通过机器学习的方式进行。以清华大学汉语均衡语料库TH-ACorpus中的中文语义依存关系分析语料库为例,如表3-19所示。
表3-19 中文语义依存关系分析语料库
如表3-19所示为语料库内容的一般形式,也可以将其表达为依存句法关系图和依存句法关系树,分别如图3-10和图3-11所示。
图3-10 “伊斯兰世界的又一奇迹”的依存句法关系图
图3-11 “伊斯兰世界的又一奇迹”的依存句法关系树
“马云的淘宝网创办于什么时候”的依存句法关系树如图3-12所示。
图3-12 “马云的淘宝网创办于什么时候”的依存句法关系树
语料库中的依存关系包括主语义关系、辅助语义关系、定状语语义关系、连动词及从句语义关系、特殊句法结构、特殊关系,如表3-20所示。
表3-20 语料库中的依存关系种类集合
3.5.2 依存句法分析实现
按照传统的方式进行依存句法分析,主要分为两个步骤:判定和分类。判定是一个二分类问题,用于判定两个词语之间是否存在依存关系;而分类则是一个多分类问题,通过依存关系判定在确定句子成分之间存在依存关系的情况下,依存关系分类给句子成分之间确定其所属的关系。传统的依存句法分析方式相对比较复杂,也可以采用最大生成树模型构建依存句法分析器。
基于最大生成树模型的依存句法分析的大致思路为:首先,通过计算两个词语A和B之间的依存关系概率、词语A的词性与词语B构建依存关系概率、词语B的词性与词语A构建依存关系概率,以及词语A、B词性之间的依存关系概率,计算词语A和词语B之间的多条依存句法边,权值为上述计算的4种概率的综合;其次,取权值最大的边作为唯一的边,并加入有向图中;最后,在有向图中利用Prim算法构造最大生成树。例如,对句子“我看电影”进行依存句法分析,大致步骤如下。
(1)分词与词性标注。对“我看电影”进行分词和词性标注,结果为“我\rr看\v电影\n”。
(2)确定图节点。在图3-10中,所有数据节点中还包含一个“Root”节点,它是句子中核心成分指向的点。因此,在引入“Root”节点之后,对于“我看电影”则存在4个点,分别是“#核心成分#\Root”“我\rr”“看\v”“电影\n”。
(3)生成有向图。在生成有向图之前,需要获得词语与词语之间的依存关系情况,而这些则通过计算类似表3-19中的语料库信息而得。上一步已经确定图中存在4个点,则这4个点两两之间都可能存在依存关系,所以一共会构成12条边(值)。图中4个点之间的关系如表3-21所示。
表3-21 “#核心成分#\Root、我\rr、看\v、电影\n”的依存关系统计
根据表3-21中的依存关系统计信息生成有向图,如图3-13所示。图中从“看”到“我”之间的边信息“连接依存(0.05)、施事(0.04)”表示两条边的集合,括号内为边的带权值。
图3-13 “#核心成分#\Root、我\rr、看\v、电影\n”生成的有向图
(4)利用Prim算法构造最大生成树。最大生成树实质上是在图3-13中选择一条最佳带权路径,使得路径权值之和最大。首先,从图3-13中点“核心成分”开始,选择指向它的最大路径权值0.38对应的点“看”,按照Prim算法,此刻再选择距离“核心成分”与“看”路径权值最大的点,但是由于依存句法中“核心成分”仅允许存在一项,因此不再以“核心成分”作为观察点,选择距离点“看”拥有最大路径权值0.29的点“电影”;其次,对点“看”和“电影”选择指向它们的拥有最大路径权值0.22的点“我”,执行到此步已经不存在未被访问的点,则意味着上述过程完成了最大生成树的选择。因此,“#核心成分#\Root、我\rr、看\v、电影\n”构造的最大生成树如图3-14所示。
图3-14 “#核心成分#\Root、我\rr、看\v、电影\n”构造的最大生成树
在构造最大生成树之后,可以依据最大生成树构建依存句法关系图。如图3-15所示为“我看电影”的依存句法关系图。
图3-15 “我看电影”的依存句法关系图