Handel nazwami domen to duży biznes. Jednym z najbardziej przydatnych narzędzi do handlu nazwami domen jest narzędzie do automatycznej oceny, dzięki czemu można łatwo oszacować, ile jest warta dana domena. Niestety wiele usług automatycznej oceny wymaga członkostwa / subskrypcji do korzystania. W tym wyzwaniu napiszesz proste narzędzie do oceny, które może z grubsza oszacować wartości domen .com.
Wejście wyjście
Jako dane wejściowe program powinien pobrać listę nazw domen, po jednej w wierszu. Każda nazwa domeny będzie pasować do wyrażenia regularnego ^[a-z0-9][a-z0-9-]*[a-z0-9]$
, co oznacza, że składa się z małych liter, cyfr i łączników. Każda domena ma co najmniej dwa znaki i ani nie zaczyna się, ani nie kończy myślnikiem. Jest .com
to pomijane w każdej domenie, ponieważ jest implikowane.
Jako alternatywną formę wprowadzania danych możesz zaakceptować nazwę domeny jako tablicę liczb całkowitych zamiast ciągu znaków, o ile określisz pożądaną konwersję znaków na liczby całkowite.
Twój program powinien wypisać listę liczb całkowitych, po jednej w wierszu, która podaje oszacowane ceny odpowiednich domen.
Internet i dodatkowe pliki
Twój program może mieć dostęp do dodatkowych plików, o ile podasz je jako część odpowiedzi. Twój program ma również dostęp do pliku słownika (listy prawidłowych słów, których nie musisz podawać).
(Edytuj) Zdecydowałem się rozszerzyć to wyzwanie, aby umożliwić Twojemu programowi dostęp do Internetu. Istnieje kilka ograniczeń, ponieważ Twój program nie może wyszukiwać cen (lub historii cen) żadnych domen i że korzysta tylko z wcześniej istniejących usług (te ostatnie w celu zatuszowania niektórych luk).
Jedynym ograniczeniem całkowitego rozmiaru jest limit wielkości odpowiedzi nałożony przez SE.
Przykładowe dane wejściowe
To są niektóre z niedawno sprzedanych domen. Oświadczenie: Mimo że żadna z tych stron nie wydaje się złośliwa, nie wiem, kto je kontroluje, i dlatego odradzam ich odwiedzanie.
6d3
buyspydrones
arcader
counselar
ubme
7483688
buy-bikes
learningmusicproduction
Przykładowy wynik
Te liczby są prawdziwe.
635
31
2000
1
2001
5
160
1
Punktacja
Punktacja będzie oparta na „różnicy logarytmów”. Na przykład, jeśli domena sprzedana za 300 USD, a Twój program oszacował ją na 500 USD, twój wynik dla tej domeny to abs (ln (500) -ln (300)) = 0,5108. Żadna domena nie będzie miała ceny niższej niż 1 USD. Twój ogólny wynik to średni wynik dla zestawu domen, przy czym niższe wyniki są lepsze.
Aby dowiedzieć się, jakich wyników należy się spodziewać, wystarczy zgadnąć stałą 36
dla danych treningowych poniżej, uzyskując wynik około 1.6883
. Skuteczny algorytm ma mniejszy wynik.
Zdecydowałem się użyć logarytmów, ponieważ wartości obejmują kilka rzędów wielkości, a dane zostaną wypełnione wartościami odstającymi. Zastosowanie różnicy bezwzględnej zamiast kwadratu różnicowego pomoże zmniejszyć wpływ wartości odstających w punktacji. (Zauważ też, że używam logarytmu naturalnego, a nie bazy 2 lub 10).
Źródło danych
Przejrzałem listę ponad 1400 ostatnio sprzedanych domen .com z Flippa , witryny aukcji domen. Dane te będą stanowić zestaw danych treningowych. Po zakończeniu okresu przesyłania poczekam dodatkowy miesiąc na utworzenie zestawu danych testowych, za pomocą którego będą oceniane punkty. Mogę również zdecydować o gromadzeniu danych z innych źródeł, aby zwiększyć rozmiar zestawów szkoleniowych / testowych.
Dane treningowe są dostępne na poniższym schemacie. (Zastrzeżenie: Mimo że użyłem prostego filtrowania, aby usunąć niektóre rażąco domeny NSFW, kilka może nadal znajdować się na tej liście. Ponadto odradzam odwiedzanie domen, których nie rozpoznajesz .) Liczby po prawej stronie są prawdziwe ceny. https://gist.github.com/PhiNotPi/46ca47247fe85f82767c82c820d730b5
Oto wykres rozkładu cen zestawu danych treningowych. Oś X jest naturalnym dziennikiem ceny, licząc oś Y. Każdy słupek ma szerokość 0,5. Skoki po lewej stronie odpowiadają 1 USD i 6 USD, ponieważ witryna źródłowa wymaga ofert o co najmniej 5 USD. Dane testowe mogą mieć nieco inny rozkład.
Oto link do tego samego wykresu o szerokości paska 0,2. Na tym wykresie widać wzrosty w wysokości 11 i 16 USD.