Bagaimana saya bisa mensimulasikan kosakata AI terbatas untuk permainan kata?


14

Saya memiliki sedikit permainan kata kompetitif yang sedang berlangsung, dan sementara preferensi untuk (sebagian besar asinkron) bermain melawan lawan manusia lainnya, saya ingin memberikan pemain opsi bermain melawan AI. Saya memiliki kamus saya dan saya dapat dengan mudah memberikan AI kamus penuh pengetahuan saat bermain, tetapi kekhawatiran saya adalah bahwa memiliki AI secara teratur memainkan kata-kata yang tidak mereka kenal akan menjadi pengalaman yang membuat frustrasi bagi para pemain: 'Saya akan memenangkan pertandingan itu apakah itu hanya menggunakan kata-kata yang saya tahu! ' - bahkan jika tingkat keterampilan AI secara keseluruhan ditolak.

Saya lebih suka membuat AI yang lebih lemah melalui kombinasi parameter permainan yang tidak disetel dan kosakata yang lebih lemah - tapi saya tidak yakin bagaimana membatasi kosakata itu dengan kata-kata 'umum'. Saya telah melihat beberapa daftar frekuensi kata (misalnya, daftar semua kata yang muncul dalam buku-buku Proyek Gutenberg, diurutkan berdasarkan jumlah kejadian) tetapi semuanya memiliki sejumlah negatif palsu: kata-kata yang semua orang tahu hanya tidak t muncul dengan frekuensi sungguhan (misalnya, CHEETAH lebih jarang muncul dalam teks PG daripada VOCATIVE atau SUTTEE). Saya sudah mencoba menggunakan hasil pencarian untuk mendapatkan perkiraan popularitas sebuah kata, tetapi mereka juga cenderung cenderung salah perkiraan, dan tentu saja '

Adakah yang punya saran tentang cara lain untuk menentukan frekuensi kasar penggunaan kata, atau cara lain untuk membatasi AI permainan kata yang akan terasa alami bagi pemain?


6
Anda bisa membiarkannya belajar! Setiap kali pemain menggunakan kata yang tidak "diketahuinya", itu bisa memiliki peluang 6/10 untuk mempelajarinya, jika tidak ia akan belajar kata acak baru! (Dengan demikian biasanya akan belajar kata-kata pemain tahu, namun perlahan-lahan mengeluarkan kata-kata pemain mungkin tidak (pendidikan !!)) Tentu saja, ini berarti Anda akan memerlukan "kamus AI" untuk setiap pemain.
Joel

Jawaban:


6

Saya pikir solusi Anda masih akan pergi dengan beberapa daftar frekuensi kata. Project Gutenberg mungkin bukan yang cocok untuk Anda karena mengandung teks yang lebih tua di mana hak cipta telah kedaluwarsa, memberikan frekuensi aneh untuk penutur bahasa Inggris modern. Saya kira ada suatu masa ketika "vokatif" sebenarnya adalah kata yang lebih umum digunakan daripada "cheetah" ...

Jadi saya pikir solusinya adalah menemukan daftar frekuensi yang tepat . Mencari-cari sedikit membuat saya menemukan 5000 kata yang paling sering digunakan di semua episode Simpsons, yang mungkin sedikit lebih terkini. Anda mungkin ingin mencoret referensi daftar ini dengan kamus sungguhan meskipun untuk memilah kata-kata seperti "krabappel" misalnya :)

Semoga ini bisa membantu, saya senang mendengar solusi apa yang Anda gunakan!


1
Kesan kuat saya adalah bahwa masalah dengan 'kata-kata yang diketahui semua orang tetapi tidak ada yang menggunakan' masih akan bertahan dengan kamus apa pun, tetapi mungkin itu yang terbaik yang bisa saya lakukan - dan tentu saja, ada peluang bagus bahwa para pemain tidak akan bahkan perhatikan kata-kata mudah yang AI tidak tahu, hanya kata-kata sulit yang ia lakukan.
Steven Stadnicki

+1 Anda mungkin benar tetapi mengapa begitu? Secara umum menurut saya orang harus belajar kata-kata yang sering mereka dengar. Jika Anda benar, akan menarik untuk mengetahui alasannya ... :) Hipotesis saya adalah karena bias dalam corpus yang digunakan, seperti dalam kasus proyek Gutenberg, jadi saya berpegang pada solusi yang Anda hanya perlu daftar frekuensi yang tepat.
Mikael Högström

5

Sumber orang banyak itu. Gunakan semua game multi-pemain yang dimainkan pemain Anda untuk menyusun tabel frekuensi kata. Saya pikir layanan analitik apa pun dapat membantu mengumpulkan dan mengatur data ini. Anda bahkan dapat menimbang entri dengan seberapa "bagus" pemain menggunakan kata tersebut.


Saya suka ini, tetapi masih terasa seperti menyelesaikan masalah 'pembaruan' daripada masalah 'startup' (dengan asumsi, tentu saja, saya ingin meluncurkan permainan multipemain dan permainan solo secara berdampingan, yang merupakan pertanyaan yang berbeda sepenuhnya).
Steven Stadnicki

2

Mulailah dengan kosakata dasar sesuai dengan level AI Anda. Sebagai contoh, biarkan di bawah ini adalah daftar level AI Anda.

  • dasar: 1000 kata kosakata
  • rata-rata: 2000 kata kosakata
  • keras: 5000 kata kosakata

Anda dapat memilih kata-kata ini dari situs web berikut yang dapat Anda lihat dengan pencarian google .

Situs-situs ini akan memberikan kata-kata awal Anda, tetapi saya rasa google n-gram mungkin pilihan yang lebih baik. Pokoknya jangan khawatir banyak tentang kata-kata awal Anda, dengan memperbarui / menambahkan mekanisme yang dijelaskan di bawah ini kamus AI Anda harus meluruskan sendiri sesuai dengan pemain Anda.

karena pemain Anda belajar saat mereka memainkan permainan ini, AI Anda juga harus belajar. Biarkan untuk mempelajari kata-kata yang paling sering digunakan oleh lawan mereka.

Misalnya 10 orang bermain melawan AI dasar Anda, mereka menggunakan 100 kata yang tidak dikenal, yaitu kata-kata yang tidak ada dalam kamus AI Anda. Pilih kata yang paling sering digunakan dan tambahkan ke kamus AI dasar Anda, juga ke kamus rata-rata dan keras Anda. Anda juga harus memilih untuk memperbarui beberapa kata yang tidak digunakan dalam kamus Anda dengan kata-kata yang digunakan orang. Dengan cara ini kamus awal Anda akan lebih cocok untuk pengetahuan pemain Anda. Anda bisa mulai dengan lebih sedikit kata / banyak kata yang berbeda tetapi AI Anda akan belajar ketika mereka bermain melawan manusia.

Anda juga dapat mempertimbangkan memulai AI Anda dengan level dasar dan memutakhirkannya ke level lain hanya ketika ia mempelajari kata-kata yang cukup.


Ini memberikan cara yang layak untuk memperbarui kosa kata, tetapi masih menyisakan pertanyaan awal - dari mana kosa kata awal itu berasal?
Steven Stadnicki
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.