ডোমেন নাম মূল্যায়ন


25

ডোমেন নেম ট্রেডিং বড় ব্যবসা। ডোমেন নেম ব্যবসায়ের জন্য সবচেয়ে দরকারী সরঞ্জামগুলির মধ্যে একটি হ'ল একটি স্বয়ংক্রিয় মূল্যায়ন সরঞ্জাম, যাতে আপনি সহজেই অনুমান করতে পারেন যে প্রদত্ত ডোমেনটির মূল্য কত। দুর্ভাগ্যক্রমে, অনেকগুলি স্বয়ংক্রিয় মূল্যায়ন পরিষেবা ব্যবহারের জন্য সদস্যতা / সাবস্ক্রিপশন প্রয়োজন require এই চ্যালেঞ্জে, আপনি একটি সাধারণ মূল্যায়ন সরঞ্জাম লিখবেন যা .com ডোমেনগুলির মানগুলি মোটামুটি অনুমান করতে পারে।

ইনপুট আউটপুট

ইনপুট হিসাবে, আপনার প্রোগ্রামে ডোমেন নামের একটি তালিকা নেওয়া উচিত, প্রতি লাইনে একটি। প্রতিটি ডোমেন নাম রেগেক্সের সাথে মিলবে ^[a-z0-9][a-z0-9-]*[a-z0-9]$, এর অর্থ এটি ছোট হাতের অক্ষর, অঙ্ক এবং হাইফেন নিয়ে গঠিত। প্রতিটি ডোমেন কমপক্ষে দুটি অক্ষর দীর্ঘ এবং হাইফেন দিয়ে শুরু হয় না শেষ হয়। .comপ্রতিটি ডোমেইন থেকে বাদ দেওয়া যেহেতু এটি উহ্য হয়।

ইনপুটটির বিকল্প রূপ হিসাবে, আপনি নিজের পছন্দসই চরিত্র থেকে পূর্ণসংখ্যার রূপান্তর নির্দিষ্ট করে অবধি অক্ষরের স্ট্রিংয়ের পরিবর্তে কোনও ডোমেন নামকে পূর্ণসংখ্যার অ্যারে হিসাবে গ্রহণ করতে বেছে নিতে পারেন।

আপনার প্রোগ্রামের প্রতি লাইন প্রতি এক পূর্ণসংখ্যার একটি তালিকা আউটপুট করা উচিত যা সংশ্লিষ্ট ডোমেনগুলির মূল্যায়িত মূল্য দেয়।

ইন্টারনেট এবং অতিরিক্ত ফাইল

আপনার প্রোগ্রামটির অতিরিক্ত ফাইলগুলিতে অ্যাক্সেস থাকতে পারে, যতক্ষণ না আপনি এই উত্তরের অংশ হিসাবে এই ফাইলগুলি সরবরাহ করেন। আপনার প্রোগ্রামটিকে অভিধানের ফাইল অ্যাক্সেস করার অনুমতি দেওয়া হয়েছে (বৈধ শব্দের একটি তালিকা, যা আপনাকে সরবরাহ করতে হবে না)।

(সম্পাদনা) আপনার প্রোগ্রামটি ইন্টারনেট অ্যাক্সেস করার অনুমতি দেওয়ার জন্য আমি এই চ্যালেঞ্জটি প্রসারিত করার সিদ্ধান্ত নিয়েছি। আপনার প্রোগ্রামটি কোনও ডোমেনের দাম (বা দামের ইতিহাস) সন্ধান করতে পারে না এবং এটি কেবল পূর্ব-বিদ্যমান পরিষেবাগুলি ব্যবহার করে (কিছুটা লুফোলগুলি আবৃত করার জন্য) পরবর্তী সময়ে কয়েকটি নিষেধাজ্ঞাগুলি রয়েছে।

মোট আকারের একমাত্র সীমাটি এসই দ্বারা আরোপিত উত্তর আকারের সীমা।

উদাহরণ ইনপুট

এগুলি সম্প্রতি বিক্রি হওয়া কিছু ডোমেন। দাবি অস্বীকার: যদিও এই সাইটগুলির কোনওটিই দূষিত বলে মনে হচ্ছে না, তবে কারা সেগুলি নিয়ন্ত্রণ করে এবং এগুলি পরিদর্শন করার বিরুদ্ধে পরামর্শ দেয় তা আমি জানি না।

6d3
buyspydrones
arcader
counselar
ubme
7483688
buy-bikes
learningmusicproduction

উদাহরণ আউটপুট

এই সংখ্যাগুলি আসল।

635
31
2000
1
2001
5
160
1

স্কোরিং

