مقایسه دو فایل PDF با هوش مصنوعی؛ آموزش پیدا کردن تفاوت فایل‌های PDF و Word

در این راهنمای عملی یاد می‌گیرید چگونه دو نسخه از فایل‌های PDF و Word را با هوش مصنوعی مقایسه کنید، تفاوت‌های متنی و معنایی را پیدا کنید و گزارشی دقیق از تغییرات بسازید.

Share
مقایسه دو فایل PDF با هوش مصنوعی؛ آموزش پیدا کردن تفاوت فایل‌های PDF و Word

مقایسه دو فایل PDF یا Word زمانی دشوار می‌شود که سندها طولانی باشند یا تغییرات کوچکی در بخش‌های مختلف آن‌ها ایجاد شده باشد. ممکن است یک جمله حذف شده، عددی تغییر کرده، پاراگرافی جابه‌جا شده یا مفهوم یک بخش بدون تغییر ظاهری چشمگیر بازنویسی شده باشد.

بررسی دستی چنین فایل‌هایی هم زمان‌بر است و هم احتمال دارد بعضی تفاوت‌ها دیده نشوند. ابزارهای مقایسه سنتی می‌توانند کلمات اضافه‌شده و حذف‌شده را مشخص کنند، اما هوش مصنوعی یک قابلیت تکمیلی مهم دارد: می‌تواند تغییرات را دسته‌بندی، خلاصه و از نظر معنایی تحلیل کند.

برای مثال، یک ابزار معمولی نشان می‌دهد:

نسخه اول: گزارش باید هر ماه تهیه شود.
نسخه دوم: گزارش باید هر سه ماه تهیه شود.

هوش مصنوعی می‌تواند علاوه بر نمایش اختلاف، توضیح دهد:

تناوب تهیه گزارش از ماهانه به فصلی تغییر کرده است.

بهترین روش مقایسه اسناد این نیست که تمام کار به هوش مصنوعی سپرده شود. روش حرفه‌ای از دو لایه تشکیل می‌شود:

  1. مقایسه قطعی و ماشینی برای پیداکردن اضافه‌شدن، حذف‌شدن و تغییر متن
  2. تحلیل هوش مصنوعی برای توضیح معنا، اهمیت و دسته‌بندی تغییرات

در این مقاله یاد می‌گیرید:

  • چگونه دو فایل PDF را مقایسه کنید
  • چگونه فایل‌های اسکن‌شده را با OCR آماده کنید
  • چگونه دو نسخه Word را بدون ابزار اضافی مقایسه کنید
  • تفاوت مقایسه متنی، تصویری، ساختاری و معنایی چیست
  • چگونه با پرامپت مناسب گزارش تغییرات بسازید
  • چگونه اسناد طولانی را بدون گم‌شدن تغییرات پردازش کنید
  • چگونه با Python و API درواره یک ابزار مقایسه سند بسازید
  • چگونه دقت گزارش نهایی را ارزیابی کنید

مقایسه سند دقیقاً به چه معناست؟

مقایسه سند یا Document Comparison فرایندی است که در آن دو نسخه از یک فایل بررسی می‌شوند تا تفاوت‌های میان آن‌ها مشخص شود.

این تفاوت‌ها ممکن است شامل موارد زیر باشند:

  • اضافه‌شدن کلمه یا جمله
  • حذف‌شدن محتوا
  • تغییر عدد، تاریخ یا نام
  • بازنویسی یک عبارت
  • جابه‌جایی پاراگراف
  • تغییر عنوان‌ها
  • اضافه یا حذف‌شدن جدول
  • تغییر تصاویر
  • تغییر قالب‌بندی
  • تغییر ترتیب بخش‌ها
  • تغییر معنای یک بند
  • تغییر نتیجه‌گیری
  • اضافه یا حذف‌شدن یک صفحه

نوع ابزار مناسب به نوع تفاوتی بستگی دارد که می‌خواهید پیدا کنید.

چهار روش اصلی مقایسه فایل

مقایسه متنی

در این روش، متن دو فایل استخراج و با یک الگوریتم Diff مقایسه می‌شود.

مناسب برای:

  • مقاله
  • گزارش
  • راهنمای محصول
  • کتاب
  • فایل Word
  • PDF دارای متن قابل انتخاب
  • مستندات نرم‌افزار

خروجی معمولاً شامل موارد زیر است:

  • متن حذف‌شده
  • متن اضافه‌شده
  • متن بدون تغییر
  • محل تغییر

مقایسه تصویری

در این روش، صفحه‌های دو فایل به تصویر تبدیل و پیکسل‌های آن‌ها مقایسه می‌شوند.

مناسب برای:

  • بروشور
  • کاتالوگ
  • گزارش دارای نمودار
  • فایل طراحی
  • اسلاید
  • سند اسکن‌شده
  • کنترل تغییر لوگو، رنگ یا چیدمان

مقایسه تصویری ممکن است تغییر کوچک فونت، جابه‌جایی چند پیکسل یا تفاوت در خروجی چاپ را نیز به‌عنوان تغییر شناسایی کند.

مقایسه ساختاری

در این روش، ساختار فایل بررسی می‌شود:

  • عنوان‌ها
  • بخش‌ها
  • جدول‌ها
  • فهرست‌ها
  • پاورقی‌ها
  • تعداد صفحه‌ها
  • ترتیب فصل‌ها
  • ابرداده‌ها

