我使用斯坦福NER培训了一个定制的NER模型并得到了一个序列化模型。然后我尝试使用该模型通过NLTK提供的Python API在看不见的语料库上执行NER。
根据documentation,我应该指定模型的路径和stanford-ner.jar
的路径。但是,我需要指定stanford-ner.jar
的路径和slf4j-api.jar
的路径,因为Stanford NER需要记录模块。
我无法弄清楚如何在NLTK API中指定两个路径。构造函数有两个参数,第一个是path/to/model
,第二个是path/to/jar
。我尝试连接两个jar路径,将它们放在一个列表和一个元组中,但没有一个方法有效。
如何告诉NLTK找到两个罐子以调用预测?
答案 0 :(得分:1)
你能提供你试过的任何代码吗?通过查看source code from the nltk.tag.stanford module看起来你只需要使用模型和stanford-ner JAR的路径启动StanfordNERTagger,并且记录器会自动添加到类路径中。
这是StanfordTagger超类在设置模型和引擎后立即执行的__init__()
方法。它在您提供的stanford-ner JAR路径的父文件夹中查找记录器JAR,并通过从find_jars_within_path()
调用nltk.internals
隐式地将其添加到路径中,后者将文件夹附加到{ {1}}