Sematkan IF parser teks di game lain?

14

Apakah ada mesin parsing teks fiksi interaktif yang dapat saya embed di game atau aplikasi lain?

Saya ingin menggunakan sesuatu sebagai perpustakaan. Saya bisa memberikan objek dan kata kerja yang tersedia dari sisi saya sendiri. Ini akan mem-parsing kalimat-kalimat dari pengguna dan memberi saya kembali semacam struktur / AST yang menggambarkan apa yang diminta pengguna. Kemudian kode saya sendiri kemudian dapat bertindak berdasarkan permintaan itu.

Saya tidak perlu sesuatu tingkat SIRI. Kalimat dan tindakan sederhana yang didukung oleh IF Games saat ini baik-baik saja. Tapi saya tidak ingin menulis parser seluruh teks / kalimat sendiri.

Ini bukan permainan If dan saya tidak bisa menulis seluruhnya dalam bahasa fiksi interaktif seperti inform 7. Sayangnya, saya tidak bisa menemukan contoh siapa pun yang menggunakan kemampuan parsing teks dari mesin ini tanpa menulis keseluruhan game dalam bahasa mesin itu.

DragonFax
sumber
Ide yang menarik. Saya tidak berpikir menanamkan mesin-z akan menjadi tugas yang mustahil (yang berarti Anda dapat menggunakan inform untuk menulis jika-bagian) - setelah itu, port windows beberapa mesin-z memiliki mesin-z berjalan di utas terpisah dari UI, jadi itu agak sudah melakukan (bagian) dari apa yang Anda inginkan.
Jari Komppa
Semua yang dikatakan, sangat mungkin bahwa apa yang sebenarnya ingin Anda lakukan lebih mudah dilakukan tanpa menanamkan seluruh mesin virtual IF ..
Jari Komppa
ya, sepertinya saya harus menulis parser sendiri.
DragonFax

Jawaban:

4

Ini pertanyaan yang sulit. Dimungkinkan untuk mengekstrak fungsionalitas parsing teks dari salah satu dari sejumlah mesin IF yang ditulis dalam bahasa pemrograman untuk tujuan umum (yaitu bukan sesuatu seperti Inform). Beberapa kemungkinan mungkin Pyf , dan mesin Bibi dan Butler . Jika Anda memperluas pencarian Anda ke lumpur, Anda akan memiliki urutan lebih banyak pilihan (berikut adalah daftar lumpur sumber terbuka dan lumpur Python secara khusus).

Namun bagian yang sulit, dan dari pertanyaan Anda, Anda memahami ini, adalah menyelesaikan parse dalam konteks dunia game. Ini adalah bagian yang sulit, dan sesuatu seperti OpenNLP tidak akan membawa Anda kesana. Masalahnya adalah bahwa mesin dan lumpur IF ini masing-masing memiliki cara sendiri untuk melakukan itu dan mungkin sulit untuk berdamai dengan bagaimana Anda merancang model dunia Anda.

Untungnya ada banyak sumber untuk menulis parser dan resolver yang efektif. Saya hanya akan memberikan beberapa tautan kepada Anda,

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
sumber
Ya, saya sudah menulis parser untuk bahasa pemrograman. Cukup untuk mengetahui menangani bahasa alami adalah binatang yang berbeda.
DragonFax
2
Ingat, ini bukan hanya pengurai bahasa alami, ini adalah penganalisa model dunia yang akan menghabiskan semua waktu Anda :).
georgek
1

Apakah ini berguna untuk proyek Anda? Saya percaya apa yang Anda minta adalah NLP dan JIKA hanya kasus penggunaan khusus.

http://opennlp.apache.org/

Nah, jika Anda ingin memeriksa bahwa kombinasi yang benar dari kata benda dan kata kerja ditemukan dalam kalimat dan tidak begitu banyak tentang struktur, tata bahasa dan aspek lainnya:

Saya sarankan mengunduh ini http://wordnet.princeton.edu/wordnet/

Anda bisa menggunakannya pada dasarnya untuk memeriksa apakah ada sinonim untuk kata kerja dan kata benda yang Anda cari dalam sebuah kalimat tanpa harus mengetikkan semua sinonim yang layak secara manual untuk setiap kata.

Jika Anda ingin melihat kode sumber game petualangan teks yang baru saja dirilis, Anda dapat menemukan beberapa game di sini (cukup tekan Ctrl + F) dan ketik teks

http://en.wikipedia.org/wiki/List_of_open-source_video_games

Ada juga daftar mesin game Text Adventure di sini:

http://en.wikipedia.org/wiki/Category:Text_adventure_game_engines

Jika Anda membutuhkan sesuatu yang lebih, tolong jelaskan.

AturSams
sumber
NLP yang tepat tampaknya terlalu mematikan, dan juga tampaknya berfokus pada hal-hal jenis Data Sciencey. Di mana Anda ingin mengidentifikasi apakah kalimat dalam dump besar bahagia atau sedih, atau menyebutkan orang vs sesuatu. Di mana-karena saya ingin mengurai satu kalimat dengan sempurna, dan tiba di "pengguna mengatakan lakukan VERB ke KATA BENDA". Bahkan jika itu hanya mem-parsing beberapa bentuk yang berbeda.
DragonFax
Saya menambahkan beberapa tautan ke mesin game petualangan teks.
AturSams
Terima kasih, saya telah membaca buku NLTK (python), yang merupakan tutorial yang bagus tentang dasar-dasar penggunaan NLP. Tetapi mengurai satu kalimat menjadi "makna" masih merupakan hal yang tidak sepele.
DragonFax