foloseste Levenshtein distance - Wikipedia, the free encyclopedia pentru similaritatea cuvintelor Reusable Code: Levenshtein distance
foloseste Levenshtein distance - Wikipedia, the free encyclopedia pentru similaritatea cuvintelor Reusable Code: Levenshtein distance
Multumesc mult, este util. Totusi implementarea nu va fi atat de simpla. Dar este un punct bun de start.
Iti dau si un exemplu: cuvantul "roata" si flexiunea "roti". Distanta Levenshtein este 3, totusi cuvintele sunt extrem de aproape unele de altele.
Daca as accepta Levenshtein <=3 ca principiu, ar aparea o gramada de garbage in search results.
Probabil ca va trebui sa folosesc o combinatie de Levenshtein si date statistice pe dictionarul master... si asta de obicei inseamna o gramada de consum CPU.
--- Later Edit --- (ca mi-a fost lene sa apas "Edit")
Ca si contraexemplu care arata ce spun: cuvantul "Roma" are distanta 2 fata de "roti", deci mai mic decat "roata", si totusi nu are nicio legatura cu acesta.
--- Later Edit --- (ca mi-a fost lene sa apas "Edit")
Nu stiu cum face Google, dar el intoarce totusi rezultate foarte diferite intre cele 2 cuvinte.
Probabil ca o solutie simpla este sa las userul sa decida.... exact match sau distanta = 1, 2, 3.
Formele de plural (ex. roti pentru roata) sunt probabil usor de implementat ca sa tii cont de ele. Ideea este daca le poti gasi undeva pe toate, ca sa faci implementarea automat. Parca era o baza de date pentru DEX pe care poti sa arunci o privire sa vezi daca structura ei iti permite sa poti prelua aceasta informatie, adica forma de plural.
O problema similara probabil ca exista la familiile de cuvinte (cuvinte care au o radacina comuna, insa prefixe si/sau sufixe diferite). Poate ca dexul te va ajuta si in aceasta privinta. Bafta!
Multumesc. Nu sunt un expert in lingvistica/gramatica, dar incerc sa ma descurc.
Din pacate, intentionez sa folosesc platforma ulterior si pentru alte tari/limbi. Implementarea custom a acestei chestiuni in n limbi, folosind o lista preluata de undeva, este destul de dificila, si nu o vad ca fiind cea mai buna solutie.
Voi incerca sa folosesc un instrument automat pentru generarea familiei de cuvinte, folosind o combinatie de factori, de exemplu distanta Levenshtein + densitatea cuvintelor in paginile care contin cuvantul radacina. Analiza statistica ar trebui sa rezolve problema.
Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)