https://github.com/MaratBektemirov/alif
Добрый вечер. Хотел поделиться с форумом своими наработками в области нечеткого поиска.
import { ABGD } from "alif"
const probabilityResult = (score, maxScore, templatePermanentLength, wordPermanentLength, x1) => {
return score/maxScore;
};
const abgd = new ABGD('russian');
const templateTuples = [
['отец','мыл','машину'],
['мама','мыла','раму'],
['машина','отца','помыта'],
['отец','отец','отец','отец','мыл','машину'],
['рама','мамы','моется'],
].map((arrString) => abgd.getTuple(arrString))
const tuple = abgd.getTuple(['мама','мыла','раму'])
abgd.getTuplesProbabilities(
templateTuples,
tuple,
probabilityResult
)
-> [
[1,1],
[0.5555555555555556,4],
[0.2777777777777778,0],
[0.1388888888888889,3],
[0,2]
]
Можно использовать в node.js, но думаю в основном такая вещь нужна для фронтендеров (реализовать поиск по большому меню или каталогу). У меня лично была рабочая задача сделать нечеткий поиск по меню.