Verilen isimleri yanlış yazmak nasıl zor?


16

İşte bazı veri madenciliği ve karmaşık bir algoritma ile çözülebileceğine inandığım bir soru, ama nasıl olduğunu tam olarak bilmiyorum. Hangi veri kaynaklarının kullanılacağına ve hangi algoritmanın uygulanacağına ilişkin işaretçiler kabul edilir.

Tarihsel Bilgiler: Polonyalı-Ukraynalı bir bebek bekleyen ve hangi ülkeye yerleşmek istediğimizi tam olarak bilmeyen bir Rumen-Macarum. Tahmin edebileceğiniz gibi, belirli bir isim seçmek son derece önemlidir ve sıcak bir tartışmadır. Benim açımdan, bir ülkeden diğerine geçerken birisinin adımı yanlış yazacağı zaman uğraşmam gereken tüm zorluklardan dolayı travma geçiriyorum. Örneğin, "Adrian" olarak adlandırılmış olsaydınız, Romanya'da kutsanmış olursunuz, yalnızca "Adri e n" olmanızın bir miktar resmi Fransızca belgedir. Bu yüzden tek ihtiyacım bebeğin adının bazı Avrupa ülkelerinde yanlış yazılmasını pek mümkün kılmak değil.

Sorun Bildirimi: Fransa, Almanya, İsveç, Polonya ve Romanya gibi bir dizi ülke göz önüne alındığında, düzgün bir şekilde telaffuz edildiğinde yerli halk tarafından yanlış yazılma olasılığı düşük olan verilen adların listesini bulun.

Daha biçimsel: Let s (C, n) adı döner ihtimali olduğu bir fonksiyonu olabilir , n ülke içinde yanlış olması c . Verilen Cl ülke kümesi ve p₀ bir olasılık bulmak v- şekilde verilen isimlerin bir dizi,

tüm nN ve cC için , p (c, n) <p₀

İlk düşünceler : Temel sorun p (c, n) ' nin nasıl uygulanacağıdır . Birisi sezgisel bir yöntemle tahmin etmeye çalışabilir. Açıkçası bir adın iki durumda yanlış yazılmış olması muhtemeldir:

  1. O ülkede çok az kullanılıyor.
  2. Farklı bir isme benziyor, bu ülkede çok az kullanılmıyor.

Bu iki soruyu etkili bir şekilde cevaplamak için interneti, örneğin Wikipedia'yı nasıl kullanabileceğimden emin değilim. Bir ülkede bir ülkede sadece oldukça sık kullanılan isimler nasıl listelenir? Benzer şekilde yazılmış olanları nasıl ararsınız?


1
Popülerliğin, diğer adlara düşük düzenleme mesafesi ile karşılaştırıldığında, yanlış yazım olasılığını büyük ölçüde etkileyeceğinden emin değilim. Örneğin Hanna , Hannah ve Anna ile benzer / özdeştir ve Lucas , Luca ve Lukas'a benzer . Her ülke için bir isim listesine sahip olduktan sonra, düşük düzenleme mesafelerine göre kümelenerek başlayabilirsiniz.
amon

Bence bu popülerlikle de ilgili. Kimse Anna'yı Romen dilinde heceleyemezdi , çünkü çift n bu dilde sadece garip. Benzer şekilde, bir Fransız da h olmadan telaffuz etseniz bile Hıristiyan yazacaktır . (Pun tasarlanmıştır: D.)
user1202136

5
Pragmatik yaklaşım bir GUID kullanmak olacaktır.
toniedzwiedz

1
Mükemmel XKCD referansı. Ama Küçük Bobby tabloları unutma ;-) xkcd.com/327
Mawg diyor Monica

Bu dillerdeki sesli harf seslerini karşılaştırmayı düşünürdüm.
Almancam

Yanıtlar:


15

Bazı diller için diğerlerinden daha iyi çalışacak bazı yaklaşımlar vardır. Örneğin, soundex (ve beğendiğim başka bir açıklama ), isimlerin İngilizce telaffuzları için tasarlanmıştır. Soundex ile MichaelM240 olur. Bunun birkaç adımı vardır:

  1. İlk harf izole edilmiştir. ( Mve ichael)
  2. Tüm ünlüler kalanlardan ( Mve chl) kaldırılır
  3. Ünsüzler değiştirildi
    • c -> 2
    • l -> 4
  4. Sol ped sıfırları.

- ünsüz dönüşümlerin gruplaşma onların fonetik benzerlik dayanmaktadır B, F, Pve Vtüm harita 1.

Ve zamanla bu konuda farklılıklar var . Özellikle bir ismin hecelemesinin zamanla değişebileceği şecere faydalıdır, ancak telaffuz benzer kalır.


Havayolları tarafından isimler için geliştirilen (Amerikan şecere yerine) eşleşme derecesi gibi yaklaşımlar da vardır .

Eşleşme derecesi yaklaşımının (MRA) kodlanması:

  1. Tüm önde olmayan ünlüleri silin ( Michaelolur Mchlve Anthonyolur Anthny)
  2. Herhangi bir ikilinin ikinci sabitini kaldırın
  3. Dize 6 karakterden uzunsa, ilk üç ve son üç karakteri alarak kalan dizeyi 6 karaktere düşürün.

