Программное обеспечение для обнаружения локального плагаризма

Я ищу программное обеспечение, которое обнаруживает плагиат и имеет следующие атрибуты:

  1. Бесплатно (как в пиве)
  2. Windows (7, 8, 8.1, 2012 сервер R2)
  3. Интерфейс командной строки
  4. Дает соответствующие фрагменты текста

Хорошо бы иметь:

  1. Трехстороннее сравнение (текст во всех, в парных документах, только в одном документе)
  2. XML-вывод

Полностью согласен компилировать из исходного кода, любых разумных языков или просто использовать вместо этого библиотеку Python.

В случае, если это было неясно, я хочу, чтобы он обнаруживал плагиат только из источников, которые я ему передаю. Кто-нибудь знает о таком программном обеспечении?

Вы ищете литературный плагиат или программное обеспечение и ищете его из конкретных источников?
@SteveBarnes Конкретные источники (т.е. файлы, которые я ему передаю)

Ответы (2)

Это инструмент, который делает все это: http://ssdeep.sourceforge.net

Он в основном предназначен для компьютерной криминалистики — обнаружения похожих, модифицированных, измененных или усеченных файлов.

Я успешно использовал его для борьбы со спамом, обнаруживая электронные письма, которые были изменены в степени от незначительной до значительной по сравнению с другими электронными письмами и образцами спама.

Я думаю, что он подойдет для вашей цели, потому что он имеет настраиваемую «чувствительность» к изменениям и способен обнаруживать похожие фрагменты, см. здесь для демонстрации:

http://ssdeep.sourceforge.net/usage.html#иглы

Предупреждение: я использовал разделяемую библиотеку напрямую через Python cffi ( https://cffi.readthedocs.org/en/latest/ ), а не сам инструмент командной строки, хотя у ssdeep есть утилита командной строки. Тем не менее, использование cffi для вызовов библиотеки ssdeep было более мощным, чем командная строка, и очень простым.

Я подумал, что вы, вероятно, могли бы использовать Python и SciPy NLTK для создания списка предложений из каждого из ваших текстов, которые, по вашему мнению, могут быть плагиатом из-за использования tokenizeя бы предложил удалить из них знаки препинания и исключить все предложения с менее чем 5 или 6 слов и их сохранение, возможно, с какими-то ссылками на то, где они встречаются в исходном тексте.

Затем вы можете применить тот же алгоритм к своим подозрительным текстам и проверить совпадения.

  • Бесплатно и как в пиве и как птица.
  • Практически любая платформа, на которой может быть установлен Python, включая Windows.
  • Интерфейс командной строки — да, если вы не предоставите ему графический интерфейс.
  • Выходные данные могут быть примерно такими, какие вам нравятся.
  • Из ваших приятных вещей вы можете добавить одно или оба.
Должны быть решения, отличные от ручного кодирования. Хотя у этого есть тег сценария оболочки, я бы не стал интерпретировать его как открытый для библиотек + Создайте свой собственный в качестве решения.
@Oxinabox одна из приятных особенностей мира FOSS заключается в том, что вы можете «свернуть свое собственное», когда никто другой не предлагает подходящее «без привязки».