পেঁয়াজ, না পেঁয়াজ?


11

পেঁয়াজ (সতর্কতা: অনেক নিবন্ধগুলি এনএসএফডাব্লু) একটি ব্যঙ্গাত্মক সংবাদ সংস্থা যা traditionalতিহ্যবাহী নিউজ মিডিয়াগুলিকে বিদ্রূপ করে। ২০১৪ সালে, পেঁয়াজ ক্লিকহোল (সতর্কতা: এছাড়াও প্রায়শই এনএসএফডাব্লু) চালু করে, এটি একটি ব্যঙ্গাত্মক সংবাদ ওয়েবসাইট যা বাজফিডের মতো "ক্লিকবাইট" সাইটগুলিকে ব্যঙ্গ করে। পো এর আইনকে ধন্যবাদ , লোকেরা পেঁয়াজ বা ক্লিকহোলের নিবন্ধগুলির শিরোনামগুলি পড়তে এবং এগুলিকে সত্য বলে বিশ্বাস করে, তারা ব্যঙ্গ করার ইচ্ছা করে তা জেনেও মোটামুটি সাধারণ। কথোপকথনটি হাস্যকর-সাউন্ডিং রিয়েল নিউজ স্টোরিগুলির সাথেও ঘটে - লোকেরা প্রায়শই মনে করে যে তারা যখন হয় না তখন তারা ব্যঙ্গ হয়।

এই বিভ্রান্তি স্বাভাবিকভাবেই নিজেকে একটি খেলায় ঘৃণা করে - একটি নিউজ শিরোনাম দেওয়া হয়, এটি ব্যঙ্গাত্মক কিনা তা অনুমান করার চেষ্টা করুন। এই চ্যালেঞ্জটি হ'ল একটি প্রোগ্রামের সাথে হ'ল এটি করা।

একটি নিউজ শিরোনাম দেওয়া হয়েছে (কেবল মুদ্রণযোগ্য এএসসিআইআই অক্ষর এবং স্পেসের সমন্বিত একটি স্ট্রিং), 1শিরোনামটি যদি ব্যঙ্গ হয় তবে আউটপুট 0। আপনার স্কোরটি শিরোনামের মোট সংখ্যার দ্বারা বিভক্ত সঠিক আউটপুটগুলির সংখ্যা হবে।

সাধারণ হিসাবে, স্ট্যান্ডার্ড লুফোলগুলি (বিশেষত পরীক্ষার কেসগুলির জন্য অনুকূলকরণ ) অনুমোদিত নয়। এটি প্রয়োগ করতে, আমি আপনার প্রোগ্রামগুলি 200 টি লুকানো পরীক্ষার কেস (একটি পেঁয়াজ থেকে 100, না পেঁয়াজ থেকে 100) এর সেটগুলিতে চালাব। আপনার সমাধানটি বৈধ হওয়ার জন্য সর্বজনীন পরীক্ষার ক্ষেত্রে আপনার স্কোরের চেয়ে 20 শতাংশ পয়েন্টের চেয়ে কম স্কোর করতে হবে না।

পরীক্ষার কেস

এই চ্যালেঞ্জের জন্য পরীক্ষার মামলাগুলি সামনে আসার জন্য, আমি পেঁয়াজ সাব্রেডডিট থেকে 25 টি শিরোনামগুলি বেছে নিয়েছি (যেখানে পেঁয়াজ এবং এর চাইল্ড সাইটগুলি থেকে ক্লিকহোলের মতো নিবন্ধগুলি পোস্ট করা হয়েছে), এবং নট দি পিঁয়াজের সাব্রেডডিট থেকে 25 টি শিরোনাম আছে (যেখানে আসল খবর নিবন্ধগুলি ব্যঙ্গাত্মক মত শব্দ পোস্ট করা হয়)। আমি শিরোনামগুলিতে কেবলমাত্র পরিবর্তনগুলি হলাম নিয়মিত ASCII কোট সহ "অভিনব" কোটগুলি প্রতিস্থাপন করা হয়েছিল এবং মূলধনকে মানিককরণ করা হয়েছিল - অন্য সমস্ত কিছুই মূল নিবন্ধের শিরোনাম থেকে অপরিবর্তিত রয়েছে। প্রতিটি শিরোনাম নিজস্ব লাইনে রয়েছে।

