Bagaimana menyusun algoritma yang menyarankan resep memasak yang layak?


15

Saya pernah memiliki seorang veteran dalam kursus saya yang menciptakan algoritma yang akan menyarankan resep memasak. Pada awalnya, semua jenis resep gila akan keluar. Kemudian, dia akan melatih algoritma memasak dengan resep sungguhan dan akhirnya akan menyarankan yang sangat bagus.

Saya percaya dia menggunakan sesuatu yang berhubungan dengan Bayes Theorem atau Clustering, tapi dia sudah lama hilang dan begitu juga algoritmanya. Saya telah mencari di internet tetapi mencari resep masakan akan menghasilkan segala macam hasil tetapi bukan yang saya cari. Jadi, pertanyaan saya adalah:

Teknik apa yang dapat digunakan untuk menyusun algoritma yang (secara acak) menyarankan resep yang layak (tanpa menggunakan database resep tetap)?

Mengapa saya repot mencari algoritma memasak? Yah, itu adalah contoh yang sangat baik dari aplikasi dunia nyata dari konsep-konsep yang mendasarinya, dan algoritma semacam itu bisa berguna dalam pengaturan yang berbeda yang lebih dekat ke dunia nyata.


1
Mungkin layak untuk melihat berbagai jenis algoritma evolusi
Henry

7
... atau untuk bantuan ringan, ini dari xkcd
Henry

2
@ Henry: Dan fungsi apa yang akan Anda gunakan untuk kebugaran? Itulah poin utama dari pertanyaan!
Raphael

1
Bisakah orang yang memilih untuk menutup menjelaskan alasan di balik suaranya? Memilih untuk menutup tanpa memberikan alasan tidak membantu OP meningkatkan pertanyaannya.
Alex ten Brink

1
Komentar itu tampaknya lebih eksotis daripada pertanyaan itu sendiri.
Oeufcoque Penteano

Jawaban:


4

Hmm, menggunakan Bayes Theorem untuk membuat resep baru dari resep lama. Saya membayangkan Anda pertama-tama ingin algoritma memisahkan bahan-bahan ke dalam bentuk yang dimengerti (tidak yakin apakah kami menggunakan NLP untuk itu, atau jika Anda memasukkan data secara manual di dalam diri Anda, itu tidak penting). Dari sana .. .

Saya membayangkan sesuatu seperti ini.

Data Uji dianalisis. Sekarang kami memiliki daftar resep dan probabilitas bahwa masing-masing bahan akan terjadi bersama bahan lainnya, dan dalam jumlah berapa. Setelah kami memiliki data ini maka Anda akan memiliki program secara acak membuat resep baru. Pertama, siklus melalui daftar semua bahan yang dikenal, kemudian secara acak memilih bahan utama, dari sana ia menggunakan probabilitas bahan yang diberikan bahan lain untuk mulai membuang bahan yang lebih acak, sambil mencocokkan data terlatih yang sesuai untuk jumlah dan kompatibel bahan.

Mungkin saya menyarankan bahwa ketika membuat resep baru program diberi informasi seperti, saya ingin sesuatu yang manis, atau sesuatu yang asam, atau misalnya sesuatu yang sebagian besar terbuat dari gandum.

Semoga ini sedikit membantu.


3

Untuk dataset luas AS-sentris dari hampir 2000 resep, Anda dapat melihat Layanan Resep Angkatan Bersenjata . Ini tidak menjawab pertanyaan Anda, tetapi akan memberi Anda data pelatihan dunia nyata.

Persyaratan untuk masalah mungkin sulit untuk diartikulasikan bagi kebanyakan orang dan pendekatan yang dipilih kemungkinan akan secara implisit menyesuaikan kebugaran dengan cara yang Anda sarankan. Makanan di geenral sangat spesifik untuk budaya dan pendekatannya mungkin akan sangat buruk tanpa penyetelan yang ekstensif.

Ini juga membutuhkan pengetahuan sematik dan domain yang substansial untuk menyiapkan lebih dari sekadar daftar bahan. Lagi pula, es krim rasa kopi dengan wafer, cafe au lait dan croissant dan tira misu tidak akan bisa dibedakan.


"Ini tidak menjawab pertanyaan Anda" - tepatnya, jadi itu seharusnya komentar. Saya melihat Anda belum diperbolehkan berkomentar; Saya menandai untuk konversi.
Raphael

@ Raphael: tidak mengonversikan ini, karena terlalu panjang dan - meskipun mungkin bukan jawaban yang ideal - secara keseluruhan ia mencoba untuk mengatasi masalah tersebut. Jika Anda merasa itu tidak membantu, silakan pilih. Pekka, meskipun ini mungkin bukan sumber yang paling produktif dari seni kuliner baru, itu adalah masalah yang menarik - dan dapat dihubungkan - ... Jika Anda dapat memperluas jawaban Anda untuk membahas secara spesifik pengembangan algoritma seperti itu, mungkin lebih dapat diterima.
Shog9

3

Pembuatan resep umumnya digunakan sebagai contoh aplikasi untuk sistem Case Based Reasoning. Itu bahkan digunakan sebagai contoh di Halaman Wikipedia . Pencarian google untuk "resep alasan berdasarkan kasus" menghasilkan banyak hasil.


1

Kelas algoritma yang Anda cari adalah bandit. Mereka biasanya digunakan untuk menangani bagian eksplorasi dari masalah klasifikasi.

Pendekatan dasar akan mewakili resep sebagai sekantong komponen terbatas (vektor boolean dengan nilai k 0 paling tinggi) dan menggunakan LinUCB untuk memilih satu set komponen. Maka umpan baliknya adalah 'suka' atau 'tidak suka'. Tentu saja jika Anda seorang bayesian Anda dapat memilih untuk menggunakan Trueskill (menggunakan varian Adpredictor).

Sesuatu yang kurang mendasar akan perlu menggunakan kernel daripada pemisahan linear. Kernel ucb dapat membantu menangani bagian itu. Tetapi pada beberapa titik saya pikir akan bermanfaat untuk memperhatikan komposisi kimia dari alimen karena pada akhirnya Anda mungkin ingin mencapai keseimbangan antara rasa dasar yang berbeda.

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.