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
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