পেঁয়াজ শিরোনাম

Trump Warns Removing Confederate Statues Could Be Slippery Slope To Eliminating Racism Entirely
'No Way To Prevent This,' Says Only Nation Where This Regularly Happens
My Doctor Told Me I Should Vaccinate My Children, But Then Someone Much Louder Than My Doctor Told Me I Shouldn't
Man At Park Who Set Up Table Full Of Water Cups Has No Idea How Passing Marathon Runners Got Impression They Can Take Them
This Child Would Have Turned 6 Today If His Mother Hadn't Given Birth To Him In October
Incredible Realism: The Campaign In The Next 'Call Of Duty' Will Begin At Your Avatar's High School Cafeteria When He's Being Tricked Into Joining The Military By A Recruiter
'Sometimes Things Have To Get Worse Before They Get Better,' Says Man Who Accidentally Turned Shower Knob Wrong Way
Report: Uttering Phrase 'Easy Does It' Prevents 78% Of Drywall Damage While Moving Furniture
Barbara Bush Passes Away Surrounded By Loved Ones, Jeb
Family Has Way Too Many Daughters For Them Not To Have Been Trying For Son
News: Privacy Win! Facebook Is Adding A 'Protect My Data' Button That Does Nothing But Feels Good To Press
Dalai Lama Announces Next Life To Be His Last Before Retirement
Researchers Find Decline In Facebook Use Could Be Directly Linked To Desire To Be Happy, Fully Functioning Person
Manager Of Combination Taco Bell/KFC Secretly Considers It Mostly A Taco Bell
Trump: 'It's My Honor To Deliver The First-Ever State Of The Union'
Daring To Dream: Jeff Bezos Is Standing Outside A Guitar Center Gazing Longingly At A $200 Billion Guitar
Area Dad Looking To Get Average Phone Call With Adult Son Down To 47.5 Seconds
Experts Warn Beef Could Act As Gateway Meat To Human Flesh
Jeff Bezos Named Amazon Employee Of The Month
Dad Suggests Arriving At Airport 14 Hours Early
Report: Only 3% Of Conversations Actually Need To Happen
Delta Pilot Refuses To Land Until Gun Control Legislation Passed
Family Wishes Dad Could Find Healthier Way To Express Emotions Than Bursting Into Full-Blown Musical Number
New Honda Commercial Openly Says Your Kids Will Die In A Car Crash If You Buy A Different Brand
Teacher Frustrated No One In Beginner Yoga Class Can Focus Chakras Into Energy Blast

পেঁয়াজ শিরোনাম নয়

Man Rescued From Taliban Didn't Believe Donald Trump Was President
Nat Geo Hires Jeff Goldblum To Walk Around, Being Professionally Fascinated By Things
Mike Pence Once Ratted Out His Fraternity Brothers For Having A Keg
Reddit CEO Tells User, "We Are Not The Thought Police," Then Suspends That User
Trump Dedicates Golf Trophy To Hurricane Victims
Uber's Search For A Female CEO Has Been Narrowed Down To 3 Men
ICE Director: ICE Can't Be Compared To Nazis Since We're Just Following Orders
Passenger Turned Away From Two Flights After Wearing 10 Layers Of Clothing To Avoid Luggage Fee
Somali Militant Group Al-Shabaab Announces Ban On Single-Use Plastic Bags
UPS Loses Family's $846k Inheritance, Offers To Refund $32 Shipping Fee
Teen Suspended From High School After Her Anti-Bullying Video Hurts Principal's Feelings
Alabama Lawmaker: We Shouldn't Arm Teachers Because Most Are Women
Cat Named After Notorious B.I.G. Shot Multiple Times - And Survives
EPA Head Says He Needs To Fly First Class Because People Are Mean To Him In Coach
Apology After Japanese Train Departs 20 Seconds Early
Justin Bieber Banned From China In Order To 'Purify' Nation
Alcohol Level In Air At Fraternity Party Registers On Breathalyzer
NPR Tweets The Declaration Of Independence, And People Freak Out About A 'Revolution'
Man Who Mowed Lawn With Tornado Behind Him Says He 'Was Keeping An Eye On It.'
After Eating Chipotle For 500 Days, An Ohio Man Says He's Ready For Something New
'El Chapo' Promises Not To Kill Any Jurors From Upcoming Federal Trial
After 4th DWI, Man Argues Legal Limit Discriminates Against Alcoholics
Palestinian Judge Bans Divorce During Ramadan Because 'People Make Hasty Decisions When They're Hungry'
Argentinian Officers Fired After Claiming Mice Ate Half A Ton Of Missing Marijuana
'Nobody Kill Anybody': Murder-Free Weekend Urged In Baltimore

