Oto pytanie, które moim zdaniem można rozwiązać za pomocą eksploracji danych i wyrafinowanego algorytmu, ale nie do końca wiem, jak to zrobić. Wszelkie wskazówki dotyczące tego, które źródła danych należy użyć i jaki algorytm zastosować, są mile widziane.
Kontekst: Jestem Rumuńsko-Węgierką, która spodziewa się dziecka z polsko-ukraińskim i nie do końca się zdecydowała w jakim kraju chcemy się osiedlić. Jak można się spodziewać, wybór imienia ma ogromne znaczenie i gorąca debata. Z mojej strony wciąż jestem traumatyzowany przez wszystkie kłopoty, które musiałem przejść, gdy ktoś źle pisał moje imię, gdy przeprowadzałem się z jednego kraju do drugiego. Na przykład, jeśli zostaniesz nazwany „Adrianem”, zostaniesz pobłogosławiony w Rumunii, ale odkryjesz, że skończyłeś jako „Adri e n”, to jakiś oficjalny francuski dokument. Tak więc moim jedynym wymaganiem jest, aby bardzo mało prawdopodobne było, aby imię dziecka zostało błędnie napisane w niektórych krajach europejskich.
Opis problemu: Biorąc pod uwagę zestaw krajów, np. Francję, Niemcy, Szwecję, Polskę i Rumunię, znajdź listę nazwisk, które przy prawidłowym wymowie nie są popełniane przez miejscowych.
Bardziej formalnie: Niech p (c, n) będzie funkcją, która zwraca prawdopodobieństwo błędnej pisowni nazwy n w kraju c . Biorąc pod uwagę, C zbiór krajów i p₀ prawdopodobieństwo, znajdź N zestaw imion, tak że
dla wszystkich n ∈ N i c ∈ C , p (c, n) <p₀
Wstępne przemyślenia : Podstawowym problemem jest sposób implementacji p (c, n) . Można spróbować to przybliżyć heurystycznie. Oczywiste jest, że nazwa może zostać błędnie napisana w dwóch przypadkach:
- Jest mało używany w tym kraju.
- Jest podobny do innej nazwy, która nie jest rzadko używana w tym kraju.
Nie jestem pewien, jak mógłbym korzystać z Internetu, np. Wikipedii, aby skutecznie odpowiedzieć na te dwa pytania. Jak można wymienić tylko dość często używane nazwiska w danym kraju? Jak szukać takich pisowni?
źródło
Odpowiedzi:
Istnieje kilka podejść, które działałyby lepiej w niektórych językach niż w innych. Na przykład soundex (i inny opis, który lubię ) został zaprojektowany do angielskiej wymowy nazw. Z Soundex
Michael
staje się M240. Ma to kilka kroków:M
iichael
)M
ichl
)c
-> 2l
-> 4Grupowanie spółgłoskowo konwersji opierają się na ich podobieństwo fonetyczne -
B
,F
,P
iV
całej mapy do1
.Z czasem pojawiają się na to zmiany . Jest to szczególnie przydatne w genealogii, w której pisownia nazwy może się zmieniać z czasem, ale wymowa pozostaje podobna.
Istnieją również podejścia, takie jak ocena meczów, która została opracowana przez linie lotnicze dla nazw (zamiast amerykańskiej genealogii).
Kodowanie metody oceny dopasowania (MRA) to:
Michael
staje sięMchl
iAnthony
stajeAnthny
)Pełną specyfikację tego można znaleźć na archive.org - zauważ, że nie jest „mały” (wydrukowany formularz ma 214 strony).
Do porównania mają próg dopasowanie w oparciu o ile tekst jest.
Istnieją również inne algorytmy fonetyczne .
Zachęcam więc do zrobienia soundexu w takiej postaci, w jakiej jest, lub zmodyfikowania soundexu na podstawie spółgłosek rumuńskich i polskich spółgłosek .
Pamiętaj, że z soundex, spółgłoski są pogrupowane (w języku polskim,
m
,n
,ɲ
są wszystkie spółgłoski nosowe być grupowane, a ty najprawdopodobniej grupa wargowej, stomatologiczne i pęcherzykowe spółgłoski wybuchowe - one być bezdźwięczne dźwięczne lub razem - udzielone, nie wiem znam polski, więc nie wiem, czy mówię tylko rzeczy, które nie są prawdą).Następnie po prostu ukryj wszystkie nazwy w bazie danych do dwóch różnych systemów soundex i dowiedz się, jakie nazwy mają najniższy zestaw kolizji w różnych językach. To daje różne nazwy. Więc
Smith
to nie pojawia się jakoSmyth
.To jednak rozwiązuje jedynie „imię, które może kolidować z innymi nazwami i być źle słyszane”. Nie odnosi się do drugiego sposobu, w jaki „imię zostało poprawnie usłyszane, zapisane niepoprawnie” i dlatego należy skupić uwagę na zwyczajowych nazwach.
Na przykład
Michael
była bardzo popularną nazwą w Stanach Zjednoczonych od początku 1950 r. Do końca 1970 r. Była bardzo popularna . Jednak z jakiegoś powodu nazwaMicheal
była popularna w latach 50. XX wieku (osiągnęła 83. najpopularniejszą nazwę u szczytu). I jestem pewien, że ludzie o imionachMicheal
ciągle mają błędnie zapisane nazwiska.Dlatego powinieneś skupić się na nazwach, w których istnieje jedna nazwa, która dominuje popularność nazwy dla danej wymowy. Zerkając na innego konsumenta danych dla nazw na rok, można zobaczyć, że nazwy zaczynające się Jam ... dla chłopca są bałagan z
Jamaal
,Jamal
,Jamar
i innych. Nawiasem mówiąc, te nazwy mają nieco inne soundexes dla Amerykanina (J540
,J540
iJ560
- w imieniul
ir
są w różnych grupach, chociaż są one ściśle związane z fonetyki). Jednak dla kogoś z, powiedzmy Japonii, w regionie fonetycznym jest tylko jeden dźwiękl
ir
wymawia się w amerykańskim angielskim. Może to również stanowić wyzwanie dla wiodących spółgłosek wykorzystujących soundex, o których należy wiedzieć (kiedyś pracowałem z Japonką, która nazywała siebie Risa (z „R”), a nie Lisa jako romanizacja jej japońskiego imienia).Zauważysz, że moje przykłady dotyczą Stanów Zjednoczonych. Te dane są łatwo dostępne. Najwyraźniej są pewne rzeczy dla Polski i Węgier , i tylko wskazówki na temat węgierskiej nazwy ... Podejrzewam, że pomocne może być wyszukiwanie w języku innym niż angielski.
Biorąc pod uwagę soundex dla nazwy, kilka kolizji i faktyczna pisownia jest w zestawie kolizji. Najlepiej jest to nazwa zwyczajowa. Patrząc na tę węgierską listę, pisanie z nią
Krisztián
prawdopodobnie spowodowałoby błędy ortograficzne, aZoltán
rzadziej - (22 najpopularniejsze imię dziecka w 2011 roku na Węgrzech!). To powiedziawszy, nie możesz się pomylićMichael
.źródło
Prawdopodobnie chcesz przyjrzeć się algorytmowi fonetycznemu Double Metaphone, który jest zaprojektowany do obsługi wymowy słów w różnych językach. Istnieje również Metaphone 3, ale korzystanie z niego kosztuje.
źródło