Nuri AKMAN dedi ki:
Arkadaşlar,

Elimde MYSQL veritabanında kayıtlı 180.000 adet firma adı var. Ancak, bu
isimler kullanıcılar tarafından el ile girilmiş kayıtlar. Bunların bir
çoğunun farklı yazılmış olmasından dolayı mükerrer olduğunu düşünüyoruz.

Birkaç örnek vermek gerekirse:
XYZ TOPRAK GIDA HAY. TUR. MAK.SAN. VE TİC. A.Ş
XYZ TOPRAK GIDA HAYV. TUR. MAK. SAN. VE TİC. A.Ş.
XYZ TOPRAK GIDA HAYVANCILIK TUR.MAK.SAN. VE TİCARET A.Ş.
XYZ GIDA SAN. VE TİC. A.Ş.
XYZ GIDA SAN.VE TİC.AŞ.
XYZ ÇİFTLİK ÜRÜNLERİ ÜRETİM SAN. VE TİC. LTD. ŞTİ.
XYZ ÇİFTLİK ÜRÜNLERİ ÜRETİM SAN.VE TİC.LTD.ŞTİ.
XYZ KİREMİT TUĞLA FAB.
XYZ KİREMİT VE TUĞLA FABRİKASI

Bu kayıtları birbirine en yaklaşık olanlara göre elden geçirerek
sadeleştirmem gerekiyor.

Bu işin teknik adının ne olduğunu bilmediğim için google'da araştıramadım.

"yaklaşık dizi karşılaştırması" olabilir mi?

http://en.wikipedia.org/wiki/Levenshtein_distance

Bunun nasıl yapılabileceğine ilişkin düşüncelerinize başvurmak istiyorum.

Açıkçası MySQL kısmı konusunda pek bir fikir veremeyeceğim. Ancak
dizilerin diğer dizilere göre emsalsiz ortak noktaları varsa öncelikle
bu noktaları arayıp eşleştirme yapabilirsiniz.

Fakat diziler arasındaki benzerlikler emsalsiz değilse bu sefer
belirlenen bir yaklaşıklık ile dizileri eşleştirmeyi deneyebilirsiniz.

Örneğin birbirine benzer birkaç diziyi ele alalım:
( agrep (1)            - print lines approximately matching a pattern
 http://laurikari.net/tre )

$> cat foo.txt
hayvan
haytan
hayyam
$> agrep -E 1 hayvan foo.txt
hayvan
haytan
$> agrep -E 2 hayvan foo.txt
hayvan
haytan
hayyam
$>

Bu şekilde benzerlik seviyesini önceden öngördüğünüz dizileri eşleştirip
elden geçirip sadeleştirebilirsiniz.
(Kanımca gerekli benzerlikleri öngördükten sonra MySQL veritabanının
bir metin dosyasına `mysqldump' komutu ile dökümünü alıp üzerinde
oynamalar yaptıktan sonra yeniden veritabanına basabilirsiniz.)

Selamlar,
Nuri Akman

Kolay gele...

--
Ali Polatel

Attachment: pgpudmz4GpEML.pgp
Description: PGP signature

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap