ฝัง IF text parser ในเกมอื่นหรือไม่


14

มีเครื่องมือแยกวิเคราะห์ข้อความเชิงโต้ตอบที่มีอยู่ที่ฉันสามารถฝังในเกมหรือแอปพลิเคชันอื่นได้หรือไม่

ฉันกำลังมองหาที่จะใช้เป็นห้องสมุด ฉันสามารถส่งผ่านวัตถุและคำกริยาที่มีจากด้านข้างของฉันเอง มันจะแยกประโยคจากผู้ใช้และให้โครงสร้าง / AST อธิบายสิ่งที่ผู้ใช้ถามกลับ จากนั้นรหัสของฉันเองก็สามารถดำเนินการตามคำขอนั้นได้

ฉันไม่ต้องการอะไรระดับ SIRI ประโยคและแอ็คชั่นพื้นฐานที่สนับสนุนเกม IF ปัจจุบันนั้นใช้ได้ดี แต่ฉันไม่ต้องการเขียนตัวแยกวิเคราะห์ข้อความ / ประโยคทั้งหมดด้วยตนเอง

นี่ไม่ใช่เกม If และฉันไม่สามารถเขียนได้ทั้งหมดในภาษาเชิงโต้ตอบเช่นแจ้ง 7. น่าเสียดายที่ฉันไม่สามารถหาตัวอย่างของใครก็ตามที่ใช้ความสามารถในการแยกวิเคราะห์ข้อความของเอ็นจิ้นเหล่านี้โดยไม่ต้องเขียนทั้งหมด เกมในภาษาของเครื่องยนต์


ความคิดที่น่าสนใจ ฉันไม่คิดว่าการฝัง z-machine จะเป็นงานที่เป็นไปไม่ได้ (ซึ่งหมายความว่าคุณสามารถใช้แจ้งเพื่อเขียน if-part) - ในระยะไกลพอร์ต windows ของ z-machine บางตัวมี z-machine ที่ทำงานในเธรดแยกจาก UI ดังนั้นมันจึงเป็นไปตามที่คุณต้องการ
Jari Komppa

ทั้งหมดที่กล่าวว่ามันเป็นไปได้ทั้งหมดว่าสิ่งที่คุณต้องการทำจริงเป็นเรื่องง่ายที่จะทำโดยการฝังทั้ง IF เครื่องเสมือน ..
Jari Komppa

ใช่ดูเหมือนว่าฉันจะต้องเขียนโปรแกรมแยกวิเคราะห์ของฉันเอง
DragonFax

คำตอบ:


4

นี่เป็นคำถามที่ยุ่งยาก เป็นไปได้ที่จะแยกฟังก์ชั่นการแยกวิเคราะห์ข้อความจากหนึ่งในจำนวนของเครื่องยนต์ IF ที่เขียนด้วยภาษาการเขียนโปรแกรมวัตถุประสงค์ทั่วไป (เช่นไม่ใช่สิ่งที่ต้องการแจ้ง) เป็นไปได้ที่บางคนอาจจะPYFและป้าและบัตเลอร์เครื่องยนต์ หากคุณขยายการค้นหาไปยังโคลนตมคุณจะมีตัวเลือกเพิ่มขึ้นตามลำดับ (นี่คือรายการของโคลนแบบโอเพ่นซอร์สและโคลนหลามแบบ Pythonโดยเฉพาะ)

อย่างไรก็ตามในส่วนที่ยุ่งยากและจากคำถามของคุณคุณเข้าใจสิ่งนี้กำลังแก้ไขการแยกวิเคราะห์ในบริบทของโลกของเกม นี่เป็นส่วนที่ยากและบางอย่างเช่น 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


ใช่ฉันเขียน parsers สำหรับภาษาการเขียนโปรแกรม พอที่จะรู้ว่าการแก้ปัญหาภาษาธรรมชาติเป็นสัตว์ที่แตกต่างกัน
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 เป็น NOUN" แม้ว่ามันจะแยกวิเคราะห์รูปแบบที่แตกต่างกันเพียงไม่กี่
DragonFax

ฉันเพิ่มลิงก์ไปยังเอ็นจิ้นเกมผจญภัยข้อความ
AturSams

ขอบคุณฉันอ่านหนังสือ NLTK (python) ซึ่งเป็นบทเรียนที่ดีเกี่ยวกับพื้นฐานการใช้ NLP แต่การแยกประโยคเดียวออกเป็น "ความหมาย" ยังคงเป็นสิ่งที่ไม่สำคัญ
DragonFax
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.