Mam mały problem z główną aplikacją danych, którą aktualnie piszę. Mam dwa różne modele, konteksty i trwałe sklepy. Jedna dotyczy danych mojej aplikacji, druga dotyczy strony z odpowiednimi informacjami.Dopasowywanie przybliżonego ciągu znaków w magazynie danych podstawowych
W większości przypadków dopasowuję dokładnie jeden rekord z mojej aplikacji do innego rekordu z drugiego źródła. Czasami jednak muszę zrezygnować z rozmytego dopasowania ciągów, aby połączyć dwa rekordy. Próbuję dopasować tytuły piosenek. Mój lokalny tytuł mógłby być (złożony) "The French Idealist is in your pensée"
a pilot tytuł piosenka mogłaby być "01 - 10 - French idealist in in you're pensee, The (dub remix, feat. DJ Objective-C)"
wyszukiwać przepełnienie stosu, Google, dokumentacja kakao, i nie mogę znaleźć żadnej jasnej odpowiedzi na temat jak zrobić rozmyty dopasowanie w tych przypadkach. Moje ciągi mogą zaczynać się od wszystkiego, mają kilka znaków specjalnych, zwykle kończą się losowymi lub zignorowanymi postaciami.
Regexp nie zrobi, ani NSPredicates, Soundex nie działa dobrze z obcymi nazwami, a może Levenshtein nie wystarczy (lub będzie?).
Szukam tytułu w zestawie kilkunastu potencjalnych meczów, ale muszę wykonać tę operację całkiem sporo. 100% celność nie jest celem.
Zastanawiam się nad usunięciem zignorowanych słów, wyodrębnienie słów kluczowych (w tym przykładzie "francuski, idealista, pensée"), połączenie ich, a następnie użycie odległości Levenshtein (słowa w tytule utworu powinny być w tej samej kolejności).
W moim szczególnym przypadku, czy to działa? Jaki jest standard branżowy w odniesieniu do tego problemu (nie mogę być jedynym na świecie, który chce dopasować nieco inne nazwy piosenek) Czy Core Data, Cocoa lub Objective-C mogą mi pomóc?
Wielkie dzięki.
Po raz pierwszy spróbowałem wariacji tego i kiedy piszę dane z rzeczywistego świata, to nie działa. W większości przypadków problemem nie są znaki diakrytyczne czy przypadki, ale różnice w subtelnie pisowni (jak w "Backstreet girl" kontra "Back Street Girl"). To rozwiązanie zależy również w dużym stopniu od poprzedniego kroku, tokenizacji, która jest naprawdę trudna dla domeny "słowa, które mogą pojawić się w tytule piosenki" – damdamdam