স্কোরিং "লগারিদমের পার্থক্য" এর উপর ভিত্তি করে তৈরি হবে। উদাহরণস্বরূপ, যদি কোনও ডোমেন 300 ডলারে বিক্রি হয় এবং আপনার প্রোগ্রামটি এটি 500 ডলারে মূল্যায়ন করে, তবে সেই ডোমেনের জন্য আপনার স্কোর অ্যাবস (ln (500) -ln (300)) = 0.5108। কোনও ডোমেনের দাম $ 1 এর কম হবে না। আপনার সামগ্রিক স্কোরটি কম স্কোরের সাথে আরও ভাল, ডোমেন সেটগুলির জন্য আপনার গড় স্কোর।

আপনার কী স্কোরগুলি আশা করা উচিত তা সম্পর্কে ধারণা পেতে কেবল 36নীচের প্রশিক্ষণের ডেটার জন্য ধ্রুবক অনুমান করে প্রায় এক স্কোর ফলাফল হয় 1.6883। একটি সফল অ্যালগরিদমের এর চেয়ে স্কোর কম।

আমি লগারিদমগুলি ব্যবহার করা বেছে নিলাম কারণ মানগুলি বিভিন্ন আকারের বিভিন্ন ক্রমগুলিকে বিস্তৃত করে এবং ডেটা বিদেশীদের দ্বারা পূর্ণ হবে। পার্থক্য স্কোয়ারের পরিবর্তে পরম পার্থক্যের ব্যবহার স্কোরিংয়ের ক্ষেত্রে বহিরাগতদের প্রভাব হ্রাস করতে সহায়তা করবে। (এছাড়াও লক্ষ করুন যে আমি প্রাকৃতিক লোগারিদম ব্যবহার করছি, বেস 2 বা বেস 10 নয়)

তথ্য সূত্র

আমি সম্প্রতি একটি ডোমেন নিলাম ওয়েবসাইট ফ্লিপ্পা থেকে .com ডোমেনের বিক্রি করা 1,400 এরও বেশিের একটি তালিকা এঁকেছি । এই ডেটা প্রশিক্ষণের ডেটা সেট আপ করবে। জমা দেওয়ার সময়সীমা শেষ হওয়ার পরে, আমি একটি পরীক্ষার ডেটা সেট তৈরি করতে একটি অতিরিক্ত মাসের জন্য অপেক্ষা করব, যার সাথে জমা দেওয়া হবে। প্রশিক্ষণ / পরীক্ষার সেটগুলির আকার বাড়ানোর জন্য আমি অন্যান্য উত্স থেকে ডেটা সংগ্রহ করা চয়ন করতে পারি।

প্রশিক্ষণের তথ্য নিম্নলিখিত সংক্ষেপে উপলব্ধ। (অস্বীকৃতি: যদিও আমি কিছু স্পষ্টত এনএসএফডাব্লু ডোমেন অপসারণ করতে কিছু সাধারণ ফিল্টারিং ব্যবহার করেছি, তবুও বেশ কয়েকটি এখনও এই তালিকায় অন্তর্ভুক্ত থাকতে পারে Also এছাড়াও, আপনি যে কোনও ডোমেনটি স্বীকৃত না হন সেগুলি দেখার বিরুদ্ধে আমি পরামর্শ দিই )) ডান দিকের সংখ্যাগুলি হ'ল সত্য দাম। https://gist.github.com/PhiNotPi/46ca47247fe85f82767c82c820d730b5

প্রশিক্ষণের ডেটা সেটটির মূল্য বিতরণের একটি গ্রাফ এখানে। এক্স-অক্ষটি দামের প্রাকৃতিক লগ, ওয়াই-অক্ষগুলি গণনা করা হচ্ছে। প্রতিটি বারের প্রস্থ ০.৫ রয়েছে। বাম দিকের স্পাইকগুলি $ 1 এবং $ 6 এর সাথে সম্পর্কিত কারণ উত্স ওয়েবসাইটটি কমপক্ষে $ 5 বাড়ানোর জন্য বিডের প্রয়োজন। পরীক্ষার ডেটাতে কিছুটা আলাদা বিতরণ থাকতে পারে।

এখানে চিত্র বর্ণনা লিখুন

এখানে 0.2 গ্রাফের বার প্রস্থের সাথে একই গ্রাফের লিঙ্ক is সেই গ্রাফে আপনি 11 ডলার এবং 16 ডলারে স্পাইক দেখতে পাবেন।


একটি শীর্ষস্থানীয়, একটি ডোমেন স্কোর করতে সর্বাধিক সাধারণ ডিগ্রাফগুলি ব্যবহার করে খুব খারাপ কাজ করে! আর ≅ 0

2
কারও কাছে অবশ্যই এটির জন্য একটি নিউরাল নেটওয়ার্ক উত্তর করা দরকার।
ব্যবহারকারী48538