این روش برای اسنادی مناسب است که ساختار اهمیت زیادی دارد.

مقایسه معنایی

مقایسه معنایی بررسی می‌کند که آیا پیام، تعهد، نتیجه یا مفهوم متن تغییر کرده است؛ حتی اگر واژه‌ها کاملاً متفاوت باشند.

مثال:

نسخه اول:

کاربر می‌تواند اشتراک خود را در پایان هر ماه لغو کند.

نسخه دوم:

لغو اشتراک فقط پس از پایان دوره ماهانه امکان‌پذیر است.

ممکن است الگوریتم متنی بیشتر واژه‌ها را تغییر‌یافته نشان دهد، اما تحلیل معنایی مشخص می‌کند که مفهوم کلی تقریباً یکسان باقی مانده است.

در مقابل:

نسخه اول:

پشتیبانی در روزهای کاری ارائه می‌شود.

نسخه دوم:

پشتیبانی فقط در روزهای شنبه تا دوشنبه ارائه می‌شود.

هوش مصنوعی می‌تواند توضیح دهد که محدوده زمانی پشتیبانی کاهش یافته است.

آیا هوش مصنوعی به‌تنهایی برای مقایسه فایل کافی است؟

خیر. مدل زبانی نباید تنها ابزار تشخیص تفاوت باشد.

اگر دو فایل طولانی را مستقیماً در اختیار مدل قرار دهید، ممکن است:

  • بعضی تغییرات کوچک را نادیده بگیرد
  • دو بخش مشابه را اشتباه تطبیق دهد
  • تغییر عدد را کم‌اهمیت تلقی کند
  • بخشی از سند طولانی را بررسی نکند
  • تغییرات را بیش‌ازحد خلاصه کند
  • تفاوتی را گزارش کند که واقعاً وجود ندارد

روش مطمئن‌تر:

استخراج متن
    ↓
تطبیق بخش‌های متناظر
    ↓
مقایسه قطعی با الگوریتم Diff
    ↓
ارسال فقط تفاوت‌ها به مدل
    ↓
تحلیل و دسته‌بندی معنایی
    ↓
بازبینی نهایی

در این معماری، الگوریتم مقایسه مسئول کشف تغییرات است و هوش مصنوعی مسئول توضیح آن‌هاست.

قبل از مقایسه، نوع فایل را تشخیص دهید

PDFها از نظر ساختار یکسان نیستند.

PDF متنی

اگر می‌توانید با نشانگر ماوس متن را انتخاب و کپی کنید، فایل احتمالاً لایه متنی دارد.

PDF اسکن‌شده

اگر هر صفحه فقط یک تصویر است و متن قابل انتخاب نیست، ابتدا باید OCR انجام شود.

PDF ترکیبی

بعضی صفحه‌ها متن واقعی دارند و بعضی صفحه‌ها اسکن هستند. در این حالت باید پس از استخراج اولیه، صفحه‌های بدون متن شناسایی و جداگانه OCR شوند.

PDF دارای چیدمان پیچیده

فایل‌هایی با چند ستون، جدول، کادر و پاورقی ممکن است هنگام استخراج متن ترتیب نامناسبی پیدا کنند. برای این فایل‌ها باید ابزار استخراج متن دارای تشخیص چیدمان استفاده شود.

آموزش سریع مقایسه دو فایل PDF

اگر فایل‌ها متن قابل انتخاب دارند، این روش را اجرا کنید:

  1. نسخه قدیمی و جدید را با نام مشخص ذخیره کنید.
  2. از هر فایل یک نسخه پشتیبان بگیرید.
  3. متن هر دو PDF را استخراج کنید.
  4. عنوان‌ها، شماره صفحه و پاراگراف‌ها را حفظ کنید.
  5. متن‌های استخراج‌شده را پاک‌سازی کنید.
  6. دو متن را با ابزار Diff مقایسه کنید.
  7. بخش‌های اضافه و حذف‌شده را استخراج کنید.
  8. تفاوت‌ها را برای تحلیل معنایی به هوش مصنوعی بدهید.
  9. گزارش تغییرات را با فایل اصلی تطبیق دهید.
  10. تغییرات مهم را شخصاً بررسی کنید.

برای فایل‌های حساس، پیش از بارگذاری در سرویس‌های آنلاین، شیوه پردازش و نگهداری فایل توسط آن سرویس را بررسی کنید.

مقایسه PDF با Adobe Acrobat

Adobe Acrobat Pro ابزار Compare Files دارد که می‌تواند دو نسخه PDF را تحلیل و گزارشی از تفاوت‌ها ایجاد کند.

فرایند عمومی:

  1. Adobe Acrobat Pro را باز کنید.
  2. وارد بخش All Tools شوید.
  3. گزینه Compare Files را انتخاب کنید.
  4. فایل قدیمی را به‌عنوان نسخه اصلی مشخص کنید.
  5. فایل جدید را به‌عنوان نسخه اصلاح‌شده انتخاب کنید.
  6. نوع سند را تعیین کنید.
  7. در صورت نیاز، مقایسه فقط متن را فعال کنید.
  8. Compare را بزنید.
  9. گزارش تغییرات را بررسی کنید.

