Wyszukiwanie frazy w ciągu znaków, Imię i nazwisko w ciągu znaków |
Wyszukiwanie frazy w ciągu znaków, Imię i nazwisko w ciągu znaków |
23.12.2018, 22:43:53
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Mamy dwa ciągi znaków.
Dłuższy np. "Piszę w sprawie Jan Kowalski" i listę możliwych użytkowników. Chciałbym określić o jakiej osobie mowa jest w zdaniu, oczywiście najłatwiejsza opcja to sprawdzenie czy występuje w ciągu znaków imię i nazwisko oraz ewentualnie odwrotność. Ok, to mamy z z głowy, ale algorytm musi być bardziej zaawansowany i wykryć odmiany np. Jana Kowalskiego, Janka Kowalski itp. Nie zależy mi na 100% rozpoznaniu, wystarczy mi najbardziej zbliżony. Ktoś się kiedyś zmierzył? Póki co mam 3 prototypy. 1) Full index.
To najbardziej udane rozwiązanie, radzi sobie dość dobrze ale jest taki moment że po prostu się zacina i score wskakuje na zero np. przy frazie "Pawła Żyry" (ale radzi sobie jeszcze z np. "za Pawla Zyra"). Dużymm minusem jest optymalność, jak widać to wykonuje tyle zapytań ile mamy do przeszukania tytułów i nazwisk ponieważ nie da się wyszukiwać po wielu frazach. Po za tym wyszukiwanie te zachowuje się troszkę nieracjonalnie np. score jest uzależniony od innych wyników czyli zmienia się w czasie, a np. przy jednym wyniku pokazuje zero nawet gdy tekst jest 1:1. 2) Similar text Czasem daje super wyniki, czasem beznadziejne. Z pewnością było by to dobre gdybym miał pewność że w title jest tylko imię i nazwisko. 3) levenshtein Podobnie jak wyżej. 2 i 3 są znacznie szybsze i dają łatwiejszą manipulacje (np. mogę bez problemu wyciąć pl znaki i je ignorować, w mysql tego w locie nie potrafię zrobić albo byłoby to skomplikowane). Ten post edytował markonix 23.12.2018, 22:45:19 -------------------- |
|
|
27.12.2018, 16:14:02
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Pytanie zasadnicze.
Skąd są dane. Zakładam że Input jest Tekst. Skąd będą imiona i nazwiska? Z oddzielnej tabeli? |
|
|
27.12.2018, 23:20:26
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Imiona i nazwiska z bazy / tablica. Tekst (title) powiedzmy, że z pliku csv, który jest wgrywany do bazy.
Generalnie poradziłem sobie z tematem, napisałem własny algorytm w oparciu o similar_text badający pary, zamiast całego tekstu + kilka innych czynników mniej istotnych, ale też wpływających na "score". Tematu nie zamykam, może ktoś się mierzył z tematem i ma coś bardziej dedykowanego do wyszukiwania "wzmianek". Może ktoś pracuje przy algorytmach Google -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 01:57 |