Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.19;
Скачать: CL | DM;

Вниз

Сравнение кусков текста   Найти похожие ветки 

 
Multy   (2003-12-06 18:31) [0]

Нужно проверить куски текста на приблизитеоьное совпадение. На эту тему, вроде, много понаделано может у кого есть готовые компоненты или алгоритмы?


 
maxXP ©   (2003-12-06 19:39) [1]

Может что-нибудь такое:

for i:=1 to length(text1) do begin
if text[2]="" then break;
if text1[i]=text2[i] then ... else procent:=procent+1;
end;

Изменяй procent если, скажем не совпадает,а потом определи если

length(text1) -100%
procent - X%

x:=procent*100/length(text1); Процент не совпадения.


 
Multy   (2003-12-06 19:56) [2]

Так то понятно, да вот только если добавить пару слов, то совершенно одинаковые тексты будут разными. Нужно что-то вроде приблизительного сравнения слов, только сравнивать не слова, а куски текста.

P.S. тут мысль: что если кусоки текста рассматривать как 1 большое слово и сравнивать алгоритмом преблизительного сравнения слов.


 
Юрий Федоров ©   (2003-12-06 20:22) [3]

Видимо это не самый простой алгоритм. ИМХО, лучше не спрашивать чьи-то собственные алгоритмы, а попытаться поискать решения от софтверных фирм


 
NikeOLD   (2003-12-06 21:37) [4]

Когда-то я делал сравнение удалением одинаковых слов в каждом куске кода: берешь первое слово в первом куске и ищешь такое же в остальных. Если есть - удаляешь. Затем повторяешь все заново. Но это еще не все, есть много лишних неинформативных слов, например, предлогов, их нужно сперва удалить. Метод основан на разнице в количестве оставшихся слов. Если в первом тексте слов осталось крайне мало, а во втором тексте их еще много, то значит первый текст полностью включен во второй.
При больших текстах очень медленный способ, рпактически не применим на больших текстах ввиду тормознутости, зато, правда весьма результативен.


 
wicked ©   (2003-12-06 22:14) [5]

http://delphibase.endimus.com/?action=viewfunc&topic=strmath&id=10289
может это подойдет?... :) тем более, его потом можно адаптировать...


 
MAC ©   (2003-12-07 02:02) [6]

Уточни -- приведи пример. А то писать можно непереписать, а оно тебе не понадобиться.

Можно реализовать с помощью конструкции буфера FIFO (очередь).
Как показывает практика -- лучший вариант в своём роде.

Так что опиши детально -- как, что и куда.



Страницы: 1 вся ветка

Текущий архив: 2003.12.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-62141
loki128
2003-12-07 12:54
2003.12.19
COM


14-62244
BOA_KAA
2003-11-25 11:50
2003.12.19
Mozilla Mail & переустановка Windows


3-61896
gestern
2003-11-27 21:48
2003.12.19
IBQuery


1-62061
Сейфетдинов Ренат
2003-12-05 14:48
2003.12.19
MDIChild в Activex Library


14-62237
Ig
2003-11-25 21:57
2003.12.19
GPRS - кто пользовался?