براساس راهنمای رسمی Adobe Acrobat، نتیجه مقایسه در یک سند جدید نمایش داده می‌شود و می‌توان تفاوت‌های نسخه قدیمی و جدید را مرور کرد.

مزیت این روش، نمایش تغییرات متن و ظاهر فایل است. برای توضیح معنای تغییرات می‌توانید گزارش Acrobat را در مرحله بعد با مدل هوش مصنوعی تحلیل کنید.

مقایسه دو فایل Word بدون هوش مصنوعی

Microsoft Word قابلیت داخلی مقایسه دو نسخه سند را دارد.

مراحل:

  1. Word را باز کنید.
  2. وارد تب Review شوید.
  3. گزینه Compare را انتخاب کنید.
  4. روی Compare two versions of a document کلیک کنید.
  5. نسخه اصلی را انتخاب کنید.
  6. نسخه اصلاح‌شده را انتخاب کنید.
  7. نوع تغییرات موردنظر را مشخص کنید.
  8. نمایش تغییرات در سند جدید را انتخاب کنید.
  9. روی OK بزنید.

طبق راهنمای رسمی Microsoft Word، Word نتیجه را در یک سند سوم نمایش می‌دهد و فایل‌های اصلی را تغییر نمی‌دهد.

در تنظیمات مقایسه می‌توان مواردی مانند این‌ها را انتخاب کرد:

  • متن
  • قالب‌بندی
  • نظرها
  • سربرگ و پاورقی
  • جدول‌ها
  • جابه‌جایی‌ها
  • پاورقی‌ها
  • تغییر در سطح کلمه یا کاراکتر

پس از تولید گزارش Word، می‌توانید تغییرات مهم را جدا و برای توضیح معنایی به هوش مصنوعی بدهید.

مقایسه دو فایل در کنار یکدیگر

اگر فقط می‌خواهید نسخه‌ها را به‌صورت بصری مرور کنید، Word قابلیت Side by Side دارد:

  1. هر دو فایل را باز کنید.
  2. وارد تب View شوید.
  3. View Side by Side را انتخاب کنید.
  4. Synchronous Scrolling را فعال کنید.

در این حالت دو فایل هم‌زمان پیمایش می‌شوند. راهنمای رسمی Microsoft این روش را برای مرور هم‌زمان دو سند توضیح می‌دهد.

این روش برای فایل‌های کوتاه مناسب است، اما برای کشف همه تغییرات سند طولانی کافی نیست.

مقایسه PDF اسکن‌شده با OCR

اگر فایل اسکن‌شده باشد، ابتدا باید متن داخل تصاویر استخراج شود.

OCR یا Optical Character Recognition فرایندی است که تصویر نوشته را به متن قابل پردازش تبدیل می‌کند.

گردش‌کار:

PDF اسکن‌شده اول
    ↓
تبدیل صفحه‌ها به تصویر
    ↓
OCR
    ↓
متن نسخه اول

PDF اسکن‌شده دوم
    ↓
تبدیل صفحه‌ها به تصویر
    ↓
OCR
    ↓
متن نسخه دوم

دو متن
    ↓
مقایسه و تحلیل

برای آموزش OCR، مقاله تبدیل عکس به متن با هوش مصنوعی را مطالعه کنید.

مشکلات رایج OCR فارسی

OCR فارسی ممکن است در موارد زیر خطا داشته باشد:

  • نیم‌فاصله
  • حروف «ی» و «ک»
  • اعداد فارسی و انگلیسی
  • نقطه و ویرگول
  • جدول‌ها
  • ستون‌های چندگانه
  • متن کج
  • اسکن کم‌کیفیت
  • مهر یا نوشته روی متن
  • ترکیب فارسی و انگلیسی

قبل از مقایسه، متن OCRشده باید نرمال‌سازی شود؛ در غیر این صورت، خطاهای OCR به‌عنوان تغییر سند گزارش می‌شوند.

نرمال‌سازی متن فارسی

پیش از مقایسه بهتر است تغییرات ظاهری غیرضروری حذف شوند.

موارد قابل نرمال‌سازی:

  • یکسان‌کردن «ي» و «ی»
  • یکسان‌کردن «ك» و «ک»
  • تنظیم نیم‌فاصله
  • حذف فاصله‌های تکراری
  • یکسان‌کردن پایان خطوط
  • هماهنگ‌کردن اعداد فارسی و انگلیسی
  • حذف سربرگ تکراری صفحه‌ها
  • حذف شماره صفحه از متن مقایسه
  • اصلاح نویسه‌های نامرئی

نمونه ساده با Python:

import re

def normalize_persian(text):
    text = text.replace("ي", "ی")
    text = text.replace("ك", "ک")
    text = text.replace("\u200c", " ")
    text = re.sub(r"[ \t]+", " ", text)
    text = re.sub(r"\n{3,}", "\n\n", text)
    return text.strip()

حذف نیم‌فاصله همیشه بهترین انتخاب نیست. اگر شکل دقیق نگارش اهمیت دارد، یک مقایسه با متن اصلی و یک مقایسه با متن نرمال‌شده انجام دهید.

پرامپت ساده مقایسه دو متن

برای فایل‌های کوتاه می‌توانید از این پرامپت استفاده کنید:

دو نسخه متن زیر را مقایسه کن.

نسخه اول:
[متن نسخه اول]

نسخه دوم:
[متن نسخه دوم]

