【发布时间】:2012-01-27 23:55:02
【问题描述】:
我正在尝试从 python 中调用 Java 程序(Stanford Chinese Word Segmenter)。 Java 程序需要加载一个大的(100M)字典文件(辅助切分的单词列表),这需要 12 秒以上。我想知道是否可以加快加载过程,更重要的是,当我需要多次调用python脚本时,如何避免重复加载?
以下是代码的相关部分:
op = subprocess.Popen(['java',
'-mx2g',
'-cp',
'seg.jar',
'edu.stanford.nlp.ie.crf.CRFClassifier',
'-sighanCorporaDict',
'data',
'-testFile',
filename,
'-inputEncoding',
'utf-8',
'-sighanPostProcessing',
'true',
'ctb',
'-loadClassifier',
**'./data/ctb.gz',**
'-serDictionary',
'./data/dict-chris6.ser.gz',
'0'],
stdout = subprocess.PIPE,
stdin = subprocess.PIPE,
stderr = subprocess.STDOUT,
)
在上面的代码中,'./data/ctb.gz'是加载大词表文件的地方。我认为这可能与流程有关,但我对此了解不多。
【问题讨论】:
标签: java python performance process persistence