A negociação de nomes de domínio é um grande negócio. Uma das ferramentas mais úteis para negociação de nomes de domínio é uma ferramenta de avaliação automática, para que você possa estimar facilmente quanto vale um determinado domínio. Infelizmente, muitos serviços de avaliação automática exigem uma associação / assinatura para serem usados. Nesse desafio, você escreverá uma ferramenta de avaliação simples que pode estimar aproximadamente os valores dos domínios .com.
Entrada / Saída
Como entrada, seu programa deve ter uma lista de nomes de domínio, um por linha. Cada nome de domínio corresponderá ao regex ^[a-z0-9][a-z0-9-]*[a-z0-9]$
, o que significa que ele é composto de letras minúsculas, dígitos e hífens. Cada domínio tem pelo menos dois caracteres e nem começa nem termina com um hífen. O .com
é omitido de cada domínio, pois está implícito.
Como uma forma alternativa de entrada, você pode optar por aceitar um nome de domínio como uma matriz de números inteiros, em vez de uma sequência de caracteres, desde que você especifique a conversão desejada de caractere para inteiro.
Seu programa deve gerar uma lista de números inteiros, um por linha, que fornece os preços avaliados dos domínios correspondentes.
Internet e arquivos adicionais
Seu programa pode ter acesso a arquivos adicionais, desde que você os forneça como parte de sua resposta. Seu programa também tem permissão para acessar um arquivo de dicionário (uma lista de palavras válidas, que você não precisa fornecer).
(Editar) Decidi expandir esse desafio para permitir que seu programa acesse a Internet. Existem algumas restrições: o seu programa não pode procurar os preços (ou históricos de preços) de nenhum domínio e usa apenas serviços preexistentes (o último para cobrir algumas brechas).
O único limite para o tamanho total é o limite de tamanho da resposta imposto pelo SE.
Exemplo de entrada
Esses são alguns domínios vendidos recentemente. Isenção de responsabilidade: Embora nenhum desses sites pareça malicioso, não sei quem os controla e, portanto, desaconselho a visitá-los.
6d3
buyspydrones
arcader
counselar
ubme
7483688
buy-bikes
learningmusicproduction
Saída de exemplo
Esses números são reais.
635
31
2000
1
2001
5
160
1
Pontuação
A pontuação será baseada na "diferença de logaritmos". Por exemplo, se um domínio foi vendido por US $ 300 e seu programa o avaliou em US $ 500, sua pontuação nesse domínio é abs (ln (500) -ln (300)) = 0,5108. Nenhum domínio terá um preço inferior a US $ 1. Sua pontuação geral é a pontuação média para o conjunto de domínios, com pontuações mais baixas melhores.
Para ter uma idéia de quais pontuações você deve esperar, basta adivinhar uma constante 36
para os dados de treinamento abaixo, resultando em uma pontuação de aproximadamente 1.6883
. Um algoritmo de sucesso tem uma pontuação menor que isso.
Eu escolhi usar logaritmos porque os valores abrangem várias ordens de magnitude e os dados serão preenchidos com valores discrepantes. O uso da diferença absoluta em vez da diferença ao quadrado ajudará a reduzir o efeito dos valores discrepantes na pontuação. (Observe também que estou usando o logaritmo natural, não a base 2 ou a base 10.)
Fonte de dados
Passei por uma lista de mais de 1.400 domínios .com recentemente vendidos da Flippa , um site de leilão de domínios. Esses dados formarão o conjunto de dados de treinamento. Depois que o período de envio terminar, esperarei um mês adicional para criar um conjunto de dados de teste, com o qual os envios serão pontuados. Também posso optar por coletar dados de outras fontes para aumentar o tamanho dos conjuntos de treinamento / teste.
Os dados do treinamento estão disponíveis na seguinte essência. (Isenção de responsabilidade: embora eu tenha usado alguma filtragem simples para remover alguns domínios flagrantemente NSFW, vários ainda podem estar nessa lista. Além disso, eu aconselho a não visitar qualquer domínio que você não reconheça .) Os números à direita são os verdadeiros preços. https://gist.github.com/PhiNotPi/46ca47247fe85f82767c82c820d730b5
Aqui está um gráfico da distribuição de preços do conjunto de dados de treinamento. O eixo x é o logaritmo natural de preço, com o eixo y sendo contado. Cada barra tem uma largura de 0,5. Os picos à esquerda correspondem a US $ 1 e US $ 6, pois o site de origem exige que os lances aumentem pelo menos US $ 5. Os dados do teste podem ter uma distribuição ligeiramente diferente.
Aqui está um link para o mesmo gráfico com uma largura de barra de 0,2. Nesse gráfico, você pode ver picos de US $ 11 e US $ 16.