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

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

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2012, 23:54   #1
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию Проверка текста на плагиат

Всем привет.
Есть задача - проверять текстовые документы на плагиат. Т.е. в наличии будет база существующих документов, пользователь выбирает свой документ и приложение выдает результат - является ли содержимое данного документа плагиатом (в процентном отношении скорее всего).

Ищу сейчас информацию по данной теме. В большинстве случаев на многих ресурсах советуют использовать алгоритм шинглов. И действительно, алгоритм не сложный, что уже плюс. Также из обсуждений понял, что данный алгоритм хорошо подходит для больших объемов текста.
Минусом можно конечно рассматривать не слишком большую скорость работы, если длина шингла будет небольшой. А так же о сложность определения позиции совпавшего текста.

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

Просто цель состоит в максимально точном определении, является ли данный документ плагиатом или нет. В идеале конечно - возможность анализа и смысловой составляющей текста (тут пока вобще не представляю как, подобное реализовать, что посоветуете?), т.к в тексте смысл может быть тот же, а заменены какие-то слова на новые и т.д.

Возможно кому-то приходилось решать подобную задачу, в таком случае буду рад любой имеющейся информации.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 16.09.2012, 02:13   #2
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Цитата:
Просто цель состоит в максимально точном определении, является ли данный документ плагиатом или нет. В идеале конечно - возможность анализа и смысловой составляющей текста (тут пока вобще не представляю как, подобное реализовать, что посоветуете?), т.к в тексте смысл может быть тот же, а заменены какие-то слова на новые и т.д.
Думаю, что вы сами понимаете, что это работа для очень продвинутого ИИ. Не знаю, как сейчас относятся к ИИ нейронные сети, и актуальны ли они, но можно почитать об этом. Думаю информация есть.
Если более обще выражаться. Текст разбить на части (по обзацам). И выделять тему и идею в каждом обзаце. Запоминать и сопоставлять резулятаты с образцом и не важно, соответствует тема определенному абзацу или нет. А наряду с этим проводить словестный анализ.
Может быть можно попробовать оттолкнуться от биометрии? Стиль изложения и т.д. Если стиль изложения не соответствует образцу, а тема и идея - одни и теже - значит текст написан другим автором. Слишком сложно?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 16.09.2012, 08:48   #3
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

advego - вот этот интернет ресурс имеет собственное приложение для проверки текста на плагиат... работает проверяя совпадения по поисковым системам в сети Интернет.
kta87 вне форума Ответить с цитированием
Старый 17.09.2012, 22:14   #4
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

В целом все это понятно, хотелось бы конечно больше конкретики...
Вот, что нашел по данному вопросу, может быть кому-то пригодится еще:
Вложения
Тип файла: zip Info.zip (4.86 Мб, 21 просмотров)
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 19.09.2012, 15:42   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Частично согласен с ImmortalAlexSan. Задача совсем нетривиальная - одно дело сравнить 2 текста на совпадение (алгоритм наибольшей общей подпоследовательности подойдет - сходу), а другое - семантический анализ. Я бы рекомендовал поискать синтаксические анализаторы русского (или какой там у вас язык в документах), выделил бы в каждом документе в хранилище основные слова (можно сказать - теги), и запомнил бы их. А потом делал бы то же самое с входным документом и сравнивал уже не целый текст, а теги (я бы назвал их метриками документа).

Для пущей уверенности - проверять случайные части текста алгоритмом шинглов, и сравнивать по тегам.

Самый простой вариант расстановки тегов - синтаксический анализ каждого предложения в тексте и выделение существительных. Согласен, не совсем быстро, но качественно. И к тому же есть возможность оптимизации.

И еще одно дополнение к сравнению по тегам - вам нужен словарь синонимов, чтобы исключить подобные тексты, в которых слова заменены на синонимы.

Вот такой навскидку план/алгоритм сравнения. Особенность в том, что вы один раз проиндексируете все документы в хранилище, а потом будете работать только с тегами/метриками.
MaTBeu вне форума Ответить с цитированием
Старый 19.09.2012, 22:17   #6
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

В целом направление стало более понятно. Спасибо всем.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анти-плагиат (Delphi, C++) udaffo4ka Помощь студентам 8 10.12.2015 02:18
Проверка текстов на плагиат HDMI PHP 0 23.04.2012 20:22
Проверка текста Memo fineleave Помощь студентам 4 11.06.2011 21:48
Проверка на плагиат Sparky Свободное общение 7 17.12.2010 17:25
Проверка текста Babyshka Помощь студентам 3 11.03.2010 20:00