انجمن‌های فارسی اوبونتو

جامعه کاربران => معرفی نرم‌افزار => نویسنده: seyal در 30 شهریور 1405، 08:12 ق‌ظ

عنوان: proofreading متون با Languagetool
ارسال شده توسط: seyal در 30 شهریور 1405، 08:12 ق‌ظ
معرفی LanguageTool ابزاری برای تصحیح گرامری بدون اتصال به اینترنت

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

مشکلی که مدل‌های هوش‌مصنوعی داشتند این بود که:
۱- دیگه لحن و قلم خودم رو نداشتم(یعنی فقدان Personal branding)
۲- وابستگی شدیدی ایجاد می‌کرد و مثل این بود که مدام از حل‌المسائل برای حل سوالات استفاده کنی.(البته به مدل استفاده ما از هوش‌مصنوعی هم بستگی داره اما خوب اکثرا ذهن ما پیش‌فرض از این روش استفاده می‌کنه وقتی مرحله به مرحله پیش نریم)

این رویکرد که ابتدا متن رو بنویسم و صرفا جاهایی که حس می‌کنم نامفهوم هست رو با LLM ها بررسی کنم رویکرد بسیار بهتر از این بود که کلا هرچی ورودی دارم مستقیم به AI بدم تا برام تصحیح کنه. بخوام مثال بهتری بزنم این ابزار مثل یک IDE برای زبان‌های برنامه‌نویسی باید برای من عمل می‌کرد که خطاهای منطقی و نوشتاری کدی که می‌نویسیم رو هایلایت می‌کنه به جای اینکه کلا کد رو تغییر بده. بیشتر به یک همراهی نیاز داشتم که مثل یک معلم اشتباهات گرامری و تایپی رو به من گوشزد کنه به جای اینکه کلا متن رو بکوبه و از نو بسازه.

وبسایت‌های آنلاین متعددی مثل Grammarly, Quilbot و … هستند که می‌تونید از اونها استفاده کنید اما مشکلی که داشتند:
۱- باید حتما به اینترنت وصل باشیم
۲- نمی‌خواستم هرچه می‌نویسم رو آنلاین به اشتراک بزارم.
۳- رابط کاربری سنگینی اکثرا داشتند و کار با اونها روان نبود.
۴- به خوبی نمی‌تونستم اونها رو تو برنامه‌های دیگه ادغام کنم.

