Простая проверка на плагиат на Python

Статьи

Введение

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

Проверка строки на плагиат

Начнём с простого, и напишем программу, которая будет находить плагиат в строке. Для этого мы воспользуемся классом SequenceMatcher() из модуля difflib. В нём есть метод под названием ratio(), который возвращает схожесть нескольких последовательностей в виде числа с типом данных float и диапазоном от 0, до 1.

Для начала импортируем класс SequenceMatcher():

from difflib import SequenceMatcher

Теперь создадим две строки с +/- похожим текстом:

from difflib import SequenceMatcher

my_str = 'Привет, как дела?'
my_str2 = 'Привет, как жизнь?'

Создадим объект класса SequenceMatcher() и передадим в него две наших строки:

from difflib import SequenceMatcher

my_str = 'Привет, как дела?'
my_str2 = 'Привет, как жизнь?'

match = SequenceMatcher(None, my_str, my_str2)

Осталось сравнить две строки используя метод ratio() и вывести итоговый результат:

from difflib import SequenceMatcher

my_str = 'Привет, как дела?'
my_str2 = 'Привет, как жизнь?'

match = SequenceMatcher(None, my_str, my_str2)

result = match.ratio() * 100

print(f'Процент плагиата: {result:.2f}%')

# Вывод: Процент плагиата: 74.29%

Проверка текстовых файлов на плагиат

Теперь напишем программу, которая будет проверять на плагиат два текстовых файла.

Первый файл назовём text1.txt, и запишем в него следующий текст:

Первый текстовый документ

Второй файл назовём text2.txt, и запишем в него следующий текст:

Второй текстовый документ

Теперь перейдём к написанию кода. Для начала также импортируем класс SequenceMatcher() из модуля difflib:

from difflib import SequenceMatcher

Далее используя конструкцию with … as откроем два наших файла и считаем их:

from difflib import SequenceMatcher

with open('text1.txt') as first_file, open('text2.txt') as second_file:
    file1 = first_file.read()
    file2 = second_file.read()

Создадим объект класса SequenceMatcher() и передадим в него текста из файлов. :

from difflib import SequenceMatcher

with open('text1.txt') as first_file, open('text2.txt') as second_file:
    file1 = first_file.read()
    file2 = second_file.read()

    match = SequenceMatcher(None, file1, file2)

Сравним две строки используя метод ratio() и выведем итоговый результат:

from difflib import SequenceMatcher

with open('text1.txt') as first_file, open('text2.txt') as second_file:
    file1 = first_file.read()
    file2 = second_file.read()

    match = SequenceMatcher(None, file1, file2)
    result = match.ratio() * 100

    print(f'Процент плагиата: {result:.2f}%')

Заключение

В ходе статьи мы с Вами научились проверять текст на плагиат используя Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start