Pergunta

Você conhece algum bons algoritmos que correspondem duas cordas e, em seguida, retornar um percentual em quantos por cento dessas duas cordas combinar?

E há alguns, que o trabalho com bases de dados também?

Foi útil?

Solução

O Levenstein distância é tal medida a. Ele basicamente diz-lhe quantos personagens precisam ser editadas, excluídas ou adicionadas, para começar a partir do primeiro para o segundo string. Não estou certo se alguns sistemas de banco de dados suportar isso.

Mas eu sei com certeza que um algoritmo muito mais simplificado chamado Soundex é suportado em algum banco de dados sistemas.

Outras dicas

Ela depende de seus critérios para similaridade. Outras pessoas já me referi-lo a Levenstein distância (edit distância é a mesma coisa). Isso é geralmente boa bonita, e definitivamente uma linguagem mais independente do que algo como soundex. No entanto, estar ciente de que Levenstein diferença não lidar com a transposição muito bem. Assim:

Levenstein("copy", "cpoy") == 2

Se você está tentando lidar com intervenção humana, transposições são bastante comuns. Se isso é um problema ou não depende de suas métricas de similaridade.

Tem sido um tempo, mas eu acredito Postgresql tem levenstein() quer built-in ou disponível como um módulo contrib C.

Eu acho que o problema que você está procurando é chamado Editar Distância . É caro para calcular em geral, mas se você estiver procurando por cordas dentro pequena editar distância de outras cordas, não é tão ruim. Há mais informações no artigo Wikipedia.

Como a melhor correspondência duas cordas? Tê-los sair para o café, e se eles se deram bem, jantar e um filme. Ou talvez eles poderiam fazer alguma programação por pares? Depende das cordas, realmente. café, mesmo muitas vezes pode ser complicado.

isso seria de ajuda? Eu corri para ele. comparar duas cadeias produzindo um delta numérico

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top