Příprava biblického datasetu
Prvním krokem je vytvoření biblického datasetu, který pak umožní prohledávání na libovolných datech. Biblický dataset obsahuje všechny verše ve všech nám dostupných překladech. Vytvoření datasetu je níže ilustrováno na příkladu verše L 20:25/Mk 12:17 v překladu Ladislava Sýkory:
„Ježíš pak řekl jim: „Dávejte tedy, co je císařovo, císaři; a co je Božího, Bohu!“ I divili se mu.“
Každý verš je nejprve rozdělen na podverše:
verse_text = 'Ježíš pak řekl jim: ,Dávejte tedy, co jest císařovo, císaři, a co jest Božího, Bohu.“ I divili se mu.'
subverses = ['Ježíš pak řekl jim Dávejte tedy',
'Dávejte tedy co jest císařovo',
'co jest císařovo císaři',
'císaři a co jest Božího',
'a co jest Božího Bohu.“ I divili se mu.',
'Bohu.“ I divili se mu.']
Každý z těchto podveršů je následně rozdělen na n-gramy o velikosti maximálně čtyř znaků. Volba právě čtyř znaků byla výsledkem mnoha experimentů. Toto rozdělení podverše na menší části předchází výše zmíněným problémům s OCR. Můžete si všimnout, že některá slova jsou označena jako tzv. stop-words, tedy slova, která ve vyhledávání ignorujeme. V tomto případě se jedná například o „a“, „i“ nebo „se“.
subverse_1 = ['jezi', 'ezis', 'rekl', 'jim', 'dave', 'avej', 'vejt', 'ejte', 'tedy']
subverse_2 = ['dave', 'avej', 'vejt', 'ejte', 'tedy', 'co', 'jest', 'cisa', 'isar', 'saro', 'arov', 'rovo']
subverse_3 = ['co', 'jest', 'cisa', 'isar', 'saro', 'arov', 'rovo', 'cisa', 'isar', 'sari']
subverse_4 = ['cisa', 'isar', 'sari', 'co', 'jest', 'bozi', 'ozih', 'ziho']
subverse_5 = ['co', 'jest', 'bozi', 'ozih', 'ziho', 'bohu', 'divi', 'ivil', 'vili', 'mu']
subverse_6 = ['bohu', 'divi', 'ivil', 'vili', 'mu']
N-gramovaný verš je následně převeden na vektor, který zaznamenává počet výskytů jednotlivých n-gramů v podverši. N-gramy jsou tedy nahrazeny čísly a postupně vzniká slovník, který zachovává přiřazení n-gramů k jednotlivým číslům. Pro tyto účely byl využit Python balíček gensim.
subverse_1 = ((10, 1), (11, 1), (12, 1), (13, 1), (14, 1), (21, 1), (22, 1), (23, 1), (24, 1))
subverse_2 = ((0, 1), (1, 1), (10, 1), (11, 1), (12, 1), (13, 1), (14, 1), (15, 1), (16, 1), (17, 1), (18, 1), (19, 1))
subverse_3 = ((0, 1), (1, 1), (15, 2), (16, 2), (17, 1), (18, 1), (19, 1), (20, 1))
subverse_4 = ((0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (15, 1), (16, 1), (20, 1))
subverse_5 = ([(0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1))
subverse_6 = ((5, 1), (6, 1), (7, 1), (8, 1), (9, 1))
Uvedeným postupem je vytvořen kompletní dataset, který zachovává přiřazení označení verše (např. L 20:25/Mk 12:17) ke všem vektorům, které odpovídají jednotlivým podveršům napříč překlady.