6
Your score will be the number of correct outputs divided by the total number of headlinesবাইকাউন্ট একটি টাই ব্রেকার?
স্কিডেদেব

9
আমি একটু বিভ্রান্ত কোন ধরণের সমাধান আপনি আশা করেন? প্রতিটি সমাধানের জন্য কিছুটা "পরীক্ষার কেসগুলির জন্য অনুকূলিতকরণ" করতে হবে, এমন একটি এআই লিখতে নিষেধাজ্ঞাগুলি যা ইংরাজী বুঝতে পারে এবং রসিকতার জন্য একটি ধারণা রয়েছে। উদাহরণস্বরূপ, আরনাউল্ডের সমাধানটি /ly\b/কেবলমাত্র কাজ করে তা সনাক্ত করে কারণ আপনি যে 25 টি পেঁয়াজ শিরোনামটি বেছে নিয়েছিলেন তা আরও বেশি অ্যাডওয়্যারের সাথে ঘটেছিল, তবে সবার জন্য আমি জানি যে আপনি এটি কোনও অন্য পরীক্ষার ব্যাটারি দিয়ে সহজেই ট্রিপ করতে পারবেন। এবং কে বলবে যে তার সহগগুলি তার স্কোরটি অনুকূল করতে বেছে নেওয়া হয়নি? (কেন সে তাদের অনুকূলিত করবে না?)
লিন

10
এই পরীক্ষার ব্যাটারিটি কিছুটা অস্বাভাবিক বলে মনে হচ্ছে। এটি কোনও শ্রেণিবদ্ধের জন্য জিজ্ঞাসার মতো যা কোনও ছবিতে কুকুর সনাক্ত করতে পারে, তবে "ইতিমধ্যে আপনি যে কুকুরের শপথ নেবেন 25 এর শিরোনামের শিরোনামের শিরোনামের শিরোনামে" শিরোনামের একটি বাজেড নিবন্ধ থেকে আপনার ইতিবাচক পরীক্ষার মামলাগুলি কুকুরের ফটো হিসাবে এবং আপনার নেতিবাচক পরীক্ষার কেস হিসাবে গ্রহণ করুন, কিন্তু না, টার্নস আউট তারা নেই! (# 11 আপনার মনকে ফুটিয়ে তুলবে!) "এটি একটি শক্ত যথেষ্ট সমস্যাটিকে আরও শক্ত করে তোলে।
সোফিয়া ল্যাটারের

4
শুধুমাত্র চ্যালেঞ্জই শক্ত নয়, পার্থক্যটি কী তা আমার কাছে স্পষ্ট নয় (আমার কাছেও)। আমি যদি এটি সমাধান করতে না পারি তবে অবশ্যই আমার প্রোগ্রামটি এটি সমাধান করতে পারে না (এটি আমাকে বোঝান যে এটি পরীক্ষাগুলির ক্ষেত্রে হার্ডকোড দেয় না)
ব্যবহারকারী 202729

4
ওয়েল, আমি brain.jsএই ইস্যুতে নমুনা এবং প্রদত্ত লিঙ্কগুলি থেকে প্রতিটি ধরণের 100 টি নমুনা ব্যবহার করে একটি কৃত্রিম নিউরাল নেটওয়ার্ক প্রশিক্ষণ +36 ঘন্টা ব্যয় করেছি , তবে প্রশিক্ষণ সেটে উপস্থিত ছিল না এমন নতুন শিরোনামগুলির সাথে ফলাফলটি যথেষ্ট ভাল হয়নি । আমি সম্পন্ন করেছি: পি
নাইট 2

উত্তর:


7

জাভাস্ক্রিপ্ট (ES7), 39/50 (78%)

লুকানো পরীক্ষার মামলায় 63.5% (127/200)

শিরোনামের দৈর্ঘ্য, স্পেস সংখ্যা এবং -lyপ্রত্যয় ব্যবহারের উপর ভিত্তি করে একটি সরল হিউরিস্টিক ।

isOnion = str =>
  str.length ** 0.25 +
  str.split(' ').length ** 1.25 * 2 +
  str.split(/ly\b/).length ** 1.75 * 7
  > 76

এটি অনলাইন চেষ্টা করুন!


এটি কতটা সহজ এটি অযৌক্তিকভাবে কার্যকর।
ডন হাজার হাজার

এই সমাধানটি গোপন পরীক্ষার ক্ষেত্রে 63.5% স্কোর করেছে, সুতরাং এটি বৈধ।
মেগো

স্যান্ডবক্সের শুরুতে যতটা সম্ভব সম্ভব ছিল না (100%, মানক হওয়ার আগে মূলধন পার্থক্যকে কাজে লাগিয়ে) তবে এটি সত্যই সহজ।
জাকারি

@ মেগো কৌতুহলের ঠিক বাইরে, এই এনএসএফডাব্লু সংস্করণটি কি গোপন পরীক্ষার ক্ষেত্রে স্কোরকে উন্নত করে? :)
আর্নৌল্ড