خروجی را در قالب جدول ارائه بده و برای هر تغییر بنویس:
- بخش
- متن نسخه اول
- متن نسخه دوم
- نوع تغییر
- توضیح معنایی
- میزان اهمیت
- نیاز به بررسی انسانی

نوع تغییر فقط یکی از این موارد باشد:
- اضافه‌شده
- حذف‌شده
- بازنویسی‌شده
- عدد تغییر کرده
- تاریخ تغییر کرده
- جابه‌جا شده
- تغییر قالب بدون تغییر معنا

هیچ تفاوتی را حدس نزن و فقط براساس متن‌های ارائه‌شده تحلیل کن.

پرامپت تحلیل گزارش Diff

روش بهتر این است که ابتدا تفاوت‌ها با ابزار قطعی استخراج شوند و سپس فقط همان تفاوت‌ها به مدل داده شوند:

فهرست زیر با یک الگوریتم مقایسه قطعی از دو نسخه سند استخراج شده است.

[فهرست تفاوت‌ها]

وظیفه تو کشف تفاوت جدید نیست. فقط همین تغییرات را تحلیل کن.

برای هر مورد بنویس:
- خلاصه تغییر
- دسته‌بندی
- آیا معنا تغییر کرده است؟
- پیامد احتمالی برای خواننده
- سطح اهمیت: کم، متوسط یا زیاد
- آیا نیازمند بازبینی انسانی است؟
- دلیل

تغییرات مشابه را در گزارش نهایی گروه‌بندی کن، اما هیچ موردی را حذف نکن.

این دستور احتمال نادیده‌گرفتن تغییرات را کاهش می‌دهد.

انواع تغییراتی که باید جداگانه بررسی شوند

تغییر اعداد

تغییر عدد ممکن است بسیار مهم باشد، حتی اگر فقط یک کاراکتر تفاوت داشته باشد.

مثال:

نسخه اول: ظرفیت سیستم ۱۰۰ درخواست در دقیقه است.
نسخه دوم: ظرفیت سیستم ۱۰۰۰ درخواست در دقیقه است.

تغییر تاریخ

مثال:

نسخه اول: تحویل در ۱۵ مرداد
نسخه دوم: تحویل در ۳۰ مرداد

تغییر منفی و مثبت

مثال:

نسخه اول: این قابلیت فعال است.
نسخه دوم: این قابلیت فعال نیست.

وجود کلمه «نیست» باید با اهمیت بالا گزارش شود.

تغییر شرط

مثال:

نسخه اول: کاربران می‌توانند فایل را دانلود کنند.
نسخه دوم: کاربران تأییدشده می‌توانند فایل را دانلود کنند.

یک محدودیت جدید به جمله اضافه شده است.

تغییر واحد

مثال:

نسخه اول: ۱۰ مگابایت
نسخه دوم: ۱۰ گیگابایت

تغییر نام محصول یا شخص

این تغییر ممکن است ناشی از اصلاح ساده یا تغییر موضوع باشد و باید جداگانه نمایش داده شود.

جابه‌جایی متن

اگر یک پاراگراف فقط به بخش دیگری منتقل شده، نباید همیشه به‌عنوان حذف و اضافه مستقل گزارش شود.

ساخت گزارش تغییرات حرفه‌ای

گزارش نهایی بهتر است چند سطح داشته باشد.

خلاصه مدیریتی

در چند جمله توضیح دهید:

  • چند تغییر پیدا شد
  • مهم‌ترین تغییرها چه بودند
  • کدام بخش‌ها بیشترین تغییر را داشتند
  • چه مواردی به بازبینی نیاز دارند

آمار تغییرات

تعداد بخش‌های اضافه‌شده: ۸
تعداد بخش‌های حذف‌شده: ۳
تعداد بازنویسی‌ها: ۱۲
تعداد تغییرات عددی: ۴
تعداد تغییرات تاریخی: ۲
تعداد جابه‌جایی‌ها: ۵

جدول جزئیات

شناسهبخشنوع تغییرنسخه اولنسخه دوماهمیت
C-001مقدمهبازنویسیمتن اولمتن دومکم
C-002بخش دومتغییر عدد۱۰۰۱۰۰۰زیاد
C-003نتیجه‌گیریحذفپاراگراف قبلیحذف شدهمتوسط

موارد نیازمند بررسی

تغییراتی که شامل عدد، تاریخ، نام، شرط، استثنا یا نتیجه‌گیری هستند در یک بخش جداگانه قرار بگیرند.

پرامپت ساخت خلاصه مدیریتی تغییرات

براساس گزارش تغییرات زیر، یک خلاصه مدیریتی دقیق تهیه کن.

[گزارش تغییرات]

خلاصه باید شامل این موارد باشد:
- مهم‌ترین تغییرات
- بخش‌هایی که بیشترین تغییر را داشته‌اند
- تغییرات عددی و تاریخی
- تغییراتی که مفهوم را عوض کرده‌اند
- موارد نیازمند بازبینی
- جمع‌بندی حداکثر ۳۰۰ کلمه‌ای

هیچ تفسیر خارج از گزارش اضافه نکن.

مقایسه جدول‌ها در دو سند

جدول‌ها بهتر است جداگانه استخراج و براساس سطر و ستون مقایسه شوند.

نمونه:

نسخه اول:

