对HanLP1.8.1的两种依存句法分析器分别设定分词器,其中KBeamArcEagerDependencyParser会出现问题。构建的解析树中边和边关系均不正确。
分析“上海华安工业(集团)公司董事长谭旭光和秘书胡花蕊来到美国纽约现代艺术博物馆参观”这个例子时,结果为:
1 上海华安工业(集团)公司 上海华安工业(集团)公司 n nt _ 8 dep _ _
2 董事长 董事长 n n _ 8 dep _ _
3 谭旭光 谭旭光 n nr _ 8 dep _ _
4 和 和 c c _ 8 dep _ _
5 秘书 秘书 n n _ 8 dep _ _
6 胡花蕊 胡花蕊 n nr _ 8 dep _ _
7 来到 来到 v v _ 8 dep _ _
8 美国纽约现代艺术博物馆 美国纽约现代艺术博物馆 n ns _ 0 ROOT _ _
9 参观 参观 v v _ 8 dep _ _
上面的结果中分词是按照分词器来了,但是边关系全部变为dep,边也不对
而如果不特别设定分词器的话,结果为:
1 上海 上海 N NR _ 7 nn _ _
2 华安 华安 N NR _ 7 nn _ _
3 工业 工业 N NN _ 7 nn _ _
4 ( ( P PU _ 5 punct _ _
5 集团 集团 N NN _ 7 nn _ _
6 ) ) P PU _ 5 punct _ _
7 公司 公司 N NN _ 8 nn _ _
8 董事长 董事长 N NN _ 12 nn _ _
9 谭旭光 谭旭光 N NR _ 12 conj _ _
10 和 和 C CC _ 12 cc _ _
11 秘书 秘书 N NN _ 12 nn _ _
12 胡花蕊 胡花蕊 N NR _ 13 nsubj _ _
13 来到 来到 V VV _ 0 ROOT _ _
14 美国 美国 N NR _ 18 nn _ _
15 纽约 纽约 N NR _ 18 nn _ _
16 现代 现代 J JJ _ 18 amod _ _
17 艺术 艺术 N NN _ 18 nn _ _
18 博物馆 博物馆 N NN _ 13 dobj _ _
19 参观 参观 V VV _ 13 conj _ _
NeuralNetworkDependencyParser中不会出现这样的问题,设定分词器后可以正确解析:
1 上海华安工业(集团)公司 上海华安工业(集团)公司 ni nt _ 2 定中关系 _ _
2 董事长 董事长 n n _ 3 定中关系 _ _
3 谭旭光 谭旭光 nh nr _ 7 主谓关系 _ _
4 和 和 c c _ 6 左附加关系 _ _
5 秘书 秘书 n n _ 6 定中关系 _ _
6 胡花蕊 胡花蕊 nh nr _ 3 并列关系 _ _
7 来到 来到 v v _ 0 核心关系 _ _
8 美国纽约现代艺术博物馆 美国纽约现代艺术博物馆 ns ns _ 7 动宾关系 _ _
9 参观 参观 v v _ 7 并列关系 _ _
示例
IDependencyParser parser = new KBeamArcEagerDependencyParser();
parser.setSegment(HanLP.newSegment("viterbi"));
CoNLLSentence sentence = parser.parse("上海华安工业(集团)公司董事长谭旭光和秘书胡花蕊来到美国纽约现代艺术博物馆参观");
尝试了感知器,viterbi两种分词器都存在这个问题,是咋回事呢