Existe algum mecanismo de análise de texto de ficção interativa existente que eu possa incorporar em outro jogo ou aplicativo?
Eu estou olhando para usar algo como uma biblioteca. Posso passar os objetos e verbos disponíveis do meu lado. Ele analisará as frases do usuário e retornará algum tipo de estrutura / AST descrevendo o que o usuário solicitou. Então, meu próprio código pode agir de acordo com essa solicitação.
Eu não preciso de algo no nível SIRI. As frases e ações simples que os jogos atuais da IF suportam são boas. Mas não pretendo escrever um analisador de texto / frase inteiro.
Este não é um jogo If e não posso escrevê-lo inteiramente em uma linguagem de ficção interativa como o inform 7. Infelizmente, não consigo encontrar nenhum exemplo de alguém usando os recursos de análise de texto desses mecanismos sem escrever o texto inteiro. jogo no idioma desse mecanismo.
fonte
Respostas:
Esta é uma pergunta complicada. É possível extrair a funcionalidade de análise de texto de um dos vários mecanismos IF escritos em linguagens de programação de uso geral (ou seja, não como o Inform). Algumas possibilidades podem ser Pyf e o mecanismo da tia e do mordomo . Se você expandir sua pesquisa para muds, terá uma ordem de magnitude de mais opções (aqui estão listas de muds de código aberto e de Python especificamente).
No entanto, a parte complicada, e da sua pergunta, você entende isso, é resolver a análise no contexto do mundo do jogo. Esta é a parte mais difícil, e algo como o OpenNLP não o levará lá infelizmente. O problema é que esses motores e lamas de FI têm sua própria maneira de fazer isso e pode ser difícil se reconciliar com a forma como você projetou seu modelo mundial.
Felizmente, existem muitos recursos para escrever um analisador e um resolvedor eficazes. Eu só vou jogar alguns links para você,
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
fonte
Isso seria útil para o seu projeto? Acredito que o que você está pedindo é PNL e SE é apenas um caso de uso específico.
http://opennlp.apache.org/
Bem, se você deseja verificar se a combinação correta de um substantivo e um verbo foi encontrada na frase e não tanto sobre estrutura, gramática e outros aspectos:
Eu sugiro baixar este http://wordnet.princeton.edu/wordnet/
Você pode usá-lo para verificar basicamente se existe um sinônimo para o verbo e o substantivo que você está procurando em uma frase sem ter que digitar manualmente todos os sinônimos viáveis para cada palavra.
Se você deseja ver o código fonte do jogo de aventura de texto que foi lançado recentemente, você pode encontrar alguns jogos aqui (basta pressionar Ctrl + F) e digitar texto
http://en.wikipedia.org/wiki/List_of_open-source_video_games
Há também uma lista de mecanismos de jogos Text Adventure aqui:
http://en.wikipedia.org/wiki/Category:Text_adventure_game_engines
Se você precisar de algo mais, por favor, elabore.
fonte