다른 게임에 IF 텍스트 파서를 삽입 하시겠습니까?


14

다른 게임이나 응용 프로그램에 포함 할 수있는 기존의 대화 형 소설 텍스트 구문 분석 엔진이 있습니까?

도서관으로 무언가를 사용하려고합니다. 나는 그것을 내면에서 사용 가능한 객체와 동사에 전달할 수 있습니다. 사용자의 문장을 구문 분석하고 사용자가 요청한 내용을 설명하는 일종의 구조 / AST를 다시 제공합니다. 그런 다음 내 코드가 해당 요청에 따라 작동 할 수 있습니다.

SIRI 레벨이 필요하지 않습니다. 현재 IF 게임이 지원하는 간단한 문장과 행동이 좋습니다. 그러나 나는 전체 텍스트 / 문장 파서를 직접 작성하려고하지 않습니다.

이것은 If 게임이 아니며, inform 7과 같은 대화 형 소설 언어로 완전히 쓸 수는 없습니다. 그 엔진의 언어로 게임.


재미있는 생각. z-machine을 포함시키는 것이 불가능한 작업이라고 생각하지 않습니다 (즉, if-part를 작성하기 위해 정보를 사용할 수 있음을 의미합니다)-일부 z-machine의 Windows 포트는 z-machine이 별도의 스레드에서 실행되었습니다. UI를 사용하므로 원하는 부분을 이미 수행합니다.
Jari Komppa

모든 말로, 당신이 실제로하고 싶은 것이 전체 IF 가상 머신을 내장하지 않고하는 것이 더 쉽다는 것입니다 ..
Jari Komppa

네, 내 파서를 작성해야 할 것 같습니다.
DragonFax

답변:


4

이것은 까다로운 질문입니다. 범용 프로그래밍 언어로 작성된 여러 IF 엔진 중 하나 (예 : Inform과 다른 언어)에서 텍스트 구문 분석 기능을 추출 할 수 있습니다. 일부 가능성은 Pyf , Aunt and Butler 's engine 일 수 있습니다. 검색을 진흙으로 확장하면 훨씬 더 많은 선택이 가능합니다 ( 오픈 소스 진흙파이썬 진흙 목록이 여기에 있습니다 ).

그러나 까다로운 부분과 귀하의 질문에서 이해하는 것은 게임 세계의 맥락에서 구문 분석을 해결하는 것입니다. 이것은 어려운 부분이며 OpenNLP와 같은 것은 불행히도 거기에 도달하지 못합니다. 문제는 이러한 IF 엔진과 머드에는 각각 고유 한 방식이 있으며 월드 모델 설계 방식과 조정하기가 어렵다는 것입니다.

운 좋게도 효과적인 파서와 리졸버를 작성하는 데 많은 리소스가 있습니다. 난 그냥 당신에게 몇 가지 링크를 던져거야

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


예, 프로그래밍 언어에 대한 파서를 작성했습니다. 자연어를 다루는 것만으로도 다른 짐승입니다.
DragonFax

2
그것은 자연어 분석 일뿐 만 아니라 모든 시간이 걸리는 세계 모델 분석기라는 것을 기억하십시오. :)
georgek

1

이것이 프로젝트에 유용합니까? 나는 당신이 요구하는 것이 NLP이고 IF는 단지 특정 사용 사례라고 생각합니다.

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

더 필요한 것이 있으면 정교하게 작성하십시오.


적절한 NLP는 과도하게 보였으며 데이터 과학 유형에 중점을 둔 것처럼 보였습니다. 큰 덤프의 문장이 행복하거나 슬픈 지 또는 사람과 사물을 언급하는지 확인하려는 경우. 내가 한 문장을 완벽하게 파싱하고 "사용자가 VERB to NOUN"이라고 말하고 싶었던 곳에. 몇 가지 다른 형식 만 구문 분석하더라도.
DragonFax

텍스트 어드벤처 게임 엔진에 대한 링크를 추가했습니다.
AturSams

감사합니다. NLP 사용의 기본 사항에 대한 유용한 자습서 인 NLTK (python) 책을 읽었습니다. 그러나 한 문장을 "의미"로 파싱하는 것은 여전히 ​​사소한 일이 아닙니다.
DragonFax
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.