我正在尝试使用 Django 为我的 nlp 项目构建 API。我有 JAR 文件并在 Python 中使用 Jpype 与 JVM 一起运行它。它在第一个 POST 中运行良好,但在第二个 post 方法中崩溃,没有任何例外。
我认为它的原因是 JVM 并尝试了以下代码但没有奏效:
if not jp.isJVMStarted():
print('JVM starting...')
jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
TurkishMorphology = jp.JClass('zemberek.morphology.TurkishMorphology')
Paths = jp.JClass('java.nio.file.Paths')
else:
print('JVM shutting down...')
jp.shutdownJVM()
print('JVM starting...')
jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
我的所有代码:
def getMorfoloji(sentence):
JAR_PATH = r'bin\zemberek-full.jar'
if not jp.isJVMStarted():
print('JVM starting...')
jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
TurkishMorphology = jp.JClass('zemberek.morphology.TurkishMorphology')
Paths = jp.JClass('java.nio.file.Paths')
else:
print('JVM shutting down...')
jp.shutdownJVM()
print('JVM starting...')
jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
TurkishMorphology = jp.JClass('zemberek.morphology.TurkishMorphology')
Paths = jp.JClass('java.nio.file.Paths')
morphology = TurkishMorphology.createWithDefaults()
analysis = morphology.analyzeSentence(sentence)
results = morphology.disambiguate(sentence, analysis).bestAnalysis()
analysis_result = ''
for i in results:
analysis_result += str(i)
analysis_result += ' -- '
print(analysis_result)
jp.shutdownJVM()
return analysis_result
我怎样才能继续运行 JVM 而不让它停止?