Trong thử thách này, nhiệm vụ của bạn là tạo ra một chương trình có ít hơn 300 ký tự có một đoạn văn ngắn hoặc một vài câu mà một ứng cử viên đã nói và xuất ra ai đã nói nó.
Đầu vào : Có thể được lấy làm tham số cho một chức năng, đầu vào cho một chương trình, vv Nó sẽ là một đoạn văn ngắn, được chấm câu đúng.
Đầu ra : Ứng cử viên mà bạn nghĩ nó là. Đây có thể là một trong
Ben Carson (1)
Ted Cruz (2)
John Kasich (3)
Marco Rubio (4)
Donald Trump (5)
Hillary Clinton (6)
Bernie Sanders (7)
Tôi đã để lại tên của những người đã bỏ học kể từ ngày 1 tháng 3. Bạn có thể tự xuất tên, hoặc, thuận tiện hơn, số tương ứng với tên.
Chấm điểm: Điểm của bạn là tỷ lệ phần trăm các trường hợp kiểm tra bạn nhận được đúng. Điểm số cao nhất chiến thắng. Ties (hoặc điểm hoàn hảo) bị phá vỡ bởi độ dài mã như trong một mã golf.
Các trường hợp thử nghiệm có thể được kéo từ:
http://www.presidency.ucsb.edu/debates.php
Nhấp vào từng cuộc tranh luận, cả Dân chủ và Cộng hòa đã xảy ra cho đến nay (trước ngày 1 tháng 3). Mỗi đoạn là một trường hợp thử nghiệm, trừ khi "đoạn" dài dưới 20 ký tự.
Đây là mã lấy ra các trường hợp thử nghiệm từ một trang cụ thể:
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);
}
Sau đó, bạn có thể làm categ.SANDERS
để có được một danh sách tất cả các đoạn mà Thượng nghị sĩ Sanders đã nói.
Bạn có thể loại bỏ bất cứ điều gì không được nói bởi các ứng cử viên được liệt kê ở trên (ví dụ categ.BUSH
hoặc categ.CHRISTIE
).
Đây là tệp có tất cả các trường hợp thử nghiệm: https://drive.google.com/file/d/0BxMn8--P71I-bDZBS2VZMDdmQ28/view?usp=shaming
Các tập tin được tổ chức bởi ứng cử viên
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.
Một ví dụ đệ trình một phần sẽ là:
if (/ win | wall | great | beautiful/.test(p)) return 5;
if (/ percent | top one | rigged /.test(p)) return 7;
// etc. for all candidates
hoặc là
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 */
Đây là nơi bạn có thể thử nghiệm các giải pháp javascript: https://jsfiddle.net/prankol57/abfuhxrh/
Mã sử dụng tham số p
để biểu diễn cụm từ để phân loại. Mã ví dụ đạt khoảng 20% (đoán sẽ nhận được khoảng 11%):
if (/ rigged | top | percent | Wall Street /.test(p)) return 'Sanders';
return 'Trump';
Chính xác những gì tôi đang hỏi: Viết một chương trình / hàm dưới 300 ký tự lấy đầu vào là cụm từ mà ứng viên đã nói và trả về là đầu ra mà ứng viên đã nói. Điểm của bạn là tỷ lệ phần trăm của các trường hợp kiểm tra bạn nhận được đúng. Điểm số cao nhất chiến thắng.
Vâng, tôi biết rằng rất nhiều dòng có [laughter]
hoặc [cheering]
trong đó. Những thứ này sẽ không được gỡ bỏ. Tồi tệ nhất, chúng là thông tin bổ sung mà bạn có thể bỏ qua; tốt nhất, chúng là những thông tin bổ sung mà bạn có thể sử dụng (ví dụ: tôi đã tạo ra điều này, nhưng có lẽ tiếng cười của mọi người là bằng chứng cho thấy Marco Rubio đang nói). Các trường hợp thử nghiệm là như chúng xuất hiện trong tệp văn bản.