@ সংস্করণটির সাথে @ আর্নল্ড 66%
মেগো

6

পাইথন 3, 84%

লুকানো পরীক্ষার মামলার বিরুদ্ধে লড়াই করা হয়নি।

এটি কেরাস এলএসটিএম আরএনএন বিভিন্ন শিরোনামে প্রশিক্ষিত ব্যবহার করে। এটি চালানোর জন্য আপনার নীচের কেরাস এবং গিটহাব: রেপো লিঙ্কে আমি যে মডেলটি উপলভ্য করেছি তা প্রয়োজন । আপনার প্রয়োজন হবে মডেল .h5এবং শব্দ / ভেক্টর ম্যাপিংগুলি .pkl। সাম্প্রতিক

নির্ভরতাগুলি হ'ল:

import numpy as np
from pickle import load
from keras.preprocessing import sequence, text
from keras.models import Sequential
from keras.layers import Dense, Embedding, SpatialDropout1D, LSTM, Dropout
from keras.regularizers import l2
import re

সেটিংসটি হ'ল:

max_headline_length = 70
word_count = 20740

মডেলটি হ'ল:

model = Sequential()
model.add(Embedding(word_count, 32, input_length=max_headline_length))
model.add(SpatialDropout1D(0.4))
model.add(LSTM(64, kernel_regularizer=l2(0.005), dropout=0.3, recurrent_dropout=0.3))
model.add(Dropout(0.5))
model.add(Dense(32, kernel_regularizer=l2(0.005)))
model.add(Dropout(0.5))
model.add(Dense(2, kernel_regularizer=l2(0.001), activation='softmax'))

এখন মডেল এবং শব্দ এম্বেডিং লোড করতে:

model.load_weights('model.h5')
word_to_index = load(open('words.pkl', 'rb'))

এবং যদি স্ট্রিংটি 'নটওঅনিয়ন' বা 'থিওনিয়ন' থেকে থাকে তা পরীক্ষা করার কোডটি আমি একটি দ্রুত সহায়ক সহায়ক ফাংশন লিখেছি যা স্ট্রিংটিকে সংশ্লিষ্ট শব্দ এম্বেডিংয়ে রূপান্তর করে:

def get_words(string):
  words = []
  for word in re.finditer("[a-z]+|[\"'.;/!?]", string.lower()):
    words.append(word.group(0))
  return words

def words_to_indexes(words):
  return [word_to_index.get(word, 0) for word in words]

def format_input(word_indexes):
  return sequence.pad_sequences([word_indexes], maxlen=max_headline_length)[0]

def get_type(string):
  words = words_to_indexes(get_words(string))
  result = model.predict(np.array([format_input(words)]))[0]

  if result[0] > result[1]:
    site = 'NotTheOnion'
  else:
    site = 'TheOnion'

  return site

ব্যাখ্যা

এই কোডটি এমন একটি মডেল চালায় যা শব্দের একটি 'ভেক্টর' হিসাবে উপস্থাপন করে শব্দের মধ্যকার সম্পর্ক বিশ্লেষণ করে। আপনি শব্দ এম্বেডিং সম্পর্কে আরও শিখতে পারেন এখানে

