páginas similares web || SimHash (texto similaridade eficientes algoritmos de deduplicação) - adequado para grandes volumes de documentos semelhança computing

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.

Publicado 434 artigos originais · ganhou elogios 105 · vê 70000 +

Acho que você gosta

Origin blog.csdn.net/qq_39368007/article/details/105056235
Recomendado
Clasificación