Dalam tantangan ini, tugas Anda adalah membuat program menulis dengan kurang dari 300 karakter yang membutuhkan paragraf pendek atau beberapa kalimat yang dikatakan seorang kandidat dan menampilkan siapa yang mengatakannya.
Input : Dapat diambil sebagai parameter untuk suatu fungsi, input ke program dll. Ini akan menjadi paragraf pendek, diselingi dengan benar.
Keluaran : Calon yang Anda pikirkan. Ini bisa jadi salah satunya
Ben Carson (1)
Ted Cruz (2)
John Kasich (3)
Marco Rubio (4)
Donald Trump (5)
Hillary Clinton (6)
Bernie Sanders (7)
Saya telah meninggalkan nama-nama orang yang keluar pada tanggal 1 Maret. Anda dapat menampilkan nama itu sendiri, atau, lebih mudahnya, nomor yang sesuai dengan namanya.
Mencetak: Anda adalah persentase dari kasus uji yang Anda lakukan dengan benar. Kemenangan skor tertinggi. Dasi (atau skor sempurna) dipecah berdasarkan panjang kode seperti pada kode golf.
Kasus uji dapat ditarik dari:
http://www.presidency.ucsb.edu/debates.php
Klik pada setiap debat, baik Demokrat dan Republik yang telah terjadi sejauh ini (sebelum 1 Maret). Setiap paragraf adalah uji kasus, kecuali jika "paragraf" kurang dari 20 karakter.
Berikut ini adalah kode yang mengeluarkan kasus uji dari halaman tertentu:
var t = $(".tools").parentNode.querySelectorAll("p");
var categ = {}, cur = 0;
for (var i = 0; i < t.length; ++i) {
var p = t[i], str = p.innerText;
if (p.querySelector("b")) {
cur = p.querySelector("b").innerText.replace(':', '');
str = str.replace(/^.*?:\s/, '');
}
str = str.replace(/\[applause\]/g, '')
if (str.length < 20) continue;
if (categ[cur] == null) categ[cur] = [];
categ[cur].push(str);
}
Anda kemudian bisa melakukannya categ.SANDERS
untuk mendapatkan daftar semua paragraf yang dikatakan Senator Sanders.
Anda dapat membuang apa pun yang tidak dikatakan oleh kandidat yang tercantum di atas (misalnya categ.BUSH
ataucateg.CHRISTIE
).
Berikut adalah file dengan semua kasus uji: https://drive.google.com/file/d/0BxMn8--P71I-bDZBS2VZMDdmQ28/view?usp=sharing
File ini diatur oleh kandidat
CANDIDATE CANDIDATE_LAST_NAME
(empty line)
Series of statements. Each paragraph is separated by (NEW PARAGRAPH)-
(empty line)
CANDIDATE NEXT_CANDIDATE_LAST_NAME
(empty line)
etc.
Contoh pengiriman sebagian adalah:
if (/ win | wall | great | beautiful/.test(p)) return 5;
if (/ percent | top one | rigged /.test(p)) return 7;
// etc. for all candidates
atau
var words = p.split(' ');
// majority of words have less than 5 characters
if (words.length - words.filter(a => a.length < 5).length < 4) evidence[5]++;
// at the end
return /* index with the most evidence */
Berikut adalah tempat di mana Anda dapat menguji solusi javascript: https://jsfiddle.net/prankol57/abfuhxrh/
Kode menggunakan parameter p
untuk mewakili frasa untuk mengklasifikasikan. Contoh kode yang mendapat skor sekitar 20% (menebak akan mendapatkan sekitar 11%):
if (/ rigged | top | percent | Wall Street /.test(p)) return 'Sanders';
return 'Trump';
Persis apa yang saya tanyakan: Tulis program / fungsi dalam kurang dari 300 karakter yang mengambil sebagai input frase yang dikatakan seorang kandidat dan kembali sebagai output yang kandidat mengatakannya. Skor Anda adalah persentase dari kasus uji yang Anda lakukan dengan benar. Kemenangan skor tertinggi.
Ya, saya tahu bahwa banyak baris memiliki [laughter]
atau [cheering]
di dalamnya. Ini tidak akan dihapus. Paling buruk, itu adalah informasi tambahan yang bisa Anda abaikan; paling-paling, itu adalah informasi tambahan yang dapat Anda gunakan (mis. saya mengada-ada, tetapi mungkin orang tertawa adalah bukti bahwa Marco Rubio berbicara). Kasing uji adalah seperti yang ditampilkan dalam file teks.