এটি শিরোনামে প্রশিক্ষিত কিন্তু পরীক্ষার কেসগুলি বাদ দেওয়া হয়

এই প্রক্রিয়াগুলি বেশ কিছুটা প্রক্রিয়াজাতকরণের পরে স্বয়ংক্রিয় হয়। আমি চূড়ান্ত প্রক্রিয়াজাত শব্দের তালিকাটিকে একটি হিসাবে বিতরণ করেছি .pklতবে শব্দ এম্বেডিংয়ে যা ঘটে তা হ'ল প্রথমে আমরা বাক্যটি বিশ্লেষণ করি এবং শব্দগুলি বিচ্ছিন্ন করি।

আমাদের কাছে এখন শব্দগুলি থাকার পরে পরবর্তী পদক্ষেপটি হ'ল নির্দিষ্ট শব্দের মধ্যে পার্থক্য এবং সাদৃশ্য বুঝতে সক্ষম হয় যেমন kingএবং queenবনাম dukeএবং duchess। এই এম্বেডিংগুলি আসল শব্দের মধ্যে নয় তবে .pklফাইলগুলিতে সংরক্ষণ করা শব্দের প্রতিনিধিত্বকারী সংখ্যার মধ্যে ঘটে না । যে শব্দগুলি মেশিনটি বুঝতে পারে না সেগুলি একটি বিশেষ শব্দের সাথে ম্যাপ করা হয় <UNK>যা আমাদের বুঝতে দেয় যে সেখানে একটি শব্দ রয়েছে তবে অর্থ কী তা সঠিকভাবে জানা যায় না।

এখন যেহেতু শব্দগুলি বোঝা যায়, শব্দের ক্রম (শিরোনাম) বিশ্লেষণ করা দরকার। এটিই 'এলএসটিএম' করে, একটি এলটিএসএম হ'ল এক ধরণের 'আরএনএন' সেল যা বিলুপ্ত গ্রেডিয়েন্ট প্রভাব এড়িয়ে চলে। আরও সহজভাবে, এটি শব্দের ক্রম নেয় এবং এটি আমাদের মধ্যে সম্পর্ক খুঁজে পেতে দেয়।

এখন চূড়ান্ত স্তর Denseযা মূলত মানে এটি একটি অ্যারের আউটপুট মানে মত মত হল ধরনের: [probability_is_not_onion, probability_is_onion]। কোনটি বড় তা আবিষ্কার করে আমরা চয়ন করতে পারি প্রদত্ত শিরোনামটির জন্য কোনটি সবচেয়ে আত্মবিশ্বাসী ফলাফল।


3

পাইথন 3 + কেরাস, 41/50 = 82%

গোপনে পরীক্ষার ক্ষেত্রে 83% (166/200)

import json
import keras
import numpy
import re

from keras import backend as K

STRIP_PUNCTUATION = re.compile(r"[^a-z0-9 ]+")


class AttentionWeightedAverage(keras.engine.Layer):
    def __init__(self, return_attention=False, **kwargs):
        self.init = keras.initializers.get("uniform")
        self.supports_masking = True
        self.return_attention = return_attention
        super(AttentionWeightedAverage, self).__init__(**kwargs)

    def build(self, input_shape):
        self.input_spec = [keras.engine.InputSpec(ndim=3)]
        assert len(input_shape) == 3

        self.W = self.add_weight(shape=(input_shape[2], 1),
                                 name="{}_W".format(self.name),
                                 initializer=self.init)
        self.trainable_weights = [self.W]

        super(AttentionWeightedAverage, self).build(input_shape)

    def call(self, x, mask=None):
        logits = K.dot(x, self.W)
        x_shape = K.shape(x)
        logits = K.reshape(logits, (x_shape[0], x_shape[1]))

        ai = K.exp(logits - K.max(logits, axis=-1, keepdims=True))

        if mask is not None:
            mask = K.cast(mask, K.floatx())
            ai = ai * mask

        att_weights = ai / (K.sum(ai, axis=1, keepdims=True) + K.epsilon())
        weighted_input = x * K.expand_dims(att_weights)

        result = K.sum(weighted_input, axis=1)

        if self.return_attention:
            return [result, att_weights]

        return result

    def get_output_shape_for(self, input_shape):
        return self.compute_output_shape(input_shape)

    def compute_output_shape(self, input_shape):
        output_len = input_shape[2]

        if self.return_attention:
            return [(input_shape[0], output_len), (input_shape[0], input_shape[1])]

        return (input_shape[0], output_len)

    def compute_mask(self, input, input_mask=None):
        if isinstance(input_mask, list):
            return [None] * len(input_mask)
        else:
            return None


