我使用斯坦福解析器的命令行:斯坦福解析器的处理时间和存储器消耗
java -mx1500m -cp stanford-parser.jar;stanford-parser-models.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser -outputFormat "penn" edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz {file}
当我在单个句子运行命令与27个即,Java进程正在消耗的100MB内存和解析需要1.5秒。 当我用148个单词在单个句子上运行命令时,Java进程占用1.5GB的内存,解析需要1.5分钟。
我正在使用的机器是Windows 7与英特尔i5 2.53GH。
这些加工时间是否合理? 解析器是否有任何官方性能基准?
(1)给出27个单词的1.5秒,这听起来很合理。你会期望可能的解析增加更多,每句更多的话。问题是你为什么用148个单词解析一个句子?自然语言处理可能不是一个很自然的句子。 (2)没有人喜欢对NLP工具进行基准测试,它体积庞大,除非您执行一些分布式计算技巧,否则不会是实时的。 – alvas
同意@ 2er0:148可能是一个太长的句子。你能给我们判刑吗? – Renaud
谢谢,@ 2er0和Renaud。 我想你回答了我的问题。我只是想验证1.5秒到27个字的句子是否合理,并且我没有做出完全错误的事情。 我同意148个单词的句子是不合理的。 我解析这么长的句子的原因是因为我有一个可以接收任何输入的系统。 当句子最后没有用点打断时,NLP引擎不能正确地分割它们 - 有时候我会得到如此长的句子。 –