این اسکریپت پایتون هفتهای ۱۲ ساعت در وقت یک وکیل صرفهجویی کرد — و اولین مشتری فریلنسر من را برایم پیدا کرد.
شروع یک داستان واقعی
همه چیز با یک پیام ساده و ناامیدانه از طرف یکی از دوستان وکیل من آغاز شد:
«میتوانی بخشهای خاصی از ۵۰ قرارداد PDF را برایم استخراج کنی؟ دستی انجام دادنش واقعاً من را از پا درآورده.»
او در یک مؤسسه حقوقی کوچک کار میکرد. صدها قرارداد اسکنشده داشتند؛ هر قرارداد بین ۸ تا ۱۵ صفحه بود.
آنها فقط یک چیز میخواستند:
– استخراج بند مربوط به **فسخ قرارداد (Termination)**
– گرفتن بخش مربوط به **شرایط پرداخت (Payment Terms)**
– خروجی گرفتن این بخشها در یک فایل خلاصه
کارکنان مؤسسه مجبور بودند تمام این کارها را دستی انجام دهند؛ خواندن PDFها، کپی کردن بندها، یکییکی و خطبهخط.
من به او گفتم: «۲۴ ساعت وقت بده.» و بلافاصله سراغ **پایتون** رفتم.
مرحله اول: خواندن PDFها با PyPDF2
ابتدا با کتابخانه PyPDF2 شروع کردم تا متن قراردادها را استخراج کنم.
“`python
import PyPDF2
import os
def extract_text_from_pdf(path):
with open(path, ‘rb’) as f:
reader = PyPDF2.PdfReader(f)
text = ”
for page in reader.pages:
text += page.extract_text()
return text
“`
به این ترتیب متن خام از دهها قرارداد حقوقی به دست آمد. بعضی تمیز و مرتب بودند، بعضی نه. اما همین هم یک شروع بزرگ بود.
مرحله دوم: پیدا کردن بندها با Regex
نکته مهم در **کاربرد کدنویسی در وکالت**، تشخیص الگوها در قراردادهاست.
معمولاً بندهای قانونی با الگوهای مشخصی میآیند؛ مثل تیترهای بزرگ، شمارهبندیها یا کلیدواژهها.
با **Regex** توانستم این بخشها را استخراج کنم:
“`python
import re
def find_clause(text, keyword):
pattern = rf”({keyword.upper()}.*?)(?=
[A-Z ]+
|\Z)”
match = re.search(pattern, text, re.DOTALL)
return match.group(1).strip() if match else “Not found”
“`
مثال روی یک قرارداد:
– بند فسخ قرارداد → پیدا شد ✅
– شرایط پرداخت → پیدا شد ✅
– محرمانگی → وجود نداشت، اما انتظارش میرفت
این کار به تنهایی برای هر قرارداد حدود ۳۰ تا ۴۵ دقیقه صرفهجویی کرد.
مرحله سوم: تهیه خروجی در اکسل
در ادامه با کتابخانه **openpyxl** یک گزارش ساختاریافته ساختم:
“`python
from openpyxl import Workbook
def write_to_excel(data, filename=”clauses_summary.xlsx”):
wb = Workbook()
ws = wb.active
ws.append([“File”, “Termination”, “Payment Terms”])
for row in data:
ws.append(row)
wb.save(filename)
“`
حالا وکیل میتوانست یک فایل اکسل منظم به مشتری تحویل دهد؛ خلاصهای از ۵۰ قرارداد فقط در چند ثانیه.
—
مرحله چهارم: سادهسازی برای افراد غیر فنی
اسکریپت را طوری بستهبندی کردم که فقط با یک دستور اجرا شود:
“`
python summarize_clauses.py contracts/
“`
برای مشتری غیر فنی هم یک فایل **batch** ساختم تا تنها با کشیدن یک پوشه PDF روی آن، همه چیز انجام شود.
—
مرحله پنجم: نسخه ارتقاء یافته و درآمدزایی
دو روز بعد همان وکیل دوباره تماس گرفت:
«میتوانی امضاها و تاریخهای صفحه آخر قراردادها را هم استخراج کنی؟»
این شد نسخه دوم برنامه. وکیل بدون حتی چانهزنی، ۵۰۰ دلار از طریق PayPal پرداخت کرد.
—
چرا جواب داد؟
این پروژه نه رابط کاربری داشت، نه دیتابیس و نه حتی هوش مصنوعی. فقط:
– PyPDF2
– Regex
– Openpyxl
– یک رابط خط فرمان ساده
اما نتیجه فوقالعاده بود:
کاری که قبلاً یک روز کامل طول میکشید، حالا در ۵ دقیقه انجام میشد.
ارزش مشکلات ساده در وکالت
در حالی که خیلیها دنبال ساخت **چتباتهای پر زرقوبرق هوش مصنوعی** هستند، واقعیت این است که در حوزه وکالت، وکلا و کارمندان حقوقی هنوز درگیر کارهای تکراری و وقتگیرند.
اینجا جایی است که **کدنویسی و اتوماسیون در وکالت** میتواند معجزه کند.
همین پروژه کوچک باعث شد یک وکیل به اولین مشتری فریلنس من تبدیل شود. بعد همکارش مرا استخدام کرد. سپس کارمند دفتریشان من را به یک مؤسسه حقوقی دیگر معرفی کرد.
همه اینها از یک آخر هفته و یک اسکریپت ساده شروع شد.
جهت اطلاع بیشتر با ما در تماس باشید.
09129238714
مهناز اسفندیاری وکیل پایه یک دادگستری و عضو کانون وکلای دادگستری