У меня есть домашняя система автоматизации, работающая на Java, и я хочу добавить простые математические возможности, такие как сложение, вычитание, умножение, деление, корни и полномочия.Преобразование естественного языка в математическое уравнение
В текущем состоянии системы, он может конвертировать фразу в теги, как показано в следующих примерах:
пример:
Phrase: "what is one hundred twenty two to the power of seven"
Tagged: {QUESTION/math} {NUMBER/122} {MATH/pwr} {NUMBER/7}
пример:
Phrase: "twenty seven plus pi 3 squared"
Tagged: {NUMBER/27} {MATH/add} {NUMBER/3.14159} {MATH/multiply} {MATH/pwr} {NUMBER/2}
Этот пример может так же легко преобразуется в примерно так:
27 + 3.14159 * 3^2
Каждый тег - объект, который может быть запрошен для его значения.
Edit: Конкретный вопрос:
Так что теперь мне нужен способ, чтобы прочитать эту группу тегов как уравнение, и возвращает числовой результат. В крайнем случае я мог бы использовать google или wolfram alpha, но это будет медленнее, и я пытаюсь полностью автоматизировать систему автоматизации.
Если вы хотите увидеть весь источник, here it is in github. Обратите внимание, что я не совершил последние несколько изменений, поэтому некоторые из связанных с математикой вещей, которые я привел, не будут работать.
В чем конкретный вопрос здесь? –
Нет конкретного файла, я просто подумал, что добавлю ссылку на тот случай, если кому-то будет интересно. Редактировать: это может быть полезно: https://github.com/Sprakle/HomeAutomation/blob/master/HomeAutomation/src/net/sprakle/homeAutomation/interpretation/tagger/tags/Tag.java –
@OliCharlesworth Я думаю, ему нужен способ превратить теги, назначенные каждой фразе, в выражение, которое Java может понять, чтобы вернуть число. Было бы более полезно, если бы у нас был точный файл (ы), о котором идет речь. – jocopa3