Potrzebuję wdrożyć algorytm (lub znaleźć w bibliotece open source) do oceny podobieństw tekstu. Potrzebuję skutecznego algorytmu dla dwóch dowolnych zestawów dokumentów (względnie niewielkiej liczby dużych fragmentów tekstu), aby utworzyć między nimi pary pasujące - z którego dokumentu najprawdopodobniej powstanie.algorytm/biblioteka podobieństwa tekstu
Sądzę, że podzielę to na dwie części - określając współczynnik podobieństwa dla każdej pary - a następnie stosując niektóre z algorytmów problemu przypisania. Podczas gdy dla algorytmów przydziału mogę znaleźć sporo rozwiązań, nie mogę znaleźć dobrego dla obliczenia współczynników podobieństwa.
Uwaga: dokumenty nie są znane z góry - obliczanie indeksów tekstu (jeśli jest) musi być również szybkie.
Znam odległość Hamminga, odległość Levenshteina od innych algorytmów różnicy łańcuchów. Nie tego jednak szukam - celowo używam tekstu zamiast napisu.
Nie szukam algorytmów wyszukiwania fraz ani bibliotek, takich jak Lucene i Xapian (przynajmniej wydaje się być).
Prawdopodobnie coś oparte na tf-idf.
Chyba pytanie brzmi: czy jest coś, co rozwiązuje już ten problem, czy możliwe jest, że biblioteki takie jak lucete są używane do tego.
Może mógłbyś użyć nieznacznie modyfikującej wersji najdłuższego algorytmu wspólnego podciągania, który jest używany w komendzie Linux 'diff'. Więcej informacji tutaj: http://en.wikipedia.org/wiki/Longest_common_subsequence_problem – OGH
tak, jest to opcja. Niestety wydaje się zbyt drogie pod względem wydajności, ponieważ musi być zrobione niezależnie dla każdej pary. Mam nadzieję znaleźć coś, co zmniejszy złożoność na porównanie par w oparciu o jakąś formę indeksowania. dzięki – gsf
Możesz zajrzeć do [artykułu autorstwa Coeurjolly, Drouilhet i Robineau] (http://arxiv.org/pdf/math/0604246v2.pdf). Ostatnim razem, gdy pracowałem nad czymś w tym stylu, okazało się to całkiem przydatne (chociaż w tym czasie było całkiem nowe - mogą być teraz lepsze artykuły). –