#java #python #duckling
#java #python #duckling
Вопрос:
Я хочу использовать duckling для извлечения временных объектов из любой строки.
Я пытаюсь использовать базовый код для использования duckling.
from duckling import DucklingWrapper
d = DucklingWrapper()
print(d.parse_time(u'Let's meet at 11:45am'))
Для этого я получаю следующую ошибку.
аргумент int() должен быть строкой, байтоподобным объектом или числом, а не ‘java.lang.Строка»
может ли кто-нибудь, пожалуйста, помочь мне с этим?
Ответ №1:
Короткий ответ: принудительно установите версию jpype ниже 0.8. т.е. pip install Jpype1==0.7.5
Более длинный ответ: это связано с одним из зависимостей Duckling JPype . Если вы углубитесь в код, вы увидите, что при запуске JVM с использованием JPype необходимо передать аргумент «convertStrings». До версии 0.8 для этого аргумента по умолчанию было установлено значение «true», но после этого он переключался на «false». Это должно быть легко исправить в Duckling, если вы можете изменить код пакета. Если нет, то понижение вашей версии Jpype также будет работать.
Комментарии:
1. это решает проблему, но затем вызывает
TypeError: can't apply this __setattr__ to _jpype._JClass object
Ответ №2:
Это проблема несовместимости между duckling и Jpype .
Это сработало для меня:
pip install --force-reinstall JPype1==0.6.3