1
প্রোগ্রামটি কি ইন্টারনেটের সাথে লিঙ্ক করতে পারে (বলুন, গুগল কোয়েরি)? স্পষ্টভাবে অবশ্যই দামের সন্ধানের উদ্দেশ্যে নয়, তবে বৈশিষ্ট্য হিসাবে ব্যবহার করার জন্য ডেটা সংগ্রহের জন্য।
জো

@ জো দুঃখিত, আমি প্রতিক্রিয়া জানানোর সুযোগ পাইনি, তবে আমি ইন্টারনেট ব্যবহারের অনুমতি দেওয়ার সিদ্ধান্ত নিয়েছি।
ফিনটপি

উত্তর:


3

পার্ল, 1.38605

আমি অনুভব করেছি যে আমার প্রতি এগিয়ে যাওয়া উচিত এবং আমার নিজের জমা দেওয়া উচিত, এই আশায় যে এটি প্রতিযোগিতা জাগাবে। এর স্কোরটির 1.38605অর্থ হল যে এটি সাধারণত একটি ফ্যাক্টর দ্বারা বন্ধ থাকে 3.999(এটি আমার স্টপিং পয়েন্ট)। আমি কোনও মেশিন লার্নিং গ্রন্থাগার ব্যবহার করিনি, সরাসরি পার্ল আপ করুন। এটি একটি অভিধান অ্যাক্সেস প্রয়োজন; আমি এটিকে এখান থেকে ব্যবহার করেছি ।

আমার নিজের প্রোগ্রাম থেকে কিছু নম্বর / পরিসংখ্যান ব্যবহার করতে নির্দ্বিধায় অনুভব করুন।

use strict;

my %dict;
my $dictname = "dict.txt";
open(my $dfh, '<', $dictname);
while (my $row = <$dfh>) {
  chomp $row;
  $dict{lc $row} = 1;
}

my $domain = <>;
chomp($domain);

my $guess = 1;

if($domain =~ /^[a-z]*$/){
    my @bylength = (200000,20001,401,45,45,41,26,26,26,26,26,24);
  if(length($domain) < ~~@bylength+2){
    $guess *= $bylength[length($domain)-2];
  } else {
    $guess *= 18;
  }
} elsif ($domain =~ /^[0-9]*$/){
  my @bylength = (300000,30001,6000,605,50);
  if(length($domain) < ~~@bylength+2){
    $guess *= $bylength[length($domain)-2];
  } else {
    $guess *= 7;
  }
} elsif ($domain =~ /^[a-z0-9]*$/){
  my @bylength = (52300,523,28);
  if(length($domain) < ~~@bylength+2){
    $guess *= $bylength[length($domain)-2];
  } else {
    $guess *= 23;
  }
} else {
  my @bylength = (50000,500,42,32,32,31);
  if(length($domain) < ~~@bylength+2){
    $guess *= $bylength[length($domain)-2];
  } else {
    $guess *= 12;
  }
}

my $wordfact = 1;

my $leftword = 0;
for(my $i = 1; $i <= length($domain); $i++){
  my $word = substr $domain, 0, $i;
  if(exists($dict{$word})){
    $leftword = $i;
  }
}

$wordfact *= ($leftword/length($domain))**2 * 0.8 + ($leftword/length($domain)) * -0.1 + 0.9;

if($leftword/length($domain) >= 0.8){
  $wordfact *= 2.4;
}

my $rightword = 0;
for(my $i = 1; $i <= length($domain); $i++){
  my $word = substr $domain, length($domain)-$i, $i;
  if(exists($dict{$word})){
    $rightword = $i;
  }
}

$wordfact *= ($rightword/length($domain))**2 * 0.9 + ($rightword/length($domain)) * -0.2 + 1;         

$guess *= $wordfact;

my $charfact = 1;
my %charfacts = (
  i => 1.12, #500
  l => 0.84,
  s => 1.09,
  a => 0.94,
  r => 1.03,
  o => 0.97, 
  c => 1.22, #400
  d => 0.88,
  u => 1.07,
  t => 0.95,
  e => 1.08,
  m => 0.91, #300
  p => 1.08,
  y => 0.92,
  g => 0.97,
  ne => 0.56, #100
  n => 1.13,
  z => 0.67,
  re => 1.30,
  es => 0.75,
);
while(my ($key,$value) = each %charfacts){
  if($domain =~ /$key/){
    $charfact *= $value;
  }
}
$guess *= $charfact;

$guess = int($guess + 0.5);
if($guess <= 0){
  $guess = 1;
}

print $guess;

আমার স্কোরিং প্রোগ্রামের দ্বারা তৈরি একটি গ্রাফ এখানে আসল মূল্যের তুলনায় মূল্য বিস্তারের প্লট এবং ত্রুটির একটি হিস্টোগ্রাম দেখায়। স্ক্যাটার প্লটটিতে যথাক্রমে সেই সময়ে ডোমেনগুলি .:oO@বোঝায় 10, 20, 30, 40, 50। হিস্টোগ্রামে প্রতিটি O16 টি ডোমেন উপস্থাপন করে।

