Duplicate Finder

На других языках: English Español 한국어 Português 中文

Duplicate finder — это приложение с открытым исходным кодом для поиска похожих текстов в одном или нескольких файлах. Его можно использовать для обнаружения 100% дубликатов, а также контента, который схож, но не идентичен. Инструмент совместим с разными форматами, включая plaintext, Markdown и XML.

Он может помочь вам с:

Пример дублированного контента

Вот краткий пример того, что инструмент помогает обнаружить:

Chunk 1:
Open the Google Play Store on your Android device, search for "AwesomeApp", then tap "Install" to download and install the app.
Chunk 2:
Open the App Store on your iOS device, search for "AwesomeApp", then tap "Get" to download and install the app.

Как использовать

  1. Скачайте приложение или соберите его из исходников.
  2. Убедитесь, что на вашем компьютере установлена Java 16 или выше
  3. В терминале откройте папку с загруженным .jar файлом
  4. Выполните java -jar duplicate-finder.jar со следующими параметрами:

    Параметр Описание Пример
    -r / --root
    обязательно
    Относительный или абсолютный путь к папке, в которой вы хотите искать дублирующийся контент -r=./my-project/
    -o / --output Относительный или абсолютный путь к папке, в которой вы хотите сохранить результаты анализа. Если папка не указана, находилка дубликатов будет использовать текущую директорию. -r=./my-project/duplicates/
    -f / --fileMask Список расширений файлов для анализа, разделённый запятыми. По умолчанию анализируются все файлы. -f=md,mdx
    -i / --indexer

    Что считать фрагментом текста. Доступны следующие варианты:

    • md – элемент markdown
    • line – одна строка текста
    • xml – элемент XML
    • file – содержимое всего файла
    • auto – (по умолчанию) попытаться определить по расширениям файлов из опции fileMask
    -i=md
    -l / --minLength Минимальное количество символов во фрагменте текста для анализа. По умолчанию: 100 (фрагменты текста короче 100 символов не рассматриваются). -l=150
    -s / --minSimilarity Минимальная степень сходства между двумя фрагментами текста для того, чтобы они считались дубликатами. По умолчанию: 0.9 (90%). -s=0.85
    -d / --minDuplicates Минимальное количество дубликатов фрагмента текста для того, чтобы эта группа дубликатов попала в отчёт. По умолчанию: 1 (одного дубликата достаточно). -d=5
    -h / --headless Не открывать окно просмотра дубликатов. Записывать отчет только в виде файлов. -h
    -v / --verbose Писать сообщения о ходе выполнения и ошибках в консоль. Используйте эту опцию, если анализ занимает слишком много времени и вы подозреваете наличие проблемы. По умолчанию: без сообщений в консоли -v
    -m / --memory Режим низкого потребления памяти - снижает использование памяти за счет скорости анализа -m
    -g / --gram (для тёртых калачей) длина ngram – влияет на скорость, использование памяти и точность анализа. Эффект будет разным в зависимости от контента. -g=10

Пример команды

Вот пример того, как может выглядеть команда:

java -jar duplicate-finder.jar -r=/Users/me.user/my-site -i=md -f=md,mdx -s=0.85 -d=5 -l=200

Приведенная выше команда будет:

Результаты

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

Вот что вы увидите в окне просмотра дубликатов:

Duplicate finder UI Duplicate finder UI
  1. Панель инструментов: здесь вы можете настроить размера шрифта, сортировку и как показываются группы дубликатов – по одному эталонному фрагменту (2) на каждую группу дубликатов, либо все сразу.
  2. Список эталонных фрагментов: здесь вы выбираете фрагмент, для которого будут показаны дубликаты, и который будет служить эталоном для сравнения.
  3. Список дубликатов: после того, как вы выбрали эталонный фрагмент (2), в этом списке будут показаны фрагменты, которые на него похожи. Чтобы посмотреть дубликат, выберите его из списка.
  4. Панель для просмотра эталонного фрагмента: после того, как вы выбрали эталонный фрагмент (2), его содержимое будет показано здесь. Схожие части показаны зелёным, а различающиеся - красным. Чем больше дубликатов (3) схожи в какой-то части, тем ближе к зеленому будет ее цвет.
  5. Панель для просмотра дубликата: после того, как вы выбрали дубликат (3), его содержимое будет показано здесь. Используйте эту панель для быстрого сравнения с выбранным эталонным фрагментом (4).

Узнать больше и связаться

Если вас заинтересовало то, как работает и разрабатывается находилка дубликатов, почитайте связанные блог посты:

Вы можете связаться со мной, используя контакты внизу этой страницы. Буду рад услышать ваши мысли и идеи.

Лицензия

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

all posts ->