محصولقیمتظرفیت
سرویس A۱۰۰۱۰۰۰
سرویس B۲۰۰۲۰۰۰

نسخه دوم:

محصولقیمتظرفیت
سرویس A۱۲۰۱۰۰۰
سرویس B۲۰۰۲۵۰۰

گزارش مناسب:

سرویس A: قیمت از ۱۰۰ به ۱۲۰ تغییر کرده است.
سرویس B: ظرفیت از ۲۰۰۰ به ۲۵۰۰ افزایش یافته است.

ارسال جدول کامل بدون توضیح ساختار ممکن است مدل را دچار اشتباه کند. بهتر است آن را به JSON یا CSV تبدیل کنید.

[
  {
    "product": "سرویس A",
    "old_price": 100,
    "new_price": 120,
    "old_capacity": 1000,
    "new_capacity": 1000
  }
]

مقایسه تصاویر و نمودارها

مدل متنی نمی‌تواند تغییرات تصویری را از متن استخراج‌شده تشخیص دهد. برای نمودار، تصویر و چیدمان به یک مرحله بصری نیاز دارید.

روش پیشنهادی:

  1. صفحه‌های دو PDF را با وضوح یکسان به تصویر تبدیل کنید.
  2. صفحه‌های متناظر را کنار هم قرار دهید.
  3. اختلاف پیکسلی را محاسبه کنید.
  4. محدوده تغییر را علامت بزنید.
  5. تصویر مقایسه را با مدل دارای قابلیت Vision تحلیل کنید.
  6. گزارش بصری را با نتیجه متنی ترکیب کنید.

موارد قابل شناسایی:

  • تغییر تصویر
  • حذف نمودار
  • تغییر عنوان نمودار
  • جابه‌جایی جدول
  • تغییر رنگ
  • تغییر لوگو
  • تغییر چیدمان
  • اضافه‌شدن کادر یا توضیح

مقایسه پیکسلی به‌تنهایی نمی‌گوید تغییر مهم است یا نه. ممکن است فقط فونت یا نحوه رندر PDF متفاوت باشد.

مقایسه فایل‌هایی با ترتیب متفاوت

یکی از مشکلات اصلی این است که پاراگرافی از صفحه ۳ به صفحه ۸ منتقل شده باشد. الگوریتم ساده ممکن است آن را یک حذف و یک اضافه تشخیص دهد.

برای شناسایی جابه‌جایی:

  1. سند را به پاراگراف تقسیم کنید.
  2. برای هر پاراگراف یک شناسه یا اثرانگشت بسازید.
  3. شباهت پاراگراف‌ها را در دو نسخه محاسبه کنید.
  4. پاراگراف مشابه با مکان متفاوت را پیدا کنید.
  5. آن را به‌عنوان Move گزارش دهید.
  6. فقط تغییرات داخلی پاراگراف را جداگانه تحلیل کنید.

مدل‌های Embedding نیز می‌توانند برای یافتن بخش‌های مشابه با نگارش متفاوت استفاده شوند.

مقایسه سندهای بسیار طولانی

دو فایل صدصفحه‌ای را مستقیماً در یک درخواست قرار ندهید. حتی اگر مدل ظرفیت دریافت متن بلند داشته باشد، ممکن است جزئیات کوچک در حجم زیاد متن کم‌رنگ شوند.

روش مناسب:

مرحله ۱: استخراج ساختار

  • عنوان سند
  • فهرست
  • بخش‌ها
  • زیربخش‌ها
  • شماره صفحه

مرحله ۲: تطبیق بخش‌ها

هر بخش نسخه اول با بخش متناظر نسخه دوم جفت شود.

مرحله ۳: مقایسه قطعی

تفاوت‌های هر جفت با الگوریتم Diff استخراج شود.

مرحله ۴: تحلیل دسته‌ای

فقط تفاوت‌های چند بخش در هر درخواست به مدل ارسال شوند.

مرحله ۵: تجمیع

گزارش‌های بخش‌ها در یک گزارش نهایی ادغام شوند.

مرحله ۶: کنترل پوشش

بررسی شود که همه بخش‌ها و همه تغییرات در گزارش نهایی حضور دارند.

ساخت ابزار مقایسه متن با Python

کتابخانه difflib در Python برای مقایسه خطی یا کلمه‌ای قابل استفاده است.

from difflib import unified_diff

with open("version-old.txt", "r", encoding="utf-8") as file:
    old_text = file.readlines()

with open("version-new.txt", "r", encoding="utf-8") as file:
    new_text = file.readlines()

difference = unified_diff(
    old_text,
    new_text,
    fromfile="version-old",
    tofile="version-new",
    lineterm=""
)

for line in difference:
    print(line)

نمونه خروجی:

- ظرفیت سرویس ۱۰۰ درخواست در دقیقه است.
+ ظرفیت سرویس ۵۰۰ درخواست در دقیقه است.

علامت - متن نسخه قبلی و علامت + متن نسخه جدید را نشان می‌دهد.

مقایسه در سطح کلمه

برای متن‌های کوتاه می‌توان از SequenceMatcher استفاده کرد:

from difflib import SequenceMatcher

old_text = "گزارش باید هر ماه تهیه شود."
new_text = "گزارش باید هر سه ماه تهیه شود."

old_words = old_text.split()
new_words = new_text.split()

matcher = SequenceMatcher(None, old_words, new_words)