Bunun için tüm özellikler archive.org adresinde bulunabilir - "küçük değil" (yazdırılan form 214 sayfadır) olduğuna dikkat edin.

Karşılaştırmalar metin ne kadar süre dayanan bir eşleştirme eşiğine sahiptir.

Orada başka fonetik algoritmaları da .


Sizi teşvik ettiğim şey soundex'i olduğu gibi almak, maç puanı yaklaşımını olduğu gibi almak veya soundex'i Romanya ünsüzlerine ve Polonyalı ünsüzlere göre değiştirmek .

Soundex ile, sessiz harfler olduğunu unutmayın gruplanmış (In Lehçe, m, n, ɲsessiz onlar olmak ya da birlikte dile - - verilmiş, bilmiyorum tüm nazal ünsüzleri gruplanacak edilir ve muhtemelen grup, dudak diş ve alveoler enstruman ediyorum Lehçe bilmek bu yüzden orada doğru olmayan şeyler söylüyorum bilmiyorum).

Daha sonra veritabanındaki tüm adları iki farklı soundex sistemine dönüştürün ve hangi adların farklı dillerde en düşük çarpışma kümesine sahip olduğunu öğrenin. Bu size farklı isimler verir. Yani bu Smithgörünmüyor Smyth.


Ancak bu sadece "diğer isimlerle çarpışacak ve yanlış bilinen" adı çözer. "İsmin doğru duyulduğu, yanlış yazıldığı" diğer yolunu ele almaz ve bunun için dikkatlerini ortak isimlere odaklamalıdır.

Örneğin Michael, ABD'de 1950 başlarından 1970 sonlarına kadar çok yaygın bir isimdi . Gerçekten popülerdi . Ancak, bir nedenden dolayı, isim Micheal1950'lerde popülerdi (en yüksek 83. en yaygın isme ulaştı). Ve eminim ki, isimleri Michealsürekli olarak isimlerini yanlış yazmışlardır.

Bu nedenle, belirli bir telaffuz için adın popülerliğine hakim olan bir adın olduğu isimlere odaklanmalısınız. Yıllara göre adları için başka bir veri tüketiciye bakınca, bunu görebilirsiniz bir çocuk için bir karmaşa ... isimler Jam ile başlayan ile Jamaal, Jamal, Jamarve diğerleri. Bu arada, bu isimler için biraz farklı soundexes sahip Amerikan ( J540, J540ve J560- lve ronlar yakından fonetikte ait olsa dahi farklı gruplarda bulunan). Ancak, Japonya'dan birileri için, fonetik bölgede sadece bir ses var lverAmerikan İngilizcesinde telaffuz edilir. Bu aynı zamanda, farkında olması gereken soundex kullanan önde gelen ünsüzlerle de bir zorluk oluşturabilir (bir zamanlar Japon adının Romanlaştırılması olarak Lisa yerine Risa ('R' ile) olarak adlandırılan bir Japon kadınla çalıştım).

Örneklerimin Amerika Birleşik Devletleri için olduğunu not edeceksiniz. Bu verilere kolayca erişilebilir. Görünüşe göre Polonya ve Macarca için bazı şeyler var ve sadece Macarca ad ortaklığına dair ipuçları var ... İngilizce dışında bir dilde aramanın orada yardımcı olabileceğinden şüpheleniyorum.

Yani, bir isim için soundex göz önüne alındığında, birkaç çarpışma ve gerçek yazım çarpışmalar kümesinde. Tercihen, bu ortak bir isimdir. Macar listesine bakmak, Krisztiánmuhtemelen yanlış yazımlar alırken, Zoltándaha az olasıdır (Macaristan'da 2011'in en yaygın bebek ismi!). Dedi ki, yanlış gidemezsin Michael.


2
Müthiş cevap! Bunu uygulamaya çalışacağım ve işim bittiğinde kodu paylaşıyorum ve cevabınızı kabul ediyorum.
user1202136 9:15

2
Bu fikri uygulama girişimi. Tam olarak "kullanıcı testi" geçmiyor. :) github.com/cristiklein/idemscriptent-given-names
user1202136 9:15

Mükemmel cevap Michael! @ user1202136 senaryo üzerinde harika bir çalışma! Sonuçları görmek istiyorum :)
Chris Cirefice

1
@ChrisCirefice: Michael'ın yanıtı harika olsa da, "kullanıcı testini" geçecek isimler üretmediğini fark ettim. En iyi 100 isim listesinde aynı şekilde yazılmış isimleri bulmaya çalışan çok daha basit bir algoritma için gittim. Lütfen sonuçları burada bulabilirsiniz: github.com/cristiklein/idemscriptent-given-names
user1202136 13:15

1

Muhtemelen kelimelerin farklı dillerde nasıl telaffuz edildiğini ele almak için tasarlanmış olan Çift Metafon fonetik algoritmasına bakmak istersiniz. Ayrıca bir Metaphone 3 var, ancak bunun kullanımı paraya mal oluyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.