if __name__ == "__main__":
    model = keras.models.load_model("combined.h5", custom_objects={"AttentionWeightedAverage": AttentionWeightedAverage})
    with open("vocabulary.json", "r") as fh:
        vocab = json.load(fh)

    while True:
        try:
            headline = input()
        except EOFError:
            break

        tokens = STRIP_PUNCTUATION.sub("", headline.lower()).split()

        inp = numpy.zeros((1, 45))

        for i, token in enumerate(tokens):
            try:
                inp[0,i] = vocab[token]
            except KeyError:
                inp[0,i] = 1

        print(model.predict(inp)[0][0] > 0.3)

combined.h5এবং এখানvocabulary.json থেকে (খুব বড়) এবং এখানে পুনরুদ্ধার করা যেতে পারে ।

পুরো-সংযুক্ত শ্রেণিবদ্ধ একটি প্রাক-প্রশিক্ষিত সংবেদন বিশ্লেষণ মডেল ডিপমোজি, যা স্ট্যাকড দ্বি-দিকনির্দেশক এলএসটিএম এবং একটি মনোযোগী ব্যবস্থা নিয়ে গঠিত to আমি ডিপমজি স্তরগুলি হিমশীতল করে চূড়ান্ত সফটম্যাক্স স্তরটি বের করেছিলাম, কেবল সম্পূর্ণ সংযুক্ত স্তরগুলিকে প্রশিক্ষণ দিয়েছি, তারপরে ডিপমজি স্তরগুলি জমাটবদ্ধ করে ফিনেটুনিংয়ের জন্য তাদের একত্রে প্রশিক্ষিত করেছি। এই দৃষ্টি নিবদ্ধ করা প্রক্রিয়াটি https://github.com/bfelbo/DeepMoji/blob/master/ दीपmoji/attlayer.py থেকে নেওয়া হয়েছে (বিশেষত যেহেতু আমি তাদের সমস্ত কোড এক শ্রেণির জন্য নির্ভরতা হিসাবে ব্যবহার করতে চাই না পাইথন 2 এবং মডিউল হিসাবে ব্যবহার করার পরিবর্তে অনর্থক ...)

এটি আমার নিজের বৃহত্তর বৈধতা সেটটি> 90% হয় সে বিবেচনা করে মেগো পরীক্ষার সেটটিতে আশ্চর্যজনকভাবে খারাপভাবে সম্পাদন করে। সুতরাং আমি এটি দিয়ে এখনও করা হয়নি।


লুকানো পরীক্ষার ক্ষেত্রে 83%, ধরে নিলাম আমি এটি সঠিকভাবে
চালিয়েছি

1

জাভাস্ক্রিপ্ট ( নোড.জেএস ), 98% (49/50)

গোপনে পরীক্ষার ক্ষেত্রে 96% (192/200)

const words = require('./words');
const bags = require('./bags');

let W = s => s.replace(/[^A-Za-z0-9 ]/g, '').toLowerCase().split(' ').filter(w => w.length > 3);

let M = b => {
    for (let i = 0; i < bags.length; i++) {
        let f = true;
        for (let j = 0; j < bags[i].length; j++) if (!b.includes(bags[i][j])) {
            f = false;
            break;
        }
        if (f) return true;
    }
    return false;
};

let O = s => {
    let b = [];
    W(s).forEach(w => {
        let p = words.indexOf(w);
        if (p >= 0) b.push(p);
    });
    return (b.length > 0 && M(b));
};

