Я пытаюсь построить API для моего проекта NLP, используя Django. У меня есть файл JAR и запускаю его с JVM, используя Jpype в Python. Он очень хорошо работает с первым 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 и не дать ей остановиться?