پس از جستجو برای یافتن یک ابزار محلی، به languagetool رسیدم.
البته این ابزار وبسایت آماده هم مثل موارد بالا که اشاره کردیم داره , برای امتحان کردن و آشنایی با قابلیت‌های languagetool می‌تونید از وبسایت خودش هم استفاده کنید.
لینک گیتهاب  (https://github.com/languagetool-org/languagetool) - لینک وبسایت (https://languagetool.org)


اما برای نصب محلی:

اگر یک نسخه مینیمال کارتون رو راه می‌ندازه می‌تونید از Flathub برنامه Eloquent رو نصب کنید:
لینک فلت‌هاب (https://flathub.org/en/apps/re.sonny.Eloquent)
خودش به صورت built-in این ابزار رو اجرا می‌کنه اما با این روش انعطاف کمی دارید و صرفا به قابلیت‌های همین برنامه متکی هستید و برای ادغام در لیبره‌آفیس و افزونه فایرفاکس نصب languagetool server رو پیشنهاد می‌کنم که برای نصب و راه‌اندازی اون طبق این مراحل عمل می‌کنیم:

مرحله اول: نصب با داکر
برای نصب الگوگیری من از این وبسایت بود اما با مشکل اجرا می‌شد و یک‌سری تغییرات ریزی رو اعمال کردم:
لینک https://fariszr.com/host-language-tool-with-docker/

۱- این پوشه رو ایجاد کنید و وارد بشید:
mkdir languagetool
cd languagetool
این پوشه رو می‌تونید هرجا خواستید تشکیل بدید.

۲- با یک دانلود منیجر (https://abdownloadmanager.com/) این دو تا فایل رو دانلود کنید(اولی حجمش کمی بالاست):
فایل N-gram :
https://languagetool.org/download/ngram-data/ngrams-en-20150817.zipفایل Fasttext :
https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin
۳- دو تا فایلی که از مرحله قبل دانلود کرده بودیم:
فایل N-gram: در همین پوشه unzip کنید
فایل Fasttext: مستقیم در همین پوشه قرار بدید و اسم فایل رو به fasttext-model.bin تغییر بدید
یعنی  باید ساختار پوشه تا به اینجا چنین چیزی بشه:
❯ tree -L 2
.
├── fasttext-model.bin
└── ngrams
    └── en

۳- یک فایل Dockerfile به این صورت تشکیل بدید:
nano Dockerfileو سپس این محتویات رو جاگذاری و ذخیره کنید:
FROM erikvl87/languagetool:latest
USER root
RUN apk add fasttext
USER languagetool

۴- فایل docker compose رو به این صورت ایجاد می‌کنیم:
nano docker-compose.ymlو این محتویات رو قرار می‌دیم:
services:
  languagetool:
    build: .
    container_name: languagetool
    restart: always
    tmpfs:
      - /tmp:exec
    cap_drop:
      - ALL
    cap_add:
      - CAP_SETUID
      - CAP_SETGID
      - CAP_CHOWN
    security_opt:
      - no-new-privileges
    ports:
      - 8010:8010
    environment:
      - langtool_languageModel=/ngrams
      - Java_Xms=512m
      - Java_Xmx=3g
      # Remove these lines:
      # - langtool_fasttextBinary=/usr/bin/fasttext
      # - langtool_fasttextModel=/fasttext-model.bin
    volumes:
      - ./ngrams:/ngrams
      # You can also remove this if you're using the auto-downloaded model:
      # - ./fasttext-model.bin:/fasttext-model.bin

۴- تا این مرحله باید به چنین ساختاری رسیده باشید:
❯ tree -L 2
.
├── docker-compose.yml
├── Dockerfile
├── fasttext-model.bin
└── ngrams
    └── en

اینجا دیگه تقریبا کار اصلی تمومه. این دستور رو اجرا کنید و پس از دانلودشدن موفقیت آمیز ایمیج‌های اولیه، سرویس راه‌اندازی می‌شه.
docker compose up -d --build
۵- می‌تونید با اجرای دستور زیر در ترمینال از درست کردن برنامه اطلاع پیدا کنید:
curl -s -d "language=en-US" -d "text=I will go to there house." http://localhost:8010/v2/check | jqبرای اینکه بتونیم به طور گرافیکی از قابلیت‌های این ابزار استفاده کنیم باشیم سری مرحله بعد رو دنبال کنید.


مرحله دوم: دسترسی به API محلی از طریق افزونه

۱- ابتدا افزونه مرورگر اون رو از این لینک نصب می‌کنیم:
لینک افزونه فایرفاکس (https://addons.mozilla.org/en-US/firefox/addon/languagetool/)

۲- با راست‌کلیک کردن روی آیکون افزونه و انتخاب گزینه manage extension و سپس در صفحه جدید بازشده با کلیک روی سه نقطه و سپس گزینه preference وارد تنظیمات افزونه می‌شیم.
(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=158446.0;attach=58221;image)

۳- به انتهای صفحه برید و  قسمت Advanced settings رو به این صورت تنظیم و ذخیره کنید:
(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=158446.0;attach=58217;image)

۴- حالا اگر تنظیمات پیش‌فرض افزونه رو تغییر نداده باشید الان هرجا اقدام به تایپ کردن کنید(حتی در آدرس‌های local) این افزونه اشتباهات گرامری رو به شما به همراه جایگزین صحیح نشون میده و با یک کلیک اون اشتباه رو درست می‌کنه.

(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=158446.0;attach=58219;image)

البته اگر از قابلیت فعال شدن سراسری خوشتون نمیاد می‌تونید غیرفعال کنید و صرفا طوری تنظیم کنید که وقتی منوی افزونه رو باز کردید از اونجا اشکالات متن رو تشخیص بده. همچنین پس از تصحیح اولیه با مدل لوکال و حفظ بیان خودتون، می‌تونید به خود وبسایت languagetool برید و اونجا به صورت پیشرفته‌تر حتی لحن متن و سایر ویژگی‌ها رو هم با LLM آماده اون تغییر بدید(البته این مورد نیاز به اشتراک داره اما خوب می‌تونید از مدل‌های هوش‌مصنوعی دیگه‌ای که دارید استفاده کنید).
البته اگر اون رو هم خواستید کنترل داشته باشید این پروژه جالبی هست:
https://github.com/pluja/llm-language-tool
عنوان: پاسخ : proofreading متون با Languagetool
ارسال شده توسط: seyal در 31 شهریور 1405، 03:00 ق‌ظ
جریان کاری من برای تولید محتوای متنی، صوتی و ویدیویی

خوب علاوه بر LanguageTool برای داشتن یک جریان کاری بهتر اومدم از گلدن‌دیکت و یک ابزار اصلاح متن با AI هم استفاده کردم

به این روش عمل می‌کنیم:

۱- استفاده از واژه‌نامه:
با استفاده از گلدن‌دیکت و لینک داخل این پست (https://forum.ubuntu-ir.org/index.php?topic=158431.msg1250787#new) که معرفی کرده بودم واژه‌نامه‌های فارسی به انگلیسی مثل آریان‌پور و انگلیسی به انگلیسی مثل Wornnet برای یافتن synonym ها رو نصب می‌کنیم
البته این مرحله بیشتر در اوایل کار همراه هست و هرچه جلوتر می‌ریم وابستگی ما به این مرحله هم کمتر می‌شه.
اینجا سعی می‌کنیم جمله‌ای که تو ذهنمون داریم رو با یافتن واژه‌های مناسب از این واژه‌نامه ها درست کنیم حتی اگر ساختار گرامری کاملا ابتدایی و بعضا غلط داشته باشه چون هدف این هست که ذهن آزادانه بتونه لحن خودش رو بیان کنه.

۲- ابزار تصحیح گرامر:
اینجا می‌ریم سراغ تصحیح گرامر به صورت تعاملی که نقش ابزار LanguageTool که بالا توضیح دادیم مشخص می‌شه.
پس از چندبار غلط‌گیری متن و بازخورد گرفتن خیلی نکات ریز دستمون میاد.

۳- استفاده از LLM ها:
برای راحتی بیشتر در این مرحله، اینجا یک ابزار دیگه رو هم معرفی می‌کنم به اسم Reply Better AI
لینک افزونه فایرفاکس (https://addons.mozilla.org/en-US/firefox/addon/reply-better-ai/)
واقعا ابزار فوق‌العاده‌ای هست. به شما این امکان می‌ده که از مدل‌های هوش‌مصنوعی که دارید(حالا یا local مثل Ollama یا و یا اشتراکی مثل Openrouter) که دارید برای تصحیح متن و پیشنهاد جملات Refine شده استفاده کنید.
می تونید چند پرامپت  آماده تعریف کنید و به صورت گرافیکی آیکون با هایلایت کردن متن نمایش داده می‌شه و این سرعت فرایند و بهینگی تجربه کاربری رو چندبرابر می‌کنه.
با کلیک روی اون عنوانی که تعریف کردید، مدل هوش‌مصنوعی برای شما طبق پرامپت تعریف شده، متن رو بازنویسی می‌کنه و می‌تونید از اون ایده بگیرید و ساختار جمله رو اصلاح کنید.


یک نکته: برای اینکه خروجی با کیفیت داشته باشید باید ورودی باکیفیت هم بگیرید. پس سعی کنید در کنار تقویت این مهارت، از وبسایت‌های انگلیسی مثل Medium یا Substack یا ویدیوهای YouTube و پادکست‌های SoundCloud هم مقالات و پادکست با کیفیت گوش بدید تا ذهنتون با ساختار طبیعی زبان مقصد خو بگیره و بتونه استانداردها رو بهتر تشخیص بده.
ادامه مراحل برای رسیدن به ضبط ویدیو باکیفیت:
۱- تقویت speaking :
برای تقویت speaking ابتدا از همین متن مقاله‌ها و تکست‌هایی که نوشتیم شروع می‌کنیم و سعی می‌کنیم ابتدا این توانایی رو به دست بیاریم که بتونیم اونها رو به ویس تبدیل کنیم. وقتی این مهارت speaking در ما تا حد قابل قبولی تقویت شد می‌تونیم از اون در تولید ویدیو استفاده کنیم.
به این روش عمل می‌کنیم که سعی کنید الان این متنی رو که خودتون نوشتید و تصحیح کردید، بدون روخوانی از روی اون و در حالت فی‌البداهه، به صورت قطعه قطعه به یک ویس‌مسیج یا پادکست تبدیل کنید. اینجا برنامه Audacity خیلی می‌تونه برای تولید صوت‌های با کیفیت و مدیریت و تنظیم overlapping به شما کمک کنه.
این کار علاوه بر تقویت هر دو مهارت باعث می‌شه که مخاطبین بیشتری هم بتونید جذب کنید چون بعضیا بیشتر میل به نسخه صوتی و ارتباط‌گیری با لحن گوینده دارند و پس از انجام چندباره این کار ضبط ویدیو بسیار برای شما آسان‌تر خواهد شد.

۲- ضبط ویدیو:
توصیه‌ام برای ویدیو این هست که یکبار بدون pause کل ویدیو رو ضبط کنید. مثلا شاید حتی بشه سه ساعت. حالا با برنامه kdenlive اون تکه‌های اضافی مثل loading صفحه وب و .. رو حذف کنید به یک ویدیو حدودا ۲۰ دقیقه‌ای می‌رسید.
حالا با الگوگیری از ویس طبیعی ویدیو قبلی که خودتون گفته بودید، و به روش تقویت speaking که مرحله قبل گفتیم با برنامه audacity قطعه به قطعه برای این ۲۰ دقیقه ویس ضبط کنید و جاگذاری کنید.
برای زیباتر کردن ویدیو و افزودن جلوه‌های تصویری دوبعدی ساده هم می‌تونید از نرم‌افزار Natron استفاده کنید و وقتی اون قطعه‌ها رو ساختید(مثل نمایش لوگو روی تصویرزمینه و ...) با kdenlive اونها رو به هم بچسبونید و افکت صوتی بزارید و به یک خروجی حرفه‌ای و زیبا برسید.


شما چه تجربه‌ای دارید؟