Category Archives: Tech

Морфология със Sphinx. Синонимен речник “wordforms”.

Това е допълнителна морфологична функционалност във Sphinx, която включва употреба на речник с множество двойки думи-синоними. Речникът е опционален в конфигурацията на Sphinx и когато е включен бива обработван от Sphinx преди употреба на стеминг механизма. В случаите, когато термът попада в този речник, стеминг механизмът не се включва за този терм и така се предоставя по-прецизен контрол и също възможност за използване на стеминг изключения със синоними.

Думите-синоними са групирани по двойки на всеки ред.

Синтаксисът е: [разглеждай-тази-дума] > [като-тази-дума]

Първоначално файлът може да бъде произведен с помощта на spelldump инструмента:

Където .dict и .aff файловете са главният речников файл, в ispell или MySpell формат, и неговият афиксен файл; Обикновено имената им спазват конвенцията [language-prefix].dict и [language-prefix].aff и са достъпни с повечето Linux дистрибуции, и също могат да бъдат намерени онлайн.

След като бъде генериран wordforms файл в него могат да бъдат добавяни, редактирани или изваждани двойки думи. Еднократно се описва път до него в конфиг. файла:

След редактиране на този речник е необходимо пълно преиндексиране за да се приложат промените.

Пример за свързване (мапинг) на синонимни форми

В макроикономиката и финансите британският термин “gear” е синоним на американският “leverage”. Задача е да създадем синонимна връзка вежду тези термове, която да работи и при търсене на всички техни морфологични форми. Това в wordforms се описва така:

Оригинално съдържание на wordforms файла:

(така няма връзка между двата терма)

Модифицирано съдържание на wordforms файла:

 

Така при търсене на “gearing” или “leverage” резултатите ще включват и документи, съдържащи и двата терма, както и всички останали техни морфологични форми.

След редактиране не забравяйте да преиндексирате за да приложите промените.