এর জন্য দুটি বড় JSON ফাইল দরকার যা আমি সেগুলি এখানে বা "টিআইও" এ রাখতে পারি না। দয়া করে নীচের লিঙ্কগুলি থেকে এগুলি ডাউনলোড করুন এবং জেএস ফাইলের মতো একই ফোল্ডারে নাম words.jsonএবং bags.jsonনামগুলি দিয়ে সেভ করুন । পরীক্ষার কেস এবং ফলাফল / শতাংশ মুদ্রণের সাথে একটি জেএস ফাইলের জন্য একটি লিঙ্কও রয়েছে। আপনি আপনার লুকানো পরীক্ষার কেসগুলি onionsএবং nonOnionsভেরিয়েবলগুলিতে রাখতে পারেন।

3 টি ফাইল একই ডিরেক্টরিতে সংরক্ষণ করার পরে চালান node onion.js

Oফাংশন ফিরে আসবে trueযদি এটা পেঁয়াজ নেই এবং falseযদি না হয় তাহলে। ইনপুট স্ট্রিংটি পেঁয়াজ কিনা তা সনাক্ত করতে শব্দের ব্যাগগুলির একটি বৃহত তালিকা (অর্ডার ছাড়াই) ব্যবহার করে। ধরণের হার্ড কোডড, তবে এলোমেলো পরীক্ষার বিভিন্ন ক্ষেত্রে খুব ভাল কাজ করে।


লুকানো পরীক্ষার
কেসগুলিতে

0

আরনাউল্ডের সমাধানটি বন্ধ করে দেওয়া

জাভাস্ক্রিপ্ট (ES6), 41/50

লুকানো পরীক্ষার ক্ষেত্রে 64% (128/200)

str.includes("Dad") || str.length ** .25 +
  str.split(' ').length ** 1.25 * 2 +
  str.split(/ly\b/).length ** 1.75 * 7
 > 76

জাভাস্ক্রিপ্ট (ES6), 42/50

লুকানো পরীক্ষার মামলায় 62.5% (125/200) (অবৈধ)

isOnion = str =>
  str.includes("Dad") || str.length ** .25 +
  str.split(' ').length ** 1.25 * 2 +
  str.split(' ').filter(w => w.length > 3 && w.split(/ly/).length > 1).length * 23.54 +
 /\d/.test(str) * 8
 > 76

দৈর্ঘ্য + শব্দের গণনা + "ল্য" ধারণাটি বেশ ভালভাবে কাজ করে, আমি "বাবা" শব্দটি পরীক্ষা করে আরও কয়েকটি পয়েন্ট বের করতে সক্ষম হয়েছি (যখন শিরোনামে তৃতীয় ব্যক্তির লোকেরা বাবার বিষয়ে বাস্তব নিবন্ধগুলি কথা বলে?) এবং "লাই" অনুসন্ধানের তাত্পর্য পরিবর্তন করে এবং শিরোনামে সংখ্যার উপস্থিতি যাচাই করে একটি অতিরিক্ত পয়েন্ট (যা পরীক্ষার বাইরে সাধারণ ক্ষেত্রে কম বৈধ হতে পারে, তাই আমি উভয় সমাধান রেখেছি)


আমি বাবার অংশটি সম্পর্কে জানি না ... আমার কাছে পরীক্ষার কেসটি অপ্টিমাইজ করার মতো মনে হচ্ছে ...
ডন হাজার হাজার

এবং হ্যাঁ, আমি প্রচুর পেঁয়াজ নাটকের নিবন্ধগুলি পিতাগুলির উল্লেখ করতে পারি
ডন হাজার হাজার

এটি হিউরিস্টিকের অংশ হিসাবে এটি করার আরও ভাল উপায় এবং এর মধ্যে বাবা থাকতে কেবল একটি শক্ত "জয়" নাও থাকতে পারে, তবে আমি কল্পনা করি এমনকি পরীক্ষার ডাটাবেসের বাইরেও একটি নির্দিষ্ট "বাবা" সম্পর্কে
কিছুটা স্পষ্টভাবে

লুকানো পরীক্ষার ক্ষেত্রে আপনার প্রথম সমাধানটি 64% স্কোর করেছে, সুতরাং এটি বৈধ। আপনার দ্বিতীয় সমাধানটি গোপন পরীক্ষার ক্ষেত্রে 62.5% স্কোর করেছে, সুতরাং এটি বৈধ নয়।
মেগো

@ মেগো কি নিকটতম মার্জিন ...
ব্যবহারকারী 202729
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.