Incorporar analisador de texto IF em outro jogo?

14

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.

DragonFax
fonte
Idéia interessante. Eu não acho que a incorporação de uma máquina z seria uma tarefa impossível (o que significa que você poderia usar o informe para escrever a parte if) - de certa forma, a porta do Windows de alguma máquina z teve a máquina z executada em um thread separado a interface do usuário, por isso meio que já faz (partes) do que você deseja.
Jari Komppa
Tudo o que disse, é inteiramente possível que o que você realmente quer fazer é mais fácil de fazer sem incorporar um todo IF máquina virtual ..
Jari Komppa
Sim, parece que vou ter que escrever meu próprio analisador.
quer

Respostas:

4

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

georgek
fonte
Sim, eu escrevi analisadores para linguagens de programação. O suficiente para saber lidar com línguas naturais é uma fera diferente.
quer
2
Lembre-se, não é apenas a análise da linguagem natural, é o analisador de modelos mundiais que levará todo o seu tempo :).
Georgek # 5/12
1

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.

wolfdawn
fonte
A PNL adequada parecia exagerada e também parecia se concentrar em coisas do tipo Data Science. Onde você deseja identificar se uma sentença em um lixão grande é feliz ou triste ou menciona pessoas versus coisas. Onde, como eu queria analisar uma frase perfeitamente, e chegar a "o usuário está dizendo VERB para NOUN". Mesmo se apenas analisar algumas formas diferentes.
quer
Eu adicionei alguns links para mecanismos de jogos de aventura em texto.
wolfdawn
Obrigado, eu tenho lido o livro NLTK (python), que é um bom tutorial sobre o básico do uso da PNL. Mas analisar uma única frase em um "significado" ainda é uma coisa não trivial.
quer