for tag, i1, i2, j1, j2 in matcher.get_opcodes():
    print({
        "operation": tag,
        "old": old_words[i1:i2],
        "new": new_words[j1:j2]
    })

عملیات ممکن است شامل موارد زیر باشند:

  • equal: بدون تغییر
  • replace: جایگزین‌شده
  • delete: حذف‌شده
  • insert: اضافه‌شده

ساخت تحلیلگر تغییرات با API درواره

درواره یک ابزار آماده مقایسه PDF نیست؛ بلکه زیرساخت API برای دسترسی به مدل‌های هوش مصنوعی است. می‌توانید مرحله تحلیل معنایی، دسته‌بندی و خلاصه‌سازی تغییرات را با API درواره به نرم‌افزار خود اضافه کنید.

معماری پیشنهادی:

فایل اول و دوم
    ↓
استخراج متن یا OCR
    ↓
نرمال‌سازی فارسی
    ↓
تقسیم به بخش‌ها
    ↓
مقایسه قطعی
    ↓
تولید فهرست تغییرات
    ↓
تحلیل معنایی با API درواره
    ↓
اعتبارسنجی
    ↓
گزارش HTML، PDF یا Excel

ابتدا در درواره ثبت‌نام کنید، API Key بگیرید و Model ID مناسب را از صفحه مدل‌ها انتخاب کنید.

نمونه درخواست به API درواره

curl https://api.darvareh.ir/v1/chat/completions \
  -H "Authorization: Bearer YOUR_DARVAREH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "messages": [
      {
        "role": "system",
        "content": "شما تحلیلگر تغییرات اسناد فارسی هستید. فقط تغییرات داده‌شده را تحلیل کنید و هیچ تفاوت جدیدی حدس نزنید. خروجی فقط JSON معتبر باشد."
      },
      {
        "role": "user",
        "content": "بخش: محدودیت استفاده\nنسخه اول: ظرفیت سرویس ۱۰۰ درخواست در دقیقه است.\nنسخه دوم: ظرفیت سرویس ۵۰۰ درخواست در دقیقه است.\nنوع تغییر ماشینی: replace\nاین تغییر را از نظر معنایی تحلیل و importance، summary، changed_values و needs_human_review را برگردان."
      }
    ],
    "temperature": 0.1
  }'

مقادیر زیر را جایگزین کنید:

  • YOUR_DARVAREH_API_KEY: کلید API درواره
  • YOUR_MODEL_ID: Model ID انتخاب‌شده در درواره

برای این نوع کار، Temperature پایین‌تر معمولاً خروجی باثبات‌تری ایجاد می‌کند.

ساختار پیشنهادی خروجی JSON

{
  "change_id": "C-001",
  "section": "محدودیت استفاده",
  "change_type": "numeric_change",
  "old_value": "۱۰۰ درخواست در دقیقه",
  "new_value": "۵۰۰ درخواست در دقیقه",
  "summary": "ظرفیت اعلام‌شده سرویس پنج برابر شده است.",
  "meaning_changed": true,
  "importance": "high",
  "needs_human_review": true,
  "review_reason": "تغییر عددی در مشخصات سرویس"
}

برنامه باید خروجی را با JSON Schema یا قواعد داخلی اعتبارسنجی کند.

نمونه Python برای تحلیل تفاوت با درواره

import json
import os
import requests

API_KEY = os.environ["DARVAREH_API_KEY"]
MODEL_ID = os.environ["DARVAREH_MODEL_ID"]

change = {
    "change_id": "C-001",
    "section": "محدودیت استفاده",
    "operation": "replace",
    "old_text": "ظرفیت سرویس ۱۰۰ درخواست در دقیقه است.",
    "new_text": "ظرفیت سرویس ۵۰۰ درخواست در دقیقه است."
}

response = requests.post(
    "https://api.darvareh.ir/v1/chat/completions",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "model": MODEL_ID,
        "messages": [
            {
                "role": "system",
                "content": (
                    "فقط تغییر ارائه‌شده را تحلیل کن. "
                    "هیچ تفاوت جدیدی حدس نزن. "
                    "خروجی فقط JSON معتبر باشد."
                )
            },
            {
                "role": "user",
                "content": json.dumps(change, ensure_ascii=False)
            }
        ],
        "temperature": 0.1
    },
    timeout=60
)

response.raise_for_status()

content = response.json()["choices"][0]["message"]["content"]
analysis = json.loads(content)

print(json.dumps(analysis, ensure_ascii=False, indent=2))

در سامانه عملیاتی باید این موارد نیز پیاده‌سازی شوند:

  • محدودیت اندازه فایل
  • بررسی نوع فایل
  • مدیریت خطا
  • Timeout
  • تلاش مجدد کنترل‌شده
  • ثبت وضعیت هر بخش
  • اعتبارسنجی JSON
  • جلوگیری از پردازش تکراری
  • کنترل دسترسی فایل‌ها
  • حذف فایل‌های موقت
  • بازبینی انسانی

چگونه مدل مناسب را انتخاب کنیم؟

برای تحلیل تغییرات، ویژگی‌های زیر مهم‌اند:

  • پیروی دقیق از دستور
  • توان تحلیل متن فارسی
  • خروجی ساخت‌یافته
  • دقت در اعداد
  • پشتیبانی از متن بلند
  • هزینه مناسب برای پردازش دسته‌ای
  • ثبات پاسخ
  • قابلیت Vision در صورت نیاز به مقایسه تصویری

