Stanford Parser - Constituent to Dependency Conversion

版权声明:欢迎转载,转载需要明确表明转自本文 https://blog.csdn.net/u012442157/article/details/79154648

Constituent to Dependency Conversion

目的:已经处理好的短语句法分析树转成依存句法分析树

短语句法分析的例子:

(ROOT (IP-HLN (NP-SBJ (NP-PN (NR 中国)) (ADJP (JJ 最大)) (NP (NN 氨纶丝) (NN 生产) (NN 基地))) (VP (PP-LOC (P 在) (NP-PN (NR 连云港))) (VP (VV 建成)))))

依存句法分析的例子:

[nn(基地-5, 中国-1), amod(基地-5, 最大-2), nn(基地-5, 氨纶丝-3), nn(基地-5, 生产-4), nsubj(建成-8, 基地-5), prep(建成-8, 在-6), pobj(在-6, 连云港-7), root(ROOT-0, 建成-8)]

或者

1 中国 _ NR NR _ 5 nn _ _
2 最大 _ ADJ JJ _ 5 amod _ _
3 氨纶丝 _ NOUN NN _ 5 nn _ _
4 生产 _ NOUN NN _ 5 nn _ _
5 基地 _ NOUN NN _ 8 nsubj _ _
6 在 _ P P _ 7 case _ _
7 连云港 _ NR NR _ 8 prep _ _
8 建成 _ VV VV _ 0 root _ _

具体代码

这里需要导入https://nlp.stanford.edu/software/lex-parser.shtml#Download最新的包

    TreebankLanguagePack ctlp = new ChineseTreebankLanguagePack();
    //ctlp.setGenerateOriginalDependencies(true);
    Predicate<String> predicate = (v1) -> {
           return true;
       }; 
    GrammaticalStructureFactory gsf = ctlp.grammaticalStructureFactory(predicate);
    String str = "(ROOT (IP-HLN (NP-SBJ (NP-PN (NR 中国)) (ADJP (JJ 最大)) (NP (NN 氨纶丝) (NN 生产) (NN 基地))) (VP (PP-LOC (P 在) (NP-PN (NR 连云港))) (VP (VV 建成)))))";
    Tree parseTree = Tree.valueOf(str);
    GrammaticalStructure gs = gsf.newGrammaticalStructure(parseTree);
    Collection<TypedDependency> tdl = gs.typedDependencies();
    System.out.println(tdl);

如果需要保留标点符号,或者生成更加Conll格式,最好使用老版本的jar包。

猜你喜欢

转载自blog.csdn.net/u012442157/article/details/79154648