我正在使用Python开发一个聊天机器人(用于Kik信使),最近我将我的应用程序移到了Heroku,就像this question中所描述的那样。另外,我已经包含了NLTK(Python模块)及其the Heroku documentation中描述的一些资源。到目前为止,事情很好地工作,聊天机器人应用程序在Kik信使中响应。
下一步,我想将Stanford NLP的工具与他们的NLTK API一起使用。 Stanford NLP工具与几个模型文件一起作为Java存储库提供。在本地,我根据this answer设置API后完成了此操作。不过,我不知道如何为Heroku做这个。 Heroku关于如何部署可执行jar文件有a documentation,但我不知道如何将它应用于我的问题。
我想要使用的实际函数是我在本地调用的Stanford解析器:
from nltk.parse.stanford import StanfordParser
parser=StanfordParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")
这是我关于SO的第一个问题,所以请告诉我是否以及如何编辑此问题以便更容易回答。
编辑:在更一般的层面上,我有一个Python应用程序,我在Heroku云服务上运行(使用临时文件系统),并希望包含一个Java存储库。
答案 0 :(得分:0)
您需要在构建时下载JAR文件并将其包含在应用中。从您链接到的答案中可以看出,您可以使用以下内容执行此操作:
import nltk
nltk.download()
您还需要将JVM buildpack添加到您的应用中:
$ heroku buildpacks:add heroku/jvm
答案 1 :(得分:0)
在我的情况下,使用删除model.jar文件中不必要的类文件。 在stanford-parser目录中使用此代码,并使jar文件小于100 MB,这是每次推送github的限制。
jar tf stanford-parser-3.6.0-models.jar
并使用此命令删除不必要的类文件
zip -d stanford-parser-3.6.0-models.jar edu/stanford/path/to/file
将您的文件推送到github并部署到您的应用程序。