我需要从一个大语料库的英语和德语文本中提取句子、标记、pos标记和引理。所以,我使用了斯坦福大学的CoreNLP工具。它的输出是完美的。然而,问题在于时间的复杂性。英文版本执行得很快,但德语模式需要很长时间才能对文本进行注释。我用以下代码初始化模型:
// To initialize English model
propsEN = new Properties();
propsEN.setProperty("annotators", "tokenize, ssplit, pos, lemma");
propsEN.setProperty("tokenize.language", "en");
corenlpEN = new StanfordCoreNLP(propsEN);
// To initialize German model
propsDE = new Properties();
propsDE.setProperty("annotators", "tokenize, ssplit, pos, lemma");
propsDE.setProperty("tokenize.language", "de");
corenlpDE = new StanfordCoreNLP(propsDE);为了表示执行时间的差异,我计算了每个文本的长度和每个模型在文本上运行所需的时间。为了计算执行时间,我使用了System.currentTimeMillis()指令:
对英文文本执行斯坦福CoreNLP模型:
英语文本length=1587 -- Elapse time=57 英语文本length=15906 -- Elapse time=160 英语文本length=44286 -- Elapse time=3287 英语文本length=19814 -- Elapse time=1809 英语文本length=1427 -- Elapse time=166 英语文本length=56787 -- Elapse time=2374
对德文执行斯坦福CoreNLP模型:
德文length=979 -- Elapse time=401 德文length=22039 -- Elapse time=15285 德文length=30632 -- Elapse time=21659 德文length=42019 -- Elapse time=21767 德文length=2944 -- Elapse time=2005 德文length=76248 -- Elapse time=48857
为什么德国模特要花几次时间?我犯了什么错误吗?有什么办法解决这个问题吗?
如有任何关于这个主题的信息,我们将不胜感激。
发布于 2018-06-20 01:33:39
我不知道这会不会有帮助,但你没有使用德语部分的标记语。您可以使用pos.model属性设置它。
下面是一个选项列表(确保您有德国型号的jar):
edu/stanford/nlp/models/pos-tagger/german/german-fast.tagger
edu/stanford/nlp/models/pos-tagger/german/german-hgc.tagger
edu/stanford/nlp/models/pos-tagger/german/german-fast-caseless.tagger
edu/stanford/nlp/models/pos-tagger/german/german-ud.tagger另外,德语也没有lemma。
https://stackoverflow.com/questions/50924921
复制相似问题