Załóżmy, że mam bazę napisów do filmów, gdzie wiem kiedy zaczyna się każde słowo (lub zdanie). W jaki sposób/czego użyć, żeby sensownie znajdować w których filmach (to akurat proste) i w którym timestampie zostało coś powiedzanie?
Nie mam za bardzo pomysłu jak najlepiej połączyć cały tekst z timestampami
A gdzie masz problem ?
Jak już znalazłeś plik to chyba też potrafisz odszukać linijkę gdzie jest poszukiwany fragment ?
Jak bym chciał to ogarnąc to uzyl bym np. https://www.sqlitetutorial.net/sqlite-full-text-search/
Adamek Adam napisał(a):
A gdzie masz problem ?
Jak już znalazłeś plik to chyba też potrafisz odszukać linijkę gdzie jest poszukiwany fragment ?
W sumie tak choć jestem ciekawy jak to ugryźć najlepiej. Jeśli mam np. taki input
Timestamp | Zdanie |
---|---|
0:30:25 | I |
0:30:26 | powiedział |
0:30:27 | to |
0:30:28 | zdanie |
0:30:29 | ala |
0:30:30 | ma |
0:30:31 | kota |
To dla query : powiedziała to zdanie ala
chciałbym dostać 0:30:26
. Czyli:
- chcę mieć
stemming
i inne fajne bajery FTS (nie wiem, czy SQLITE ma takie coś) - wyszukanie
powiedział
na podstawiepowiedziała
będzie wymagało ode mnie użycie tej samej logiki co silnik FTS tylko dla osobnej struktury danych
Zastanawiam się, czy da się to zrobić jakoś prościej czyli podsumowując: do tekstu chcę dodać jakieś atrybuty. Celem jest jak najmniejsze narobienie się.
Moja znajomość FTS jest bardzo szczątkowa więc może umyka mi coś oczywistego
jak krotka tabeli będzie zawierała id+fk_film+tekst+tekst2+timestamp to myślę ze to ogarnie problem
tekst to kolumna z tekstem w wersji podstawowej (mianownik liczba pojedyncza, pierwsza osoba itp.... ) prosta funkcja
zapytanie wykonujesz tez tekstem który konwertujesz na wersje podstawowa
SELECT *
FROM zalozmy_ze_to_sa_teksty_do_filmow
WHERE tekst MATCH 'powiedział OR zdanie OR to OR ala';
a potem wystawiasz już tekst z kolumny tekst2 gdzie jest oryginał