স্কেল সেট করা আছে 1 character width = e^(1/3)

এখানে চিত্র বর্ণনা লিখুন

এই প্রোগ্রামের তিনটি প্রধান পদক্ষেপ রয়েছে। প্রতিটি পদক্ষেপের ফলাফলগুলি একসাথে বহুগুণ হয়।

  1. অক্ষর শ্রেণি এবং দৈর্ঘ্য অনুসারে শ্রেণিবদ্ধকরণ। এটি নির্ধারণ করে যে ডোমেনটি সমস্ত অক্ষর, সমস্ত সংখ্যা, অক্ষর এবং সংখ্যা, বা এটিতে হাইফেন রয়েছে কিনা। এরপরে এটি ডোমেনের দৈর্ঘ্যের দ্বারা নির্ধারিত একটি সংখ্যাসূচক মান দেয়। আমি দেখতে পেলাম যে দৈর্ঘ্য 5 এর কাছাকাছি মানের একটি অদ্ভুত ডুব রয়েছে I আমি ওভারফিটিং প্রতিরোধের আদেশ করছি, আমি এমন একটি বিধিনিষেধ রেখেছিলাম যে ডোমেনগুলি সংক্ষিপ্ত হওয়ার জন্য দণ্ডিত করা যাবে না (সুতরাং দৈর্ঘ্য কমপক্ষে দৈর্ঘ্যের 6 এর চেয়ে ভাল)।

  2. শব্দের সামগ্রীর মূল্যায়ন। আমি একটি ডোমেন নামে বাম-হাত এবং ডান হাতের শব্দের দৈর্ঘ্য নির্ধারণ করতে অভিধান ব্যবহার করি। উদাহরণস্বরূপ myawesomesite -> my & site -> 2 & 4,। তারপরে, আমি এই শব্দগুলির দ্বারা ডোমেন নামটির অনুপাতের ভিত্তিতে কিছুটা ফিট করার চেষ্টা করি। কম মান সাধারণত ইঙ্গিত করে যে ডোমেনটিতে একটি শব্দ নেই, অভিধানে নয় বহুবচন / পরিবর্তিত শব্দ রয়েছে, অন্যান্য অক্ষর দ্বারা পরিবেষ্টিত একটি শব্দ রয়েছে (অভ্যন্তরীণ শব্দগুলি সনাক্ত করা যায় না, যদিও আমি কোনও উন্নতি ছাড়াই চেষ্টা করেছি), বা এতে একটি রয়েছে একাধিক শব্দ বাক্যাংশ। উচ্চ মানের ইঙ্গিত দেয় যে এটি একটি একক শব্দ বা সম্ভবত দুটি শব্দ বাক্যাংশ।

  3. চরিত্রের সামগ্রীর মূল্যায়ন। আমি সাবস্ট্রিংগুলির সন্ধান করলাম যা প্রচুর ডোমেনে অন্তর্ভুক্ত ছিল এবং এটি ডোমেনের মানগুলিকে প্রভাবিত করে। আমি বিশ্বাস করি এটি বিভিন্ন কারণে বিভিন্ন ধরণের শব্দ বেশি জনপ্রিয় / আরও আকর্ষণীয় হওয়ার কারণে ঘটেছিল। উদাহরণস্বরূপ, চিঠিটি iডোমেনগুলির প্রায় অর্ধেক অংশে উপস্থিত হয়েছিল (এর মধ্যে 1৪১) এবং ডোমেনের মানকে প্রায় 12% বাড়িয়ে দেয়। এটি অত্যধিক উপকারী নয়; সেখানে বাস্তব কিছু আছে, যা আমি পুরোপুরি বুঝতে পারি না। চিঠিটি l514 ডোমেনে প্রদর্শিত হবে এবং এর একটি ফ্যাক্টর 0.84। কিছু কম সাধারণ চিঠি / ডিগ্রাফ, যেমন ne125 বার প্রকাশিত হয়েছিল এবং এর 0.55 এর সত্যিই কম ফ্যাক্টর রয়েছে, এটি অত্যধিক মানানসই হতে পারে।

এই প্রোগ্রামটির উন্নতি করার জন্য, আমার সম্ভবত কোনওরকমের মেশিন লার্নিং ব্যবহার করা প্রয়োজন। এছাড়াও, সামগ্রিক মূল্যায়ন মূল্যের সাথে এই পৃথক ফলাফলগুলিকে একত্রিত করার আরও ভাল উপায়গুলি খুঁজে পেতে আমি দৈর্ঘ্য, শব্দের সামগ্রী এবং চরিত্রের সামগ্রীর মধ্যে সম্পর্কের সন্ধান করতে পারি।

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