Piszę skrobaczkę do programów telewizyjnych i innych mediów (gier, filmów itp.), A nie wszystkie źródła są sformatowane w ten sam sposób dla określonego programu. Na przykład jedno źródło może reprezentować napisy za pomocą myślnika, inne średniki. Obecnie używam dystansu Levenshtein, aby porównać zeskrobane dane z danymi wyodrębnionymi z nazwy pliku telewizyjnego, ale zastanawiałem się, czy algorytm został zaprojektowany dla krótkich łańcuchów krótszych niż zdanie. Czy istnieje algorytm, który lepiej odpowiada tej potrzebie?Jaki jest najodpowiedniejszy algorytm sznurkowy do porównywania tytułów telewizyjnych?
5
A
Odpowiedz
3
Przed porównaniem/pomiarem odległości należy znormalizować (znormalizować) tytuły.
Normalizacja powinna obejmować takie rzeczy jak:
- Podstawowe formatowanie (np kodowania UTF16 żadna wiodąca/końcowe spacje i karty)
- zasady alfabetu (np zastąpić literę A)
- Akronim ekspansji (np NY -> Nowy Jork)
- Reguły nazw lokalizacji (np. Nazwy miast nie powinny zawierać spacji, ale myślniki)
- Reguły kapitalizacji (np. Każda litera po myślniku powinna być pisana wielkimi literami)
- Usunięcie symboli (np. !,?)
- numeryczne konwersje ("trzysta" do "300")
- rzymskie liczby konwersji (np "Ludwik XVI" do "Louis 16")
- Non-American English na amerykańskim angielskim (np „kolor” na „kolor”)
- Skróty zasady (np „Inc.” zamiast „Incorporated”, „vs.” zamiast „kontra”)
można użyć Levenshteina odległość między parami słów (Nie używaj go do całego zdania), ale zaimplementuj jakieś przesuwane okno, ponieważ niektóre wyrazy (np. "The") mogą nie występować w jednej z reprezentacji.
Powiązane problemy
- 1. Algorytm porównywania tekstu
- 2. Algorytm do porównywania luźno porównywalnych danych?
- 3. Algorytm porównywania oparty na porównaniu
- 4. Algorytm porównywania słów (nie w porządku alfabetycznym)
- 5. Jaki jest cel porównywania indeksów w Pythonie?
- 6. Jaki jest skuteczny sposób porównywania obiektów StringBuilder
- 7. Dodawanie tytułów do ViewPager
- 8. . Narzędzie do porównywania i porównywania .NET Assembly - co jest dostępne?
- 9. Jaki jest algorytm domyślny w password_hash
- 10. Jaki jest skuteczny algorytm rozwiązywania łamigłówek Jigshaw?
- 11. Jaki jest najlepszy algorytm dla najbliższego słowa
- 12. Jaki jest skuteczny algorytm czasu do kopiowania niezarządzanych macierzy bitowych?
- 13. Jaki jest właściwy sposób porównywania kolumny NTEXT ze stałą wartością?
- 14. Jaki jest najszybszy sposób porównywania poprawek z tablicy?
- 15. Jaki algorytm R używa do obliczania średniej?
- 16. Jaki jest optymalny sposób porównywania dat w serwerze Microsoft SQL?
- 17. Jaki jest najlepszy sposób porównywania dat w Perlu?
- 18. Podejście programistyczne w Javie do porównywania plików
- 19. Opóźniona aktualizacja tytułów/odświeżania tytułów w tytule "Bilet", dlaczego?
- 20. Używanie "by" do tworzenia wielu tytułów wykresów
- 21. Co to jest narzędzie do porównywania stron internetowych?
- 22. Tworzenie Ślimaków z tytułów?
- 23. Najodpowiedniejszy kod stanu HTTP dla "zadania w toku"
- 24. Wzór do ciągłego porównywania reguł
- 25. Jaki jest algorytm wyszukiwania zapytań w bazie danych?
- 26. Jaki jest rozsądny algorytm generowania liter w grze Typpress iOS?
- 27. Jaki algorytm numeryczny jest uproszczony, definiując sqrt (-0.0) jako -0.0?
- 28. Jaki jest algorytm tworzenia kolorów dla mapy termicznej?
- 29. Jaki jest optymalny algorytm dla pisuaru oszczędzającego wodę?
- 30. Jaki jest najlepszy algorytm lokalizowania punktu w pliku obrazu?