ممکن است یک مدل اقتصادی برای دسته‌بندی اولیه کافی باشد و مدل قوی‌تر فقط تغییرات پیچیده را تحلیل کند.

برای مشاهده Model IDها و قیمت به‌روز، صفحه مدل‌های درواره را بررسی کنید.

کاهش هزینه پردازش

برای کاهش هزینه:

  • کل فایل‌ها را به مدل ارسال نکنید.
  • ابتدا Diff قطعی بسازید.
  • فقط بخش‌های تغییریافته را پردازش کنید.
  • سربرگ و پاورقی تکراری را حذف کنید.
  • تغییرات مشابه را دسته‌بندی کنید.
  • نتیجه بخش‌های پردازش‌شده را Cache کنید.
  • برای تغییرات ساده از مدل اقتصادی استفاده کنید.
  • تحلیل مدل قوی‌تر را به تغییرات معنایی پیچیده محدود کنید.
  • خروجی‌های نامعتبر را فقط همان بخش دوباره تولید کنید.

ارزیابی دقت ابزار مقایسه

برای ارزیابی یک سامانه، مجموعه‌ای از اسناد آزمایشی بسازید که تغییرات مشخصی دارند:

  • حذف یک کلمه
  • تغییر عدد
  • تغییر تاریخ
  • اضافه‌شدن «نیست»
  • جابه‌جایی پاراگراف
  • بازنویسی بدون تغییر معنا
  • بازنویسی با تغییر معنا
  • تغییر جدول
  • تغییر تصویر
  • اضافه‌شدن صفحه

سپس معیارهای زیر را اندازه‌گیری کنید:

Recall

چه درصدی از تغییرات واقعی پیدا شدند؟

Recall = تغییرات درست کشف‌شده ÷ کل تغییرات واقعی

Precision

چه درصدی از تغییرات گزارش‌شده واقعاً تغییر بودند؟

Precision = تغییرات درست کشف‌شده ÷ کل تغییرات گزارش‌شده

دقت دسته‌بندی

چه درصدی از تغییرات در گروه درست قرار گرفتند؟

دقت اهمیت

آیا تغییرات مهم با اولویت مناسب مشخص شدند؟

پوشش گزارش

آیا همه تغییرات کشف‌شده در گزارش نهایی حضور دارند؟

فرمول‌ها به‌صورت ساده نوشته شده‌اند تا با ویرایشگر Ghost سازگار باشند.

اشتباهات رایج در مقایسه فایل با هوش مصنوعی

ارسال دو سند بسیار بلند در یک درخواست

این کار احتمال نادیده‌گرفتن جزئیات را افزایش می‌دهد.

استفاده از هوش مصنوعی به‌عنوان تنها موتور Diff

مدل زبانی برای مقایسه قطعی کاراکتر‌به‌کاراکتر طراحی نشده است.

مقایسه فایل اسکن‌شده بدون OCR

اگر متن استخراج نشود، مدل یا ابزار Diff چیزی برای مقایسه ندارد.

نرمال‌نکردن متن فارسی

تفاوت «ي» و «ی» یا فاصله و نیم‌فاصله ممکن است تغییر جعلی ایجاد کند.

حذف شماره صفحه از گزارش

شماره صفحه و بخش برای پیداکردن تغییر در سند اصلی ضروری است.

خلاصه‌سازی بیش‌ازحد

گزارش کوتاه ممکن است تغییرات جزئی اما مهم را حذف کند. خلاصه مدیریتی باید در کنار فهرست کامل ارائه شود.

ترکیب تغییرات قطعی و استنباط مدل

گزارش باید مشخص کند کدام اطلاعات مستقیماً از Diff و کدام توضیحات از تحلیل هوش مصنوعی آمده‌اند.

بی‌توجهی به جدول و تصویر

استخراج متن ساده ممکن است تغییرات بصری و ساختاری را نبیند.

اعتماد کامل به میزان اهمیت پیشنهادی مدل

اهمیت یک تغییر به کاربرد سند بستگی دارد و در موارد حساس باید توسط فرد مسئول بررسی شود.

چک‌لیست مقایسه دقیق دو فایل

پیش از نهایی‌کردن گزارش بررسی کنید:

  • فایل اصلی و نسخه جدید درست انتخاب شده‌اند.
  • ترتیب نسخه قدیمی و جدید اشتباه نیست.
  • از هر دو فایل نسخه پشتیبان وجود دارد.
  • PDFها دارای متن قابل انتخاب هستند.
  • فایل‌های اسکن‌شده OCR شده‌اند.
  • متن فارسی نرمال شده است.
  • شماره صفحه و عنوان بخش حفظ شده‌اند.
  • مقایسه متنی انجام شده است.
  • تغییرات عددی جداگانه استخراج شده‌اند.
  • تغییرات تاریخ و نام بررسی شده‌اند.
  • جدول‌ها جداگانه مقایسه شده‌اند.
  • تغییرات تصویری بررسی شده‌اند.
  • جابه‌جایی پاراگراف‌ها با حذف اشتباه نشده است.
  • تحلیل هوش مصنوعی فقط روی تغییرات واقعی انجام شده است.
  • گزارش کامل در کنار خلاصه مدیریتی نگهداری شده است.
  • موارد مهم به‌صورت انسانی بازبینی شده‌اند.

پرسش‌های متداول

چگونه دو فایل PDF را با هم مقایسه کنیم؟

اگر فایل‌ها متنی هستند، متن آن‌ها را استخراج و با ابزار Diff مقایسه کنید. سپس می‌توانید تغییرات استخراج‌شده را برای توضیح معنایی به هوش مصنوعی بدهید. Adobe Acrobat Pro نیز ابزار Compare Files دارد.

آیا ChatGPT یا مدل هوش مصنوعی می‌تواند دو PDF را مقایسه کند؟

بله، اما برای فایل‌های بلند بهتر است ابتدا تفاوت‌ها با روش قطعی استخراج شوند. مدل برای خلاصه‌سازی و تحلیل معنایی تغییرات مناسب‌تر از مقایسه دقیق تمام کاراکترهاست.

چگونه دو فایل Word را مقایسه کنیم؟

در Microsoft Word وارد Review شوید، Compare را انتخاب کنید و نسخه اصلی و اصلاح‌شده را مشخص کنید. Word نتیجه را در یک سند جدید نمایش می‌دهد.

آیا می‌توان PDF اسکن‌شده را مقایسه کرد؟

بله، اما ابتدا باید با OCR متن هر دو فایل استخراج شود. کیفیت OCR بر دقت نتیجه تأثیر مستقیم دارد.

تفاوت مقایسه متنی و معنایی چیست؟

مقایسه متنی واژه‌های اضافه، حذف یا جایگزین‌شده را پیدا می‌کند. مقایسه معنایی توضیح می‌دهد آیا مفهوم و پیام متن تغییر کرده است.

چرا ابزار مقایسه تغییرات زیادی نشان می‌دهد؟

تفاوت در فونت، فاصله، نیم‌فاصله، شکست خط، شماره صفحه یا خطاهای OCR می‌تواند تغییرات جعلی ایجاد کند. پیش از مقایسه متن را نرمال کنید.

آیا می‌توان جدول‌های دو PDF را مقایسه کرد؟

بله. بهتر است جدول‌ها استخراج و به CSV یا JSON تبدیل شوند، سپس سلول‌های متناظر مقایسه شوند.

چگونه گزارش تغییرات خودکار بسازیم؟

با Python می‌توانید متن را استخراج و Diff تولید کنید. سپس با API درواره تفاوت‌ها را تحلیل، دسته‌بندی و به یک گزارش JSON، HTML یا Excel تبدیل کنید.

آیا درواره فایل PDF را مستقیماً مقایسه می‌کند؟

درواره یک برنامه آماده مقایسه فایل نیست. درواره زیرساخت API مدل‌های هوش مصنوعی است و می‌توان از آن برای ساخت بخش تحلیل معنایی، خلاصه‌سازی و گزارش‌سازی یک ابزار مقایسه سند استفاده کرد.

جمع‌بندی

مقایسه دو فایل PDF یا Word با هوش مصنوعی می‌تواند بررسی نسخه‌های مختلف یک سند را بسیار سریع‌تر کند؛ اما نتیجه دقیق زمانی به دست می‌آید که روش قطعی و تحلیل هوش مصنوعی در کنار هم استفاده شوند.

فرایند پیشنهادی این است:

  1. نوع فایل را تشخیص دهید.
  2. متن را استخراج یا OCR کنید.
  3. متن فارسی را نرمال کنید.
  4. سند را به بخش‌های قابل تطبیق تقسیم کنید.
  5. تفاوت‌ها را با الگوریتم Diff استخراج کنید.
  6. تغییرات عددی، تاریخی و ساختاری را جدا کنید.
  7. فقط تفاوت‌های واقعی را به مدل هوش مصنوعی بدهید.
  8. گزارش جزئیات و خلاصه مدیریتی بسازید.
  9. تغییرات مهم را با فایل اصلی تطبیق دهید.
  10. نتیجه نهایی را بازبینی کنید.

اگر قصد دارید سامانه مقایسه اسناد، دستیار بررسی نسخه‌ها یا ابزار تحلیل PDF اختصاصی بسازید، می‌توانید از API درواره برای دسترسی به مدل‌های مختلف هوش مصنوعی استفاده کنید.

برای مشاهده مدل‌ها، Model IDها و قیمت‌های به‌روز، صفحه مدل‌های درواره را ببینید.

مقالات مرتبط

برای مطالعه شرایط استفاده و محدودیت‌های مسئولیت، صفحه «سلب مسئولیت» را مشاهده کنید.

Read more

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

اتوماسیون هوش مصنوعی با ترکیب گردش‌کارهای خودکار و مدل‌های هوش مصنوعی، پردازش متن، دسته‌بندی، استخراج اطلاعات و تصمیم‌های پیشنهادی را خودکار می‌کند. در این راهنما، معماری و ساخت نمونه عملی آن با API درواره را می‌آموزید.

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce شیوه‌ای جدید برای خرید اینترنتی است که در آن ایجنت هوش مصنوعی می‌تواند نیاز کاربر را بفهمد، محصولات را جست‌وجو و مقایسه کند و فرایند خرید را پیش ببرد. در این راهنما با معماری، UCP، ACP و پیاده‌سازی آن با API درواره آشنا می‌شوید.