Nhúng trình phân tích cú pháp văn bản IF trong một trò chơi khác?


14

Có bất kỳ công cụ phân tích văn bản tiểu thuyết tương tác hiện có nào mà tôi có thể nhúng vào một trò chơi hoặc ứng dụng khác không?

Tôi đang tìm cách sử dụng một cái gì đó như một thư viện. Tôi có thể vượt qua nó các đối tượng và động từ có sẵn từ phía tôi. Nó sẽ phân tích các câu từ người dùng và trả lại cho tôi một số loại cấu trúc / AST mô tả những gì người dùng yêu cầu. Sau đó, mã của riêng tôi sau đó có thể hành động theo yêu cầu đó.

Tôi không cần thứ gì đó ở cấp độ SIRI. Các câu và hành động đơn giản mà các trò chơi IF hiện tại hỗ trợ là tốt. Nhưng tôi không muốn tự mình viết một trình phân tích cú pháp văn bản / câu.

Đây không phải là trò chơi If và tôi không thể viết nó hoàn toàn bằng ngôn ngữ viễn tưởng tương tác như thông báo 7. Thật không may, tôi dường như không thể tìm thấy bất kỳ ví dụ nào về bất kỳ ai sử dụng khả năng phân tích văn bản của các công cụ này mà không viết toàn bộ trò chơi trong ngôn ngữ của động cơ đó.


Ý tưởng thú vị. Tôi không nghĩ rằng việc nhúng máy z sẽ là một nhiệm vụ bất khả thi (có nghĩa là bạn có thể sử dụng thông tin để viết phần if) - afair, cổng windows của một số máy z có máy z chạy trong một luồng riêng biệt từ Giao diện người dùng, vì vậy nó đã làm (phần) những gì bạn muốn.
Jari Komppa

Tất cả những gì đã nói, hoàn toàn có thể là những gì bạn thực sự muốn làm sẽ dễ dàng hơn mà không cần nhúng toàn bộ máy ảo IF ..
Jari Komppa

vâng, có vẻ như tôi sẽ phải viết trình phân tích cú pháp của riêng tôi.
DragonFax

Câu trả lời:


4

Đây là một câu hỏi mẹo. Có thể trích xuất chức năng phân tích cú pháp văn bản từ một trong số các công cụ IF được viết bằng ngôn ngữ lập trình có mục đích chung (nghĩa là không phải là thông tin như Thông tin). Một số khả năng có thể là Pyf , và động cơ của Dì và Butler . Nếu bạn mở rộng tìm kiếm thành bùn, bạn sẽ có nhiều lựa chọn hơn (đặc biệt là danh sách bùn nguồn mởbùn Python ).

Tuy nhiên, phần khó khăn, và từ câu hỏi của bạn, bạn hiểu điều này, đang giải quyết các phân tích trong bối cảnh của thế giới trò chơi. Đây là phần khó khăn và một cái gì đó như OpenNLP sẽ không đưa bạn đến đó một cách đáng tiếc. Vấn đề là mỗi động cơ IF và bùn này đều có cách làm riêng của chúng và có thể khó hòa hợp với cách bạn thiết kế mô hình thế giới của mình.

May mắn thay, có nhiều tài nguyên để viết một trình phân tích cú pháp và trình phân giải hiệu quả. Tôi sẽ ném một số liên kết với bạn,

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/writer $ 20a $ 20parser / rec.arts.int-fiction / VpsWZdWRnlA / 2mf5y25xk7MJ

https://groups.google.com/forum/?fromgroups#!searchin/rec.arts.int-fiction/writer $ 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.htmlm

http://www.skotos.net/articles/dawnof09.shtml

http://www.skotos.net/articles/dawnof22.shtml

http://discworld.starturtle.net/lpc/playing/documentation.c?path=/con accept / parser

http://disinterest.org/resource/MUD-Dev/1999q2/010160.html


Vâng, tôi đã viết trình phân tích cú pháp cho các ngôn ngữ lập trình. Đủ để biết giải quyết các ngôn ngữ tự nhiên là một con thú khác.
DragonFax

2
Hãy nhớ rằng, nó không chỉ là phân tích ngôn ngữ tự nhiên, mà còn là công cụ phân tích mô hình thế giới sẽ làm bạn mất hết thời gian :).
georgek

1

Điều này sẽ hữu ích cho dự án của bạn? Tôi tin rằng những gì bạn đang yêu cầu là NLP và IF chỉ là một trường hợp sử dụng cụ thể.

http://opennlp.apache.org/

Chà, nếu bạn muốn kiểm tra xem sự kết hợp chính xác của một danh từ và một động từ đã được tìm thấy trong câu và không quá nhiều về cấu trúc, ngữ pháp và các khía cạnh khác:

Tôi khuyên bạn nên tải xuống http://wordnet.princeton.edu/wordnet/

Về cơ bản, bạn có thể sử dụng nó để kiểm tra xem một từ đồng nghĩa có tồn tại cho cả động từ và danh từ mà bạn đang tìm kiếm trong câu mà không cần phải nhập thủ công tất cả các từ đồng nghĩa khả thi cho mỗi từ.

Nếu bạn muốn xem mã nguồn trò chơi phiêu lưu văn bản được phát hành gần đây, bạn có thể tìm thấy một số trò chơi tại đây (chỉ cần nhấn Ctrl + F) và nhập văn bản

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

Ngoài ra còn có một danh sách các công cụ trò chơi Text Adventure tại đây:

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

Nếu bạn yêu cầu một cái gì đó nhiều hơn, xin vui lòng giải thích.


NLP thích hợp dường như bị giết quá mức, và dường như cũng tập trung vào loại công cụ Data Sciencey. Nơi bạn muốn xác định nếu một câu trong một bãi rác lớn là vui hay buồn, hoặc đề cập đến mọi người so với mọi thứ. Ở đâu - như tôi muốn phân tích một câu một cách hoàn hảo và đến "người dùng đang nói làm ĐỘNG TỪ cho NOUN". Ngay cả khi nó chỉ phân tích một vài hình thức khác nhau.
DragonFax

Tôi đã thêm một số liên kết đến công cụ trò chơi phiêu lưu văn bản.
sói

Cảm ơn, tôi đã đọc cuốn sách NLTK (python), đây là một hướng dẫn tốt về những điều cơ bản của việc sử dụng NLP. Nhưng phân tích một câu duy nhất thành một "ý nghĩa" vẫn là một điều không tầm thường.
DragonFax
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.