Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak rozwiązać dylemat przechowywania ludzkich imion w MySQL i zachować zarówno dyskryminację, jak i wyszukiwanie podobnych imion?

Przydatne jest to, że możesz rozłożyć pełną nazwę na składowe „słowa nazw” i zapisać kodowanie fonetyczne (metafon lub jeden z wielu innych wyborów) dla każdego z nich. Potrzebne jest jednak tylko pojęcie słów z imionami, a nie konkretnie kategoryzowanie ich jako pierwsze, środkowe lub ostatnie, co jest w porządku, ponieważ te kategorie i tak nie działają dobrze w różnych kulturach). Możesz jednak użyć informacji o kolejności pozycyjnej później w rankingu, jeśli chcesz, aby wyszukiwanie hasła „Paul Carl” lepiej odpowiadało „Paulowi Karlowi” niż „Carl Paul”. Należy pamiętać o niejednoznacznej interpunkcji, która może wymagać przechowywania wielu wersji niektórych słów imion. Na przykład Bre-Anna Heim zostałaby podzielona na słowa „bre”, „anna”, „breanna” i „heim”. Czasami kreska jest nieistotna, jak Bre-Anna, ale czasami nie jak w Sally-June”. Bre-Anna nigdy nie używa tylko Bre lub Anny, ale Sally-June może używać po prostu Sally lub po prostu June. Trudno powiedzieć, które, więc obejmują obie możliwości.

Możesz napisać swoje zapytanie w podobny sposób, rozkładając i fonetycznie kodując imię i nazwisko, którego szukasz. Zapytanie może zwrócić, powiedzmy, te pełne nazwy, które mają co najmniej dwa dopasowania fonetyczne nazw składników (lub jedno, jeśli w wyszukiwaniu lub źródle występuje tylko jedna nazwa). Daje to podzbiór pełnych nazw do dalszego rozważenia. Możesz wymyślić prosty ranking, a nawet zrobić coś w rodzaju algorytmu dopasowywania odległości dla tego podzbioru, co byłoby zbyt drogie obliczeniowo w stosunku do całego miliona nazw. Kiedy mówię o dopasowaniu odległości, mam na myśli algorytmy on-line, takie jak odległość Levenshteina i tym podobne.

(edytuj) Uzasadnieniem tego jest zajmowanie się sprawami takimi jak:Maria de los Angeles Gomez-Rodriguez. Jedna osoba wprowadzająca dane może po prostu wpisać Maria Gomez. Inny może wejść Maria Gomez Rodriguez. Jeszcze inny może wkroczyć Maria Angeles Rodrigus.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dane MySQL INSERT nie są zapisywane w odpowiedniej bazie danych, tylko tymczasowo?

  2. Czy mogę zmienić kolejność wyborów SQL po zastosowaniu limitu?

  3. Konwertuj plik BibTex na wpisy w bazie danych za pomocą Pythona

  4. MySQL:Dodaj ograniczenie, jeśli nie istnieje

  5. zamów przez w ramach grupy concat