Beberapa waktu yang lalu, saya
menyarankan bermain Turing Test dengan bot Misha saya. Siapa pun yang mencobanya tahu bahwa pemain robot ditentukan secara elementer. Mereka yang belum mencoba dapat membacanya di komentar pertama di bawah artikel itu.
Sekarang saatnya untuk mengatur pembekalan, berbicara tentang perangkat bot dan menarik kesimpulan.
Aturan gim
Aturan permainan tercantum dalam artikel sebelumnya, saya akan ulangi di sini sehingga Anda dan saya tidak berjalan di tautan.
- Setiap peserta yang terhubung dengan bot dapat mengambil peran sebagai pemain untuk menjawab pertanyaan, atau hakim yang menanyakan pertanyaan-pertanyaan ini.
- Jika seorang peserta memutuskan untuk menjadi juri, maka bot secara acak memilih pemain untuknya - baik di antara pemain manusia, atau menghubungkan robot. Artinya, dalam permainan selalu ada orang yang menjawab, dan hakim hanya mengajukan pertanyaan kepadanya.
- Jika seorang peserta memutuskan untuk menjadi seorang pemain, maka bot itu juga mencari dia untuk memasangkan seorang peserta-juri.
- Permainan ini dibagi menjadi ronde 5 pertanyaan. Pada akhir setiap putaran, juri membuat keputusan dengan siapa ia berkomunikasi, dengan seseorang atau dengan mesin - ini adalah akhir dari permainan. Jika dia tidak bisa memutuskan, maka dia bisa memulai babak berikutnya atau menyerah, menghentikan permainan.
- Robot itu berperan sebagai bocah kecil Misha, lima tahun. Agar tidak membuat tugas lebih mudah bagi juri, disarankan agar pemain juga merespons atas nama Misha.

Dari peluncuran hingga saat penulisan, 256 permainan dimainkan (agak aneh, tetapi benar).
Dari jumlah tersebut, mereka berakhir dengan hasil yang jelas, yaitu, kedua belah pihak bermain sampai akhir babak berikutnya (tidak ada yang bermain lebih dari satu putaran) dan hakim memutuskan - 115 pertandingan
- Solusi Robot - 74
- keputusan "pria" - 41
Ada 26 keputusan yang salah, di antaranya:
- solusi "robot" (sebenarnya seseorang) - 15
- solusi manusia (sebenarnya robot) - 11
Seperti yang Anda lihat, lebih sering seseorang dikira robot daripada robot untuk seseorang.
Hasilnya, robot diidentifikasi dengan benar di (74-15) / 115 = 51% dari game, dan robot itu dikira sebagai seseorang di 11/115 = 9,5% dari game, yaitu, kita dapat dengan yakin mengatakan bahwa bot Misha tidak lulus tes.
Sebagai perbandingan, pada sebuah
kompetisi di 2012, dalam 29% dari 150 percakapan, juri mengambil
Odessa bot Zhenya Gustman untuk seseorang, dan pada 2014, 33% juri berdasarkan pada 300 wawancara.
Apa yang ada di bawah tenda
Bot ditulis dalam Python dan pada umumnya terdiri dari tiga modul:
- sebenarnya bot dengan mesin game
- manajer robot
- robot
Algoritme permainan utama terkandung dalam kelas Game, yang menyimpan id peserta dan mengimplementasikan mesin keadaan sederhana:
- Game dimulai
- Menunggu pertanyaan dari hakim
- Menunggu respons dari pemain
- Menunggu keputusan dari hakim
- Game usai
Pada transisi antar negara, bot meneruskan pertanyaan juri kepada pemain, jawaban dari pemain ke juri. Hanya satu pesan yang dikirimkan dan bot menjadi di negara berikutnya, jadi jika seseorang mencoba bertanya atau menjawab dengan dua, ia melihat bahwa bot tidak mengizinkan ini.
Ketika bot menerima respons dari robot, ia tidak langsung mengirimkannya, tetapi dengan penundaan waktu - itu tidak segera muncul, saya menambahkannya sesuai dengan komentar
galqiwi , terima kasih.
Setiap perubahan status disimpan dalam database SQLite, jika terjadi situasi yang tidak terduga - kegagalan daya, boot ulang OS, atau hanya pemilik bot (maksud saya) ingin menghentikannya dan mengulang sesuatu. Dengan awal yang baru, bot memuat game yang disimpan dari database, dan game berlanjut.
Selanjutnya, ada dua garis tunggu - hakim menunggu pemain dan pemain menunggu hakim. Ketika seorang peserta memulai permainan baru, antrian yang sesuai dilihat apakah ia memiliki pasangan. Jika tidak, maka peserta di antri.
Manajer robot tinggal di utas terpisah. Dia secara berkala meninjau garis hakim yang menunggu pemain dan membuat salinan robot untuk mereka. Itu sengaja membuat penundaan sehingga robot tidak selalu punya waktu untuk mencegat juri dan pemain manusia juga memiliki kesempatan untuk terhubung ke permainan. Manajer memiliki kemampuan untuk membuat berbagai opsi untuk robot, Anda hanya perlu mendaftarkan kelas mereka. Namun sejauh ini hanya satu yang telah dilaksanakan.
Dan akhirnya, modul robot. Tetapi sebelum saya berbicara tentang bagian dalam robot, saya akan memberi tahu Anda tentang dasar pertanyaan dan jawaban yang berfungsi.
Pertama saya memasukkan file teks ini:
T:
T:
Q: ?
Q: ?
Q: ?
Q: ?
Q: ?
T:
Q: ?
T:
T:
Q: ?
Q: ?
Q: ?
T:
T: ,
Q: ?
Q: ?
… . — , , --. . , .
pymorphy2 kmike,
YARN, XML SQLite — 22 , …
:
def normalSynonyms(self,orig):
r = self.morph.parse(orig)
res = []
for parse in r:
word = parse.normal_form
syns = self.yarn.synonyms(word)
for g in syns:
words = self.yarn.words(syns[g])
res = res + words
return res
.
getAnswer(self, text)
, . , - , . , .
:
- , . , .
- -, , , , . .
, «» , , — , . , , — .
"
, , 12000 . «-» 300 . ."
, , , . , .
, , , , , .
, , , . , ,
. - , . , , .
— , , . , .
. , , — - - . - , . , , « » — . , , .
, , , , - . , , , .
, -:
Raspberry Pi 3. SSD, , , .
, .
, , — . , , , , , , .
, , , "
?" ( «Computing Machinery and Intelligence») « ». , , — , . .
:
"
, « » , . , , - . , , , , ."
- ,
, , , . , .
:
"
, , , . ."
, ,
. , , , , , , — « [] ?», , .
:
"
2018-10-23 13:01:53,385 186 Player2Judge , ?"
— , :
, , . , , ?
. « » ? R2-D2 C-3PO « »? «A.I.»? « »? « »? - ? , ,
, , - .
— , ? , , .
, R2-D2 -, , .
, , — . ( « » ) , , , , , , , .
, C-3PO , , , , . - , .
. , , :
, — . .
, . , « ?», (1950), , . « » , .
:
"…
, , , , ; , , ."