NLTK包和其他依赖项出错

问题描述 投票:1回答:1

我已经安装了NLTK包和其他依赖项,并按如下方式设置环境变量:

STANFORD_MODELS=/mnt/d/stanford-ner/stanford-ner-2018-10-16/classifiers/english.all.3class.distsim.crf.ser.gz:/mnt/d/stanford-ner/stanford-ner-2018-10-16/classifiers/english.muc.7class.distsim.crf.ser.gz:/mnt/d/stanford-ner/stanford-ner-2018-10-16/classifiers/english.conll.4class.distsim.crf.ser.gz

CLASSPATH=/mnt/d/stanford-ner/stanford-ner-2018-10-16/stanford-ner.jar

当我尝试访问如下分类器时:

stanford_classifier = os.environ.get('STANFORD_MODELS').split(':')[0]

stanford_ner_path = os.environ.get('CLASSPATH').split(':')[0]

st = StanfordNERTagger(stanford_classifier, stanford_ner_path, encoding='utf-8')

我收到以下错误。但我不明白是什么导致了这个错误。

Error: Could not find or load main class edu.stanford.nlp.ie.crf.CRFClassifier
OSError: Java command failed : ['/mnt/c/Program Files (x86)/Common 
Files/Oracle/Java/javapath_target_1133041234/java.exe', '-mx1000m', '-cp', '/mnt/d/stanford-ner/stanford-ner-2018-10-16/stanford-ner.jar', 'edu.stanford.nlp.ie.crf.CRFClassifier', '-loadClassifier', '/mnt/d/stanford-ner/stanford-ner-2018-10-16/classifiers/english.all.3class.distsim.crf.ser.gz', '-textFile', '/tmp/tmpaiqclf_d', '-outputFormat', 'slashTags', '-tokenizerFactory', 'edu.stanford.nlp.process.WhitespaceTokenizer', '-tokenizerOptions', '"tokenizeNLs=false"', '-encoding', 'utf8']
python nlp stanford-nlp named-entity-recognition ner
1个回答
1
投票

我找到了这个问题的答案。我正在使用NLTK == 3.4。从NLTK == 3.3及以上,Stanford NLP(POS,NER,tokenizer)不作为nltk.tag的一部分加载,而是从nltk.parse.corenlp.CoreNLPParser加载。 stackoverflow答案可在stackoverflow.com/questions/13883277/stanford-parser-and-nltk / ...中找到,官方文档的github链接是github.com/nltk/nltk/wiki/Stanford-CoreNLP-API-in-NLTK 。

如果您遇到来自NER标记器或coreNLP API的任何其他解析器的超时问题的其他信息,请通过dimazest增加https://github.com/nltk/nltk/wiki/Stanford-CoreNLP-API-in-NLTK/_compare/3d64e56bede5e6d93502360f2fcd286b633cbdb9...f33be8b06094dae21f1437a6cb634f86ad7d83f7中所述的超时限制。

© www.soinside.com 2019 - 2024. All rights reserved.