Введение
В данной статье напишем программу для проверки текста на плагиат. Конечно это не сравнится с хорошим антиплагиат сервисом, но для общего кругозора мы напишем свою простую программку.
Проверка строки на плагиат
Начнём с простого, и напишем программу, которая будет находить плагиат в строке. Для этого мы воспользуемся классом 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. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂
Мой Telegram канал
Мой YouTube канал