Существуют ли какие-либо интерактивные движки для анализа художественного текста, которые я могу встроить в другую игру или приложение?
Я хочу использовать что-то в качестве библиотеки. Я могу передать ему доступные предметы и глаголы со своей стороны. Он проанализирует предложения пользователя и вернет мне некоторую структуру / AST, описывающую то, что просил пользователь. Тогда мой собственный код может действовать по этому запросу.
Мне не нужно что-то уровень SIRI. Простые предложения и действия, которые поддерживаются в современных играх IF, вполне подойдут. Но я не собираюсь писать весь текст / предложение парсера сам.
Это не игра If, и я не могу написать ее полностью на интерактивном беллетристическом языке, таком как Infor 7. К сожалению, я не могу найти примеров того, как кто-либо использовал возможности этих движков для анализа текста, не написав полностью игра на языке этого движка.
источник
Ответы:
Это сложный вопрос. Функциональность синтаксического анализа текста можно извлечь из одного из нескольких механизмов IF, написанных на языках программирования общего назначения (то есть не таких как Inform). Некоторые возможности могут быть Pyf , и двигатель тети и Батлера . Если вы расширите свой поиск до грязи, у вас будет на порядок больше вариантов (вот списки илов с открытым исходным кодом и грязей Python специально).
Однако сложная часть, и из вашего вопроса вы понимаете это, заключается в разрешении разбора в контексте игрового мира. Это сложная часть, и что-то вроде OpenNLP, к сожалению, вас туда не доставит. Проблема в том, что каждый из этих двигателей и грязи имеет свой собственный способ сделать это, и может быть трудно примириться с тем, как вы спроектировали свою модель мира.
К счастью, есть много ресурсов для написания эффективного анализатора и распознавателя. Я просто собираюсь бросить некоторые ссылки на вас,
http://www.mudbytes.net/topic-1838
http://www.mudbytes.net/topic-2962
http://www.mudbytes.net/topic-2038
http://www.mud.co.uk/richard/commpars.htm
http://groups.google.com/group/rec.arts.int-fiction/msg/f545963efb72ec7b?dmode=source
http://www.intfiction.org/forum/viewtopic.php?f=38&t=4205#p30260
http://www.tads.org/t3doc/doc/libref/source/parser.t.html
http://www.tads.org/t2doc/doc/prsseq.htm
http://www.dnd.utwente.nl/~krimud/Docs/NMAdmin/Parser/
https://groups.google.com/forum/?fromgroups#!searchin/rec.arts.int-fiction/writing $ 20a $ 20parser / rec.arts.int-fiction / VpsWZdWRnlA / 2mf5y25xk7MJ
https://groups.google.com/forum/?fromgroups#!searchin/rec.arts.int-fiction/writing $ 20a $ 20parser / rec.arts.int-fiction / EfxdLAc5Tmo / Fn5CEQvZCGsJ
http://ifwiki.org/index.php/Past_raif_topics:_Development:_part_2#Parsing
https://groups.google.com/forum/?fromgroups#!topic/rec.arts.int-fiction/HJPrqQ8l9u0
http://www.kotancode.com/2012/02/15/scalamud-scala-java-nlp/
https://groups.google.com/forum/?fromgroups#!topic/rec.arts.int-fiction/to4Ut4r_qCs
http://effbot.org/zone/simple-top-down-parsing.htm
http://www.skotos.net/articles/dawnof09.shtml
http://www.skotos.net/articles/dawnof22.shtml
http://discworld.starturtle.net/lpc/playing/documentation.c?path=/concepts/parser
http://disinterest.org/resource/MUD-Dev/1999q2/010160.html
источник
Будет ли это полезно для вашего проекта? Я полагаю, что вы запрашиваете НЛП, и если это просто конкретный вариант использования.
http://opennlp.apache.org/
Хорошо, если вы хотите проверить, что в предложении была найдена правильная комбинация существительного и глагола, а не столько о структуре, грамматике и других аспектах:
Я предлагаю скачать этот http://wordnet.princeton.edu/wordnet/
Вы можете использовать его, чтобы в основном проверить, существует ли синоним для глагола и существительного, которое вы ищете в предложении, без необходимости вручную вводить все жизнеспособные синонимы для каждого слова.
Если вы хотите увидеть исходный код текстовой приключенческой игры, который был недавно выпущен, вы можете найти здесь несколько игр (просто нажмите Ctrl + F) и набрать текст
http://en.wikipedia.org/wiki/List_of_open-source_video_games
Здесь также есть список игровых движков Text Adventure:
http://en.wikipedia.org/wiki/Category:Text_adventure_game_engines
Если вам нужно что-то еще, пожалуйста, уточните.
источник