páginas da web semelhantes
Antes de baixar o endereço de URL para re-operação, para evitar os mesmos tempos url de download. Na verdade, não só precisa re-url, também precisa baixar o conteúdo do de-ênfase.
Na Internet podemos encontrar muitos artigos de conteúdo semelhantes. Mas, na verdade, nós só precisamos de um pode ser, não há necessidade de baixar o mesmo conteúdo várias vezes, como lidar com o peso sobre a necessidade de
An Introduction to pesado
código de comparação de impressões digitais
A solução mais comum é para voltar a gerar a porta documento de impressão digital. Por exemplo, um artigo realizado criptografia MD5 para gerar uma seqüência, podemos pensar deste código fingerprint artigo e comparação de código e outros artigos de impressão digital, em seguida, o artigo é consistente repetição.
No entanto, esta abordagem é totalmente consistente com o repetitivo, se o artigo é apenas mais do que alguns sinais de pontuação, ele ainda é considerado de ser repetido, esta abordagem não é razoável.
BloomFilter
Esta é a maneira de ir pesado sobre o url do caminho antes que usamos aqui, então, é para obter um número de artigos são calculados e comparados, e o método de deficiências é a mesma, mesmo que apenas um pouco diferente, será considerado não se repete, essa abordagem não é razoável.
algoritmo KMP
KMP algoritmo é um algoritmo cadeia correspondente melhorada . KMP algoritmo utilizando as informações da chave após a correspondência falhar, para minimizar o número de match string string padrão principal para atingir o objectivo de correspondência rápido. O que pode encontrar dois artigos é o mesmo, o que não é o mesmo.
Desta forma pode ser resolvido "Enquanto isso não é o mesmo não se repete," o caminho das duas questões anteriores . Mas o seu tempo ea complexidade do espaço é muito alto, não é adequado para grandes quantidades de comparação de dados duplicados.
Há outras maneiras de ir pesado: a subsequência comum maior , matriz de sufixo, trie, DFA , etc, mas estes métodos são complexidade vazio da grande quantidade de dados não é adequado para cenários de aplicação industrial . Nós precisamos encontrar um desempenho rápido de alta velocidade, podemos realizar a semelhança em contraste com o programa pesado
simhash assinatura algoritmo do Google produzido para atender aos requisitos acima. Este algoritmo não é esotérico, mais fácil de entender. Este algoritmo é atualmente a página do motor de busca Google está sendo usado para algoritmos pesados.
Simas
processar Introdução
simhash por Charikar feita em 2002 para, a fim de facilitar a compreensão, tanto quanto possível para não usar uma fórmula matemática, que é dividido em etapas:
1, a palavra , a palavra na necessidade de texto para determinar as características de formação de palavras deste artigo.
2, mistura , o algoritmo de hash os valores de hash para cada palavra, tais como "United States" pelo algoritmo hash é 100101, "zona 51" por meio do algoritmo hash para 101.011. Para que a nossa corda torna-se uma seqüência de números.
3, o peso , gerado pelo resultado hash do passo 2, a necessidade de re-formar a cadeia de palavra digital ponderado como direito, "América" valor hash "100101", em peso, calculada como "4-4-44-44"
"Zona 51" é igual a "5-55-555."
4, combinado , calculado acima dos respectivos valores da sequência de palavras acumulados em apenas uma cadeia de sequência.
"America", "4-4-44-44", "Área 51" e "5-55-555"
O acumulado cada, "4 + 5 + -4 -5 -4 + 5 + 4 + 5 -5 -4 4 + 5" a "9 -9 1 -1 1 9"
5, a redução da dimensão , a contar para fora "9-91-119" para a cadeia 01, para formar a assinatura simhash final.
cálculo da distância assinado
Nós Curry texto são convertidos para assinatura simhash, e convertidos para o tipo de espaço de armazenamento de longo bastante reduzido . Agora, embora tenhamos resolvido o espaço, mas a forma de calcular a similaridade entre dois simhash isso?
Nós distância de Hamming (distância de Hamming) pode ser calculada no fim dois dissimilares simhash semelhante . Simhash correspondente a dois binário (string 01) pelo número de diferentes valores Hamming distância é chamado de simhash dois.
Por exemplo, como se segue: 10101 e 00110, por esta ordem a partir do primeiro bit tem uma primeira, quarta, quinta diferente, então a distância de Hamming é de 3. Para as cadeias a e b binárias, a distância de Hamming igual a um XOR b o número do resultado da operação (Algoritmo Universal) 1.