Stanford CoreNLP在其他语言的执行时间

时间:2018-06-19 09:27:13

标签: stanford-nlp

我需要从大型语料库的英语和德语文本中提取句子,标记,pos标签和引理。所以,我使用了Stanford 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()指令:

在英文文本上执行Stanford CoreNLP模型:

  

英文文本长度= 1587 --- Elapse time = 57

     

英文文本长度= 15906 --- Elapse time = 160

     

英文文本长度= 44286 --- Elapse time = 3287

     

英文长度= 19814 --- Elapse time = 1809

     

英文文本长度= 1427 --- Elapse time = 166

     

英文文本长度= 56787 --- Elapse time = 2374

在德语文本上执行Stanford CoreNLP模型:

  

德文长度= 979 --- Elapse time = 401

     

德文长度= 22039 --- Elapse time = 15285

     

德文长度= 30632 --- Elapse time = 21659

     

德文长度= 42019 --- Elapse time = 21767

     

德文长度= 2944 --- Elapse time = 2005

     

德文长度= 76248 --- Elapse time = 48857

为什么德国模特需要多次?我犯了什么错吗?有什么解决方案可以解决这个问题吗?

感谢您提供有关此主题的任何信息。

1 个答案:

答案 0 :(得分:1)

我不知道这是否有帮助,但是您没有使用德语的语音标记器。您可以使用pos.model属性进行设置。

以下是选项列表(确保您拥有德国型号的罐子):

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