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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2014, 12:28   #1
deathbloody
 
Регистрация: 12.06.2012
Сообщений: 9
По умолчанию Вывести процент идентичности текста двух memo

Всем привет! Допустим, печатаю текст в первый Memo, нажимаю на кнопку, мой текст сверяется со вторым Memo (в который изначально, записан похожий текст, что и в первом Memo). Так вот, если во втором Memo, есть слова похожие на слова из первого Memo, то вывести в Label, процент совпадения. Что можно сделать? http://www.seobuilding.ru/similar-text-checker.php Вот пример того, что хочется осуществить
deathbloody вне форума Ответить с цитированием
Старый 15.04.2014, 12:37   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Банально использовать любой онлаин-сервис для определения плагиата.

Можете дляразнообразия себя помучать, написать такой анализатор самостоятельно.
Человек_Борща вне форума Ответить с цитированием
Старый 15.04.2014, 12:37   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

По технической части - разбираете оба мемо на слова (можно в отдельных массивах) и ведете статистику совпадений одних слов в других. По логической части - я не уверен, что сам алгоритм должен работать именно так как Вы его описали. Очевидно же чем больше текст, тем больше вероятность того, что будет процент совпадения больше. Вероятно там есть дополнительные проверки. Ну, например, не учитываются служебные слова, образующие предложения, и слабо влияющие на смысл. Например, союзы, слова-паразиты, всякие там на подь ведь далее прочее в ну и тому подобное. Также я бы просто не учитывал статистику для слов состоящих менее чем 4-5 букв. Ключевые слова, придающие смысл в длинных текстах как правило длинней чем 3 буквы (исключением будут аббревиатуры, можно считать, что это слова из больших букв). Если не учитывать такие факторы, то есть риск получить ложные результаты, если к примеру статьи будут длинные (более 10-15 страниц) и их пишет один автор (но на разные темы).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.04.2014, 12:50   #4
deathbloody
 
Регистрация: 12.06.2012
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Банально использовать любой онлаин-сервис для определения плагиата.
Браво. В делфи мне нужно это осуществить. Делаю электронный учебник, текст который вбивается в Memo1 это код html, во втором Memo, его оригинал. Нужно их сверить и вывести процент совпадения! Как это сделать?
deathbloody вне форума Ответить с цитированием
Старый 15.04.2014, 12:58   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
Делаю электронный учебник,
О таких вещах сразу писать надо. Телепатов здесь нет, чтоб понимать учебное это или просто скучно.

Цитата:
Как это сделать?
Развернутый ответ дан в посте №3.

Если у вас HTML, то вам надо дополнительно одноо из двух: вырезать полезное из html, игнорировать HTML в процессе разбора текста.
Человек_Борща вне форума Ответить с цитированием
Старый 15.04.2014, 13:03   #6
deathbloody
 
Регистрация: 12.06.2012
Сообщений: 9
По умолчанию

бред в 3 посте. я вообще-то тоже не телепат, и на словах мало. что понятно. пример кода был бы кстати
deathbloody вне форума Ответить с цитированием
Старый 15.04.2014, 13:22   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от deathbloody Посмотреть сообщение
бред в 3 посте. я вообще-то тоже не телепат, и на словах мало. что понятно. пример кода был бы кстати
а может сразу готовый код?

в третьем посту написан не бред, а алгоритм вполне.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.04.2014, 13:31   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
бред в 3 посте. я вообще-то тоже не телепат, и на словах мало. что понятно. пример кода был бы кстати
Формализируйте. Для этого нужно имеющуюся задачу разбить на более мелкие, а их соответственно на еще более мелкие, до тех пор пока не получите простенькие задачи легко переносимые на нужный язык программирования.
Ну например, как Вы бы представили процедуру переноса слов из Мемо в динамический массив?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.04.2014, 13:44   #9
deathbloody
 
Регистрация: 12.06.2012
Сообщений: 9
По умолчанию

понятия не имею
deathbloody вне форума Ответить с цитированием
Старый 15.04.2014, 13:52   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
procedure TForm1.ButtonClick(Sender: TObject);
var
  a, b: integer;
begin
  a := length(Memo1.Text);
  b := length(Memo2.Text);
  showmessage(floattostr(random(10001) / 100) + '%');
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi передача текста из memo в memo hauk70 Помощь студентам 27 22.05.2012 18:33
Посимвольное сравнение двух Memo iKarma Общие вопросы Delphi 8 21.10.2011 15:07
Сравнить содержимое двух Memo. santaIsAbsent Общие вопросы Delphi 1 17.08.2010 11:33
Множества. Вывести в алфавитном порядке все буква текста, входящие в него более двух раз ilyas22 Паскаль, Turbo Pascal, PascalABC.NET 5 23.05.2010 12:50
Синхронная прокрутка двух Memo Dimmitt Компоненты Delphi 1 21.10.2007 17:57