Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2014, 23:30   #1
romantik1993
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 99
Восклицание Сравнение на схожесть двух текстов

Ни у кого нет исходника в делфи программы для сравнения двух текстов, и вывода процента схожести текста.... Сравнение нужно не по символам, а по словам. Или подскажите где такую взять, или как написать. Сравнить или 2 текста, или два вордовских файла, лучше файлы конечно.

Последний раз редактировалось romantik1993; 20.12.2014 в 23:32.
romantik1993 вне форума Ответить с цитированием
Старый 20.12.2014, 23:42   #2
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

Ну так рассказывай как пытался делать, какой алгоритм придумал.
Инфы тут не надо никакой, придумал алгоритм и вперёд.

и в чём именно у тебя проблема? код показывай, и подробное описание что не получается.
lollollollol вне форума Ответить с цитированием
Старый 20.12.2014, 23:48   #3
romantik1993
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 99
По умолчанию

Так я просто не знаю как это реализовать.
romantik1993 вне форума Ответить с цитированием
Старый 21.12.2014, 00:21   #4
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

я бы так сделал

2 текста суёшь в строку. Строку делишь на массивы, каждое слово новый элемент массива.

А потом циклом проходишься по массивам и сравниваешь их содержимое
lollollollol вне форума Ответить с цитированием
Старый 21.12.2014, 02:39   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от romantik1993 Посмотреть сообщение
Так я просто не знаю как это реализовать.
Что именно нужно реализовать?
Приведи описание той задачи, которую тебе задали.
northener на форуме Ответить с цитированием
Старый 21.12.2014, 11:17   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Делается примерно так. Из обоих текстов удаляются все знаки препинания кроме пробелов. Все междометия типа "и" "или" "не" и так далее.
Есть несколько типов проверки.
1. На полное совпадение участков текста.
2. На частотность повторения ключевых слов.
3. На статистическое совпадение позиций ключевых слов.
Каждый из этих способов, обладает как преимуществами, так и недостатками.
1. Может проверить текст на наличие в нём текстовых вставок, но, если слова заменены синомимами проверка не состоится.
2. Может выявить замену слов на синонемы.
3. Может выявить стиль написания кусков текста. Т.е. соответствует ли стиль плагиата, стилю автора.
Есть ещё несколько типов проверок, но они более сложные и без специальных познаний в лингвистике трудно реализуемы.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 21.12.2014, 12:46   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ну так рассказывай как пытался делать, какой алгоритм придумал.
А он ничего и не придумывал: http://www.programmersforum.ru/showthread.php?t=270711
Мне вот интересно, а что он будет делать с текстами, которые являются картинками в документе...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.12.2014, 13:54   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Мне вот интересно, а что он будет делать с текстами, которые являются картинками в документе...
Я так понимаю, вопрос о картинках не стоит. ТС нужно просто сравнивать текстовые документы.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 21.12.2014, 15:01   #9
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

он о ворде говорит. в нём текст и картинки вместе, при этом текст можно прочитать просто открыт файл как простой текстовик(если убрать все спец символы).

Но вот теже картинки сильно попортят сравнение текста - автор то сам не очень понимает что ему нужно, а мы тут гадаем
lollollollol вне форума Ответить с цитированием
Старый 21.12.2014, 15:25   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ТС нужно просто сравнивать текстовые документы.
Даже если и только так, критериев сравнения он не знает.
Если предлагать сравнение, то получается как я и говорил в другой теме - полнотекстовый поиск. Но опять таки критерии нужны.
Фраза Сравнение нужно не по символам, а по словам
лично мне ничего не проясняет, кроме того что тупо составить словарь слов и их количество, записать в некую таблицу БД. Потом взять другой текстовик - сделать тоже самое, а потом запросом сравнить две таблицы...
Даже не знаю что лучше, и потянет ли такую схему автор...

P.S. Я тут слегка подумал как это все упростить. Предлагаю такое:
1) http://msdn.microsoft.com/ru-ru/libr...nt.saveas.aspx
Т.е. пересохранить два документа в ТХТ.
Что-то вроде как здесь: http://www.programmersforum.ru/showthread.php?t=57263
Только в параметрах SaveAs добавить FileFormat:=wdFormatText

2)Далее загрузить оба созданных TXT файла в память:
Код:
var Text1,Text2:TStringList;
...
Text1:=TStringList.Create; Text1.LoadFromFile(Первый файл);
Text2:=TStringList.Create; Text2.LoadFromFile(Второй файл);
...
Text2.Free; Text1.Free;
3) Двумя циклами тупо посравнивать то что в Text1 с тем что в Text2.

ИМХО это самое простое что может быть в данном случае.
I'm learning to live...

Последний раз редактировалось Stilet; 21.12.2014 в 16:25.
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух прайсов qwerty1 Microsoft Office Excel 10 15.01.2015 18:32
СРавнение двух папок wins-zloi Помощь студентам 0 24.06.2013 14:15
сравнение двух днф Zln Помощь студентам 0 11.05.2010 16:42
сравнение двух строк aza_kaz Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 01.01.2010 23:40
Сравнение текстов на схожесть PUH Общие вопросы Delphi 7 21.02.2008 22:18