Mycroft-core: Триггеры "Скажи" всегда говорят навык

Созданный на 2 авг. 2016  ·  4Комментарии  ·  Источник: MycroftAI/mycroft-core

«Привет, Майкрофт, что Википедия говорит об Аврааме Линкольне»

Майкрофт отвечает: «Об Аврааме Линкольне».

Bug - complex

Все 4 Комментарий

Я бы посчитал это проблемой с адаптацией. Вместо этого он, вероятно, должен возвращать достоверность каждого совпадения на основе длины регулярного выражения, чтобы what does wikepedia say всегда переопределяло say .

Я согласен; В прошлом году я попытался создать систему анализа намерений, подобную mycroft (также на Python) для относительно небольшого набора операций, и добавил это взвешивание к достоверности совпадений по той же причине.
Это сработало хорошо, хотя я также взвешивал совпадения по тому, насколько они были близки к началу фразы (или на самом деле, в зависимости от того, где следующий набор неанализируемых слов начинается с полученных слов). Каждый навык будет обрабатывать свою фразу и возвращать любые оставшиеся слова в конце для повторного анализа при необходимости, особенно если это было частью подпункта, разделенного, например. «и» или «тогда».

Примечание. Я действительно пробовал добавлять списки слов «звуки как» к каждому набору слов «навык», которые TTS иногда возвращал в качестве альтернативы для улучшения показателей соответствия, затем делал наилучшее совпадение и соответствующим образом пропорционально оценивал достоверность, но это становилось слишком сложно даже с ограниченным набором функций для обслуживания всех признанных версий, возвращенных в качестве проекта в свободное время.

Adapt дает результаты синтаксического анализа в порядке «наибольшего охвата высказывания», что не обязательно в порядке наибольшей достоверности. При вычислении достоверности регулярные выражения имеют меньший вес в зависимости от их неточности, а все совпадения (регулярное выражение или литерал сущности) имеют достоверность, основанную на процентном соотношении представленных высказываний. В последнем выпуске Adapt (v0.3.0) можно дополнительно раскрыть достоверность отдельных тегов в результате синтаксического анализа.

{u'ArticleTitle': u'say about foobar', 'intent_type': u'WikipediaIntent', 'confidence': 0.375, 'target': None, u'WikipediaKeyword': u'wikipedia'}

Пройдя через это в отладчике, я вижу, что 4-й или 5-й результат синтаксического анализа, полученный в результате адаптации, действительно имеет более высокую достоверность, чем намерение речи, и запускает намерение википедии. Результатом синтаксического анализа является мусор (запрос: скажем об Аврааме Линкольне), но Adapt не очень хорошо разбирает поисковые запросы с произвольным текстом из текста на естественном языке. Хотя здесь регулярные выражения являются неизбежным злом, ими довольно часто злоупотребляют, и чем больше навыков их использует, тем выше вероятность подобных столкновений.

По крайней мере, для меня эта ошибка была исправлена https://github.com/MycroftAI/mycroft-core/commit/4d6defd126c0a0b091718f8e15f8b033a84f9aa1

Кажется, эта ошибка исправлена.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги