<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های روشن</title>
        <link>https://virgool.io/feed/@roshan-research</link>
        <description>شرکت راهکار پردازش ژرف</description>
        <language>fa</language>
        <pubDate>2026-06-07 19:46:46</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/2435701/avatar/5mRrDm.jpg?height=120&amp;width=120</url>
            <title>روشن</title>
            <link>https://virgool.io/@roshan-research</link>
        </image>

                    <item>
                <title>معرفی پیکره‌های مهم زبان فارسی - بخش دوم</title>
                <link>https://virgool.io/product-hazm/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%BE%DB%8C%DA%A9%D8%B1%D9%87-%D9%87%D8%A7%DB%8C-%D9%85%D9%87%D9%85-%D8%B2%D8%A8%D8%A7%D9%86-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-khut0llqitex</link>
                <description>در ادامهٔ بخش قبل از سری مقالات معرفی پیکره‌های مهم زبان فارسی، بدون مقدمه، سراغ معرفی پیکره‌های دیگری از زبان فارسی می‌رویم.پیکره بی‌جن‌خانناشر: گروه تحقیقات پایگاه داده دانشگاه تهرانمجوز: رایگان فقط برای اهداف پژوهشی و غیرتجاری با پیش‌شرط ارجاع به اسناد مرتبطصفحه اصلی پیکرهپیکره بی‌جن‌خان مجموعه‌ای از متون فارسی در ۴۳۰۰ دسته‌بندی مختلف شامل ۲ میلیون و ۶۰۰ هزار کلمه است که با ۵۵۰ برچسب POS برچسب‌گذاری شده است.خواندن این پیکره با کتابخانه هضم:from hazm import BijankhanReader
bijankhan = BijankhanReader(bijankhan_file=&#039;bijankhan.txt&#039;)
sents = bijankhan.sents()
print (next(sents))پیکره دگربیانناشر: گروه پردازش زبان طبیعی دانشگاه گیلانپیکرهٔ دگربیان حاوی ۱۵۲۳ نمونه است که به عنوان نمونه‌های دگربیان نشانه‌گذاری شده‌اند. جملات و عبارات دگربیان، بیانی متفاوت از مفهومی یکسان هستند. داده‌های این پیکره از خبرگزاری‌های مختلف جمع‌آورده شده و در سه دسته‌بندی «دگربیان»، «تقریباً دگربیان» و «نامرتبط» ارائه قرار گرفته است. این داده‌ها با استفاده از همکاری جمعی در پیام‌رسان تلگرام نشانه‌گذاری شده است.خواندن این پیکره با کتابخانه هضم:from hazm import DegarbayanReader
degarbayan = DegarbayanReader(root=&#039;degarbayan&#039;)
print(next(degarbayan.pairs()))پیکره متنی زبان فارسیناشر: پژوهشکده پردازش هوشمند علائمپیکرهٔ متنی زبان فارسی مجموعه‌ای از متون نوشتاری و گفتاری رسمی زبان فارسی است که از منابع واقعی همچون روزنامه‌ها، سایت‌ها و مستنداتِ از قبل تایپ‌شده، جمع‌آوری شده، تصحیح گردیده و برچسب خورده است. حجم این دادگان حدوداً ۱۰۰ میلیون کلمه است و از منابع مختلف تهیه گردیده و دارای تنوع بسیار زیادی است. ۱۰ میلیون کلمه از این پیکره با استفاده از ۸۸۲ برچسب نحوی-معنایی به صورت دستی توسط دانشجویان رشتهٔ زبان‌شناسی برچسب‌دهی شده‌اند و هر پرونده بر حسب موضوع و منبع آن طبقه‌بندی شده است.خواندن این پیکره با کتابخانه هضم:from hazm import PeykareReader
peykare = PeykareReader(root=&#039;peykare&#039;)
print(next(peykare.sents()))پیکره وابستگی نحوی زبان فارسیناشر: دبیرخانه شورای عالی اطلاع‌رسانیمجوز:  CC-BY-4.0صفحه اصلی پیکرهنسخه قدیمینسخه جدید با برچسب‌های جهانیاین پیکره حاوی ۳۰ هزار جمله برچسب‌خورده است که اطلاعات نحوی  و ساخت‌واژی را بر مبنای دستور وابستگی تهیه کرده است. جملات این پیکره از منابع مختلفی از متون فارسیِ معاصر گردآوری شده است. تمام جملات دارای برچسب روابط نحوی (بر مبنای دستور وابستگی) مثل فاعل، مفعول، مسند و همچنین برچسب اطلاعات ساخت‌واژی مثل فعل و اسم و قید و ... است. جملات این پیکره یک‌به‌یک توسط تیمی از زبان‌شناسان مجرب برچسب‌گذاری شده است. اخیراً نسخه یونیورسالِ این پیکره نیز تهیه شده است که از طریق لینک بالا در دسترس است. با کمک کتابخانه هضم به راحتی می‌توانید این پیکره را بخوانید. در نسخه جدید هضم، امکان خواندن نسخه یونیورسال این پیکره نیز اضافه شده است.خواندن این پیکره با کتابخانه هضم:from hazm import DadeganReader
from hazm import UniversalDadeganReader

# Reading old conll
dadegan = DadeganReader(conll_file=&#039;dadegan.conll&#039;)
print(next(dadegan.sents()))

#Reading new universal conllu (universal tags)
universal_dadegan = UniversalDadeganReader(conll_file=&#039;dadegan.conllu&#039;) print(next(universal_dadegan.sents()))پیکره تری‌بانکناشر: غیومی و همکارانمجوز: LGPLاین پیکره مجموعه‌ای از ۱۰۰۰ جملهٔ برچسب‌خورده با اطلاعات نحوی است و در آن روابط بین واژه‌های هر سازه به طور واضح و صریح مشخص شده است.خواندن این پیکره با کتابخانه هضم:from hazm import TreebankReader
 treebank = TreebankReader(root=&#039;treebank&#039;)
print(next(treebank.sents()))پیکره فرهنگ ظرفیت نحوی افعال فارسیناشر: مرکز تحقیقات کامپیوتری علوم اسلامی (نور)مجوز: رایگان برای اهداف پژوهشی و غیرتجاری با پیش‌شرط ارجاع به اسناد مرتبطصفحه اصلی پیکرهپیکره فرهنگ ظرفیت نحوی افعال فارسی، مجموعه‌ای از اطلاعات ظرفیت نحوی بیش از ۴۵۰۰ فعل در زبان فارسی است. در این پیکره، متمم‌های اجباری و اختیاری انواع فعل‌های ساده، مرکب، پیشوندی و عبارات فعلی مشخص شده است. فراوانی فعل‌های مرکب در زبان فارسی، نیاز به فرهنگ ظرفیت فعل را در این زبان دوچندان می‌نماید. چرا که شناخت فعل‌های مرکب چه از لحاظ انسانی و چه از لحاظ پردازشی کاری دشوار‌تر از شناخت فعل‌های ساده است و به همین خاطر فراهم آوردن فهرستی از فعل‌های زبان (که شامل فعل‌های مرکب نیز می‌شود) به همراه ساخت‌های ظرفیتی افعال، کمکی شایان برای کارهای پردازشی است. از سوی دیگر، بر اساس نظریه وابستگی، ساخت بنیادین جمله را می‌توان از روی ساخت ظرفیتی فعل جمله به دست آورد و به همین دلیل بر اهمیت دانستن ساخت‌های ظرفیتی فعل در متن‌های زبانی افزوده می‌شود.خواندن این پیکره با کتابخانه هضم:from hazm import VerbValencyReader
verbvalency= VerbValencyReader(valency_file=&#039;valency.txt&#039;)
print(next(verbvalency.verbs()))پیکره قرآنناشر: quran.com teamمجوز:  GNUصفحه اصلی پیکرهاین پیکره شامل دستور، نحو و صرف‌شناسیِ تک‌تک کلمات عربی قرآن کریم است.خواندن این پیکره با کتابخانه هضم:from hazm import QuranReader
quran=QuranReader(quran_file=&#039;quranic_corpus_morphology.txt&#039;)
words = quran.words()
print(next(words))پیکره فااسپل (داده ارزیابی خطایاب‌های املایی)ناشر: بهرنگ قاسمی‌زادهمجوز: CC-BY-4.0صفحه اصلی پیکرهاین پیکره مشتمل بر خطاهای املایی در دو گروه داده‌ای است. گروه اول ۵۵۰۰ خطای رایج املایی است و گروه دوم ۸۰۰ خطای معمول در سیستم‌های OCR است.خواندن این پیکره با کتابخانه هضم:from hazm import FaSpellReader
faspell = FaSpellReader(corpus_folder=&#039;faspell&#039;)
print(next(faspell.main_entries()))
print(next(faspell.ocr_entries()))پیکره آرمانناشر: هانیه پستچیصفحه اصلی پیکرهپیکره آرمان یک پیکره برای موجودیت‌های نامدار است که شامل ۲۵۰,۰۱۵ توکنِ برچسب‌خورده در قالب ۷۶۸۲ جمله با فرمت IOB است. این کار به صورت دستی انجام شده است. توکن‌ها در ۶ دسته‌بندی شخص، سازمان، مکان، امکانات، تولیدات، و رویداد، برچسب‌گذاری شده‌اند.خواندن این پیکره با کتابخانه هضم:from hazm import ArmanReader
arman = ArmanReader(corpus_folder=&#039;arman&#039;, subset=&#039;test&#039;)
print(next(arman.sents())) </description>
                <category>روشن</category>
                <author>روشن</author>
                <pubDate>Sat, 04 Nov 2023 11:26:23 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی پیکره‌های مهم زبان فارسی - بخش اول</title>
                <link>https://virgool.io/product-hazm/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%BE%DB%8C%DA%A9%D8%B1%D9%87-%D9%87%D8%A7%DB%8C-%D9%85%D9%87%D9%85-%D8%B2%D8%A8%D8%A7%D9%86-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%DB%B1-dfodoe2ubvt2</link>
                <description>پیکره، مجموعه‌ای از داده‌های متنی یا گفتاری است که به شکل هدفمند و قانونمند در قالب‌های مختلف و با اهداف گوناگون به روش دستی، ماشینی یا با ترکیبی از روش‌های دستی و ماشینی توسط افراد و یا نهادهای پژوهشی جمع‌آوری و ساماندهی می‌شود.پیکره‌های زبانی کاربردهای زیادی در پردازش زبان طبیعی دارد. این داده‌ها تغذیه ورودی برای آموزش مدل‌های زبانی برای توصیف و تحلیل زبان طبیعی است، به عنوان مثال می‌توان با درک الگوهای نحوی و معنایی متن، مفاهیم پنهان در متن را فهمید. پیکره‌ها همچنین کاربرد وسیعی در توسعه ابزارهایی مانند سیستم‌های ترجمه ماشینی، سیستم‌های تشخیص گفتار و سامانه‌های پرسش‌وپاسخ دارند.پیکره‌ها می‌توانند در انواع و اندازه‌های مختلف از چند هزار کلمه تا میلیاردها کلمه، از پیکره‌های متنی خام تا پیکره‌های برچسب‌گذاری‌شده، از پیکره‌های همه‌منظوره تا پیکره‌های خاص‌منظوره و ... در دسترس باشند.تهیه پیکره‌های زبانی می‌تواند کار چالش‌برانگیزی باشد. ابزارهای NLP و مدل‌های زبانی برای رسیدن به دقت‌های بالاتر به داده‌های بیشتر نیاز دارند و افزایش اندازه پیکره می‌تواند ذخیره‌سازی و پردازش و دسترسی به آن را دشوار کند. مشکل بعدی تنوع داده‌ها و پروسه زمان‌بر استخراج داده‌ها از منابع مختلف (سایت‌ها، کتاب‌ها، مقالات، شبکه‌های اجتماعی و ...) است که غالباً در انواع سبک‌های نوشتاری (خصوصاً در متن‌های محاوره‌ای) و با انواع ادبیات و خطاهای املایی و دستوری همراه هستند. نرمال‌سازی این داده‌ها می‌تواند چالش‌برانگیز باشد.هدف از این سلسله‌نوشتار، معرفی اجمالی پیکره‌هاست. مسؤلیت استفاده از این پیکره‌ها بر عهده مصرف‌کننده است. لطفاً قبل از استفاده از یک پیکره، مجوز استفاده از آن را به دقت بخوانید. اطلاعات برخی از پیکره‌ها از جمله لینک صفحه و مجوز استفاده از آن به خاطر دردسترس‌نبودن، مشخص‌نبودن یا واضح‌نبودن ذکر نشده است. برای طولانی‌نشدن نوشته، تصویر پیش‌نمایش بخشی از پیکره به صورت نمونه آمده است. لازم به ذکر است که برای شرح برخی از پیکره‌ها از توضیحات سایت پیکره‌گان استفاده شده است.پیکره ناب ناشر: آزمایشگاه پردازش زبان طبیعی و گفتار دانشگاه صنعتی شریفمجوز: MITصفحه اصلی پیکرهپیکره ناب، در کامل‌ترین نسخه، ۱۳۰ گیگابایت متن تمیزشده فارسی است که بالغ بر ۲۵۰ میلیون پاراگراف و ۱۵ میلیارد کلمه را در خود جای داده است.پیکره ناب، خود متشکل از چند پیکره عظیم دیگر است:پیکره PersianNLP: شامل ۷۰ گیگابایت متن رسمی فارسیپیکره OSCAR-fa: شامل مجموعه‌ای از متون رسمی و محاوره‌ای فارسیپیکره AGP: حدود ۲۵ گیگابایت متن رسمی و محاوره‌ای جمع‌آوری شده توسط عصر گویش پردازپیکره LSCP: شامل ۵ گیگابایت متن محاوره‌ایپیکره Telegram: حدود ۱ گیگابایت متن محاوره‌ای جمع‌آوری شده از تلگرامخواندن این پیکره با کتابخانه هضم:from hazm import NaabReader
naab = NaabReader(corpus_ folder=&amp;quotnaab&amp;quot , subset=&amp;quottest&amp;quot)
sentences = naab.sents()
print(next(sentences))پیکره ویکی‌پدیاناشر: ویکی‌پدیا مجوز: غالباً GNU (جزئیات بیشتر)صفحه اصلی پیکرهویکی‌پدیا به صورت دوره‌ای تمام اطلاعات این دانش‌نامه را به صورت رایگان در اختیار عموم قرار می‌دهد. این اطلاعات برای زبان‌های مختلف (انگلیسی، فارسی و ...) و در دسته‌بندی‌های مختلف (عناوین، متن، همراه با تصویر و ...) و در قالب‌های مختلف (xml, sql, ...)  در دسترس است. به عنوان مثال فایل آخرین نسخه فارسی را می‌توانید از این صفحه دانلود کنید.خواندن این پیکره با کتابخانه هضم:from hazm import WikipediaReader
wikipedia = WikipediaReader(&amp;quotfawiki-latest-pages-articles.xml.bZ2&amp;quot)
texts = wikipedia.texts( )
print(next(texts))پیکره میراث تکستناشر: شرکت تحلیل افزار مبتکر میراثمجوز: MITصفحه اصلی پیکرهپیکره میراث‌تکست، مجموعه‌ای از ۲.۸ میلیون خبر از ۲۵۰ سایت خبری است که در مجموع ۱.۴ میلیارد کلمه را در خود جای داده است. برای هر خبر، اطلاعاتی چون عنوان، متن و آدرس URL خبر در دسترس است.خواندن این پیکره با کتابخانه هضم:from hazm import MirasTextReader
mirastext = MirasTextReader(filename=&amp;quotmirastext.txt&amp;quot)
texts = mirastext.texts()
print(next(texts))پیکره میزانناشر: دبیرخانهٔ شورای عالی اطلاع‌رسانی مجوز: CC-BY-4.0صفحه اصلی پیکرهپیکره میزان یک پیکره موازی حاوی بیش از ۱ میلیون جمله انگلیسی (غالباً در حوزه ادبیات کلاسیک) و ترجمه فارسی آن‌هاست.خواندن این پیکره با کتابخانه هضم:from hazm import MizanReader
mizan = MizanReader(corpus_folder=&amp;quotmizan&amp;quot)
en_sents = mizan.english_sentences() 
print(next(en_sents))پیکره پرسیکاناشر: اقبال‌زاده و همکارانمجوز: CC-BY-2.0صفحه اصلی پیکرهپیکرهٔ پرسیکا حاوی خبرهای برگرفته از خبرگزاری ایسنا در یازده دستهٔ ورزشی، اقتصادی، فرهنگی، مذهبی، تاریخی، سیاسی، علمی، اجتماعی، آموزشی، حقوق قضایی و بهداشت است.خواندن این پیکره با کتابخانه هضم:from hazm import PersicaReader
persica = PersicaReader(&amp;quotpersica.csv&amp;quot)
print(next(persica.texts())پیکره تی‌نیوزپیکره تی‌نیوز مجموعه‌ای از اخبار فارسی است.خواندن این پیکره با کتابخانه هضم:from hazm import TNewsReader
tnews = TNewsReader(root=&#039;tnews&#039;)
print(next(tnews.texts()))پیکره همشهریناشر: گروه تحقیقات پایگاه داده دانشگاه تهرانمجوز:  رایگان فقط برای اهداف پژوهشی و غیرتجاری با پیش‌شرط ارجاع به اسناد مرتبطصفحه اصلی پیکرهپیکره همشهری حاوی ۳۱۸ هزار خبر از روزنامه همشهری در فاصله سال‌های ۱۳۷۵ تا ۱۳۸۶ است که هر خبر با برچسب‌های Cat در رده‌بندی‌های موضوعی مختلف قرار گرفته است.خواندن این پیکره با کتابخانه هضم:from hazm import HamshahriReader
hamshahri = HamshahriReader(root=&amp;quothamshahri&amp;quot)
next(hamshahri.texts())پیکره سنتی‌پرسناشر: گروه پردازش زبان طبیعی دانشگاه گیلانمجوز: ظاهراً رایگان (مجوز استفاده به صورت روشن بیان نشده)صفحه اصلی پیکرهپیکره سِنتی‌پرس شامل مجموعه‌ای از متون فارسی با برچسب‌های معنایی است. این متن‌ها غالباً از وبسایت دیجی‌کالا استخراج شده و پس از دسته‌بندی در قالب اسناد و جملات، توسط گروهی از دانشجویان مهندسی کامپیوتر دانشگاه گیلان به صورت دستی برچسب‌گذاری شده است.خواندن این پیکره با کتابخانه هضم:from hazm import SentiPersReader
sentipers = SentiPersReader(root=&amp;quotsentipers&amp;quot)
print(next(sentipers.comments()))‌منتظر بخش بعدی این مقاله باشید.</description>
                <category>روشن</category>
                <author>روشن</author>
                <pubDate>Sun, 01 Oct 2023 23:54:03 +0330</pubDate>
            </item>
                    <item>
                <title>چالش‌های نرمال‌سازی نوشته‌های فارسی</title>
                <link>https://virgool.io/product-hazm/%DA%AF%D9%88%D8%B4%D9%87-%D8%A7%DB%8C-%D8%A7%D8%B2-%DA%86%D8%A7%D9%84%D8%B4-%D9%87%D8%A7%DB%8C-%D9%81%D9%86%DB%8C-%D9%87%D8%B6%D9%85-%D9%86%D8%B1%D9%85%D8%A7%D9%84-%D8%B3%D8%A7%D8%B2%DB%8C-%D9%85%D8%AA%D9%86-qyu37ykvu8vq</link>
                <description>پردازش زبان طبیعی، مقوله جذاب و درعین‌حال پیچیده‌ای است که البته ماهیت پیوسته حروف فارسی، این پیچیدگی و جذابیت را دوچندان نیز می‌کند! در این نوشته قصد داریم بخشی از چالش‌های فنی تیم هضم را که در روند بهبود نرمال‌سازی متون با آن برخورد داشته‌ایم با شما در میان بگذاریم. مخاطب این نوشته ترجیحاً برنامه‌نویس علاقه‌مند به پردازش زبان طبیعی است؛ بااین‌حال زبانِ ساده متن، استفاده از آن را برای مخاطب عام نیز ممکن می‌کند. «نرمال‌سازی متن» که گاهی از آن با عنوان «یکسان‌سازی متن»، «تمیزکردن متن» یا «پاکسازی متن» یاد می‌کنند اولین مرحله در پردازش زبان طبیعی است. هدف از نرمال‌سازی متن این است که متن ورودی برای استفاده در گام‌های بعدی به شکلی استاندارد و نرمال تبدیل شود. متن ورودی به دلایل متعددی می‌تواند اشکال متنوعی داشته باشد. گاهی این موضوع به‌خاطر پیش‌فرض‌های غلطِ برخی از سیستم‌عامل‌ها و دستگاه‌ها است؛ مثلاً به‌جای اینکه صفحه‌کلیدِ پیش‌فرض (به طور دقیق‌تر keyboard Layout) فارسی باشد، عربی است، یا فارسی است ولی فارسیِ استاندارد نیست. گاهی نیز کاربر تعمداً (؟) شڪل نوشــــــــــتاري غیرمرسومے را در پیش میگیردددددد. به‌هرروی متن ورودی صرفنظر از چرایی آن می‌تواند حالات مختلفی داشته باشد. این تنوع و ناهمگنی باید از میان برداشته شود یا دست‌کم کاهش یابد تا متن برای مراحل بعدی پردازش آماده شود.در ادامه، برخی از چالش‌هایی بهینه‌سازی نرمالایزر در نسخه جدید هضم را بیان می‌کنیم. در هر بخش، تصویری از تغییرات متن بعد از اعمال الگوریتم آمده است.  تهیه مجموعه‌ای از متن‌های غیراستاندارداولین کار تهیه دیتاستی از متون غیرنرمال، با تنوع و حجم مناسب بود تا بعد از اعمال هر تغییر در نرمالایزر، از میزان موفقیت و اثرات جانبی آن مطلع شویم. مشکل این بود که بیشترِ دیتاست‌ها از قبل تا حدِ مطلوبی نرمال‌سازی شده‌اند. بنابراین تصمیم گرفتیم از دیتاستی از چت‌های کاربران در گروه‌های تلگرامی استفاده کنیم که معمولاً تنوع نوشتاری خوبی دارد.شنبهها  &gt; شنبه‌هااولین مشکل، چسبیدن دو حرف «ه» در کلماتی مثل «شنبهها» بود که خوشبختانه با یک الگوی ساده ریجکس حل شد. (بین 1\ و 2\، کاراکتر نیم‌فاصله با کد u200c\ هست که در تصویر دیده نمی‌شود).وجود نیم‌فاصله قبل یا بعد از فاصلهگاهی در برخی از نوشته‌ها، بعد از فاصله، یک کاراکتر نیم‌فاصله وجود دارد! این مشکل نیز با یک الگوی ساده ریجکس حل شد.۱۰تا۱۵کیلومتر &gt; ۱۰ تا ۱۵ کیلومترمشکل بعدی، نرمال‌سازی ترکیب اعداد و حروف بود. راه‌حل اول این بود که با یک ریجکس ساده، هرجایی عدد دیدیم، دو طرفش فاصله بگذاریم؛ ولی این روش همیشه کارساز نیست؛ مثلاً در 5x+2 کسی انتظارِ وجود فاصله بین ۵ و x را ندارد! بنابراین گفتیم فقط جایی فاصله بگذارد که قبل یا بعد از عدد، یک حرف فارسی وجود دارد؛ مثلاً ۱۰تا۱۵ کیلومتر.میخواهم &gt; می‌خواهممورد بعدی، نیم‌جداکردن پیشوند «می» در افعال است. مسلماً این کار را فقط باید برای افعال انجام داد؛ چون در کلماتی مثل «میهن»، «میراث»، نباید این اتفاق بیفتد. بنابراین به این راه‌حل رسیدیم که ابتدا در لیست صورت‌های صرفی افعال جستجو کند و افعال دارای «می» را پیدا کند. حالا یک دیکشنری از شکل نیم‌جدا و سرهمِ «می» در این افعال تهیه کند و درنهایت با کمک این دیکشنری، اقدام به جایگزینی شکل صحیح کند.نرمالسازے ڪاراڪترهاي خاص یونیکد و حذف اعراب و اموجی‌هاتنوع صفحه‌کلیدها و تعدد کاراکترهای یونیکد آنقدر زیاد است که این مشکل را با یک نگاشت ساده نمی‌توان حل کرد؛ مثلاً برای همین حرف «ی»، در رنج کاراکترهای یونیکد عربی، چندین «ی» وجود دارد. تنها کار امنی که توانستیم بکنیم بررسی و استخراج تک‌تک کاراکترهای عربی در فهرست کاراکترهای یونیکد و اضافه‌کردن شکل استاندارد آن به عنوان نسخه جایگزین بود. برای حذف اموجی‌ها و اعراب هم تقریباً باید تمام ۱۴۰ هزار و اندی کاراکترهای یونیکد بررسی می‌شد که در حال حاضر تا حدی این کار جلو رفته است. این کار از این جهت ضروری است که احتمال استفاده از هر یک از کاراکترها در متن وجود دارد.سلامممم &gt; سلامشاید حذف کاراکترهای تکراری، سخت‌ترین چالشی بود که با آن روبرو شدیم. مسلماً وجود کلماتی مثل «ببر» و «ضرر» اجازه نمی‌دهد بی‌مهابا دست به حذف تمام تکرارها بزنیم؛ ولی یک کار را با خیال راحت می‌توانستیم بکنیم: اینکه بیشتر از دو تکرار را به دو تکرار کاهش دهیم (سلامممم ⮜ سلامم)؛ چون در فارسی کلماتی با سه تکرارِ حروف و بیشتر نداریم.چالش اصلی، تصمیم‌گیری درباره کلمات دارای دو تکرار بود. به این فکر افتادیم که ابتدا هر دو شکل کلمه یعنی هم با دوبار تکرار و هم بدون تکرار را در لیست کلمات جستجو کند؛ اگر هیچ یک از این دو شکل وجود نداشت یا هردو وجود داشت دست نزند؛ ولی اگر فقط یکی از حالت‌ها وجود داشت همان را برگرداند. مثلاً با جستجوی کلمه «سلامم» در لیست کلمات، فقط شکل بدون تکرار «سلام» وجود دارد پس این کلمه جایگزین شود؛ ولی در کلمه «ببر» چون هم «ببر» و هم «بر» در لیست کلمات وجود دارد دخالت نکند.اما این راهبرد هم جواب نداد:در جمله «ببرر یک حیوان است.»، کلمه «ببرر» در لیست کلمات نیست؛ ولی «بر» هست؛ بنابراین جایگزینی صورت می‌گیرد و خروجی می‌شود «بر یک حیوان است» که درست نیست!دامنه پیچیدگی‌های این مسئله محدود به این موضوع نیست. حتی برای کلمه «سلامم» که فکر می‌کردیم با روش قبلی حل می‌شود نمی‌توان همه‌جا اقدام به جایگزینی کرد؛ مثلاً «سلامم را برسان»، یا «ببینید لطفاً».بنابراین این راه‌حل را به خاطر اثرات جانبی ناخواسته، کنار گذاشتیم و ترجیح دادیم فعلاً همان تقلیل تکرارها به دو تکرار را لحاظ کنیم.این تنها بخشی از چالش‌هایی بود که فقط در بخشی از هضم با آن روبرو شدیم. در سایر بخش‌های هضم نیز مانند ریشه‌یابی، جداسازی جملات و کلمات، تحلیل نحوی و غیره چالش‌های از همین جنس و شاید حتی پیچیده‌تر وجود دارد که ان‌شاءالله در فرصتی دیگر درباره آن‌ها نیز صحبت خواهیم کرد.اگر شما نیز ایده و پیشنهادی دارید ذیل همین پست بنویسید. گاهی مسائل پیچیده، راه‌حل‌های ساده‌ای دارند! همچنین اگر دوست دارید در توسعه این پروژه سهیم باشید.گیتهاب هضم</description>
                <category>روشن</category>
                <author>روشن</author>
                <pubDate>Fri, 21 Jul 2023 16:24:08 +0330</pubDate>
            </item>
                    <item>
                <title>و بالاخره بعد از مدت‌ها، نسخه جدید هضم</title>
                <link>https://virgool.io/product-hazm/%D9%88-%D8%A8%D8%A7%D9%84%D8%A7%D8%AE%D8%B1%D9%87-%D8%A8%D8%B9%D8%AF-%D8%A7%D8%B2-%D9%85%D8%AF%D8%AA-%D9%87%D8%A7-%D9%86%D8%B3%D8%AE%D9%87-%D8%AC%D8%AF%DB%8C%D8%AF-%D9%87%D8%B6%D9%85-wbm59vy0jqxh</link>
                <description>هضم، کتابخانه‌ای برای پردازش متون فارسی است که با زبان پایتون نوشته شده است. این کتابخانه در اواخر سال ۱۳۹۲ به صورت متن‌باز در گیت‌هاب منتشر شد. ما در شرکت روشن بسیار خرسندیم که برنامه‌نویسان و شرکت‌های تجاری متنوعی از این کتابخانه استفاده می‌کنند.از زمان عرضه این محصول تا کنون بازخوردهای زیادی از کاربران دریافت کرده‌ایم و حالا قصد داریم توسعه این محصول را ادامه دهیم. در ادامه با تغییرات مهم آخرین نسخه هضم آشنا می‌شویم.سازگاری با ویندوزهضم تا پیش از نسخه ۰.۹، برای برخی از ماژول‌ها مانند POSTagger‍ وابسته به کتابخانه دیگری به اسم wapiti بود که متأسفانه با ویندوز سازگار نبود و این موضوع کاربران ویندوز را مجبور به استفاده از WSL یا ماشین مجازی می‌کرد. خوشبختانه در نسخه ۰.۹ با کمک کتابخانه python-crfsuite این مشکل برطرف شد و از این پس کاربران می‌توانند از هضم به صورت مستقیم روی ویندوز استفاده کنند.برای سازگاری با کتابخانه جدید، بایستی تغییراتی در SequenceTagger, IOBTagger, Chunker داده می‌شد و مدل‌های جدیدی آموزش داده می‌شد. این کار انجام شد و نهایتاً بعد از آموزش ده‌ها مدل و مقایسه دقت این مدل‌ها، دقیق‌ترین مدل در اختیار شما قرار گرفته است.اضافه‌شدن مستنداتدر نسخه‌های قبلی هضم، مستندات خوبی وجود نداشت و این یک فقدان جدی بود. در نسخه ۰.۹ سعی کردیم بسیاری از ماژول‌ها، کلاس‌ها و توابع را به همراه مثال‌هایی از شیوه استفاده از آن‌ها مستندسازی کنیم.همچنین بخشی از مستندات را به کاربردهای هضم اختصاص داده‌ایم که به صورت عملی و مرحله به مرحله به شما نشان می‌دهد چگونه از هضم برای کاربردهای مختلف استفاده کنید.در حال حاضر در بخش کاربردها، تنها یک مثال از شیوه استخراج کلمات کلیدی با روش EmbedRank آماده است. امیدواریم در آینده بتوانیم کاربردهای بیشتری از هضم را پوشش دهیم. شما نیز می‌توانید در توسعه مستندات مشارکت کنید.ارتقاء به پایتون ۳ و بازنویسی کدهاتصمیم گرفتیم به دلیل منسوخ شدن پایتون ۲، پشتیبانی از این نسخه را متوقف کنیم و حداقل نسخه مورد نیاز برای نصب هضم را پایتون ۳.۸ قرار دهیم.اکنون بخش زیادی از کدهای هضم با کمک آخرین قابلیت‌های پایتون ۳.۸ بازنویسی شده است که به معنی سادگی و خوانایی بیشتر کدهاست. این کار علاوه بر تسهیل استفاده از ابزارهای جدید در توسعه بهتر پروژه، فرایند مشارکت در توسعه پروژه را آسان‌تر می‌کند و ناسازگاری هضم با کتابخانه‌های دیگر را کاهش می‌دهد.استفاده از برچسب‌های جهانیهضم در نسخه ۰.۹ از برچسب‌های جهانی استفاده می‌کند. برچسب‌های جهانی یا یونیورسال با هدف هماهنگی نشانه‌گذاری‌ها در زبان‌های مختلف معرفی شده است و بسیاری از کتابخانه‌های معروف مثل NLTK در نسخه‌های جدید از این برچسب‌ها پشتیبانی می‌کنند.برچسب‌های یونیورسال کاربردهای زیادی برای هماهنگی وابستگی‌های نحوی در متون چند زبانه دارند. این برچسب‌ها، یادگیری و ارزیابی‌های متقابل زبانی را تسهیل می‌کند، کاربردهایی در ترجمه ماشینی دارد و مزیت دیگر این برچسب‌ها، کاهش پیچیدگی برچسب‌گذاری است.در نسخه جدید POSTagger علاوه بر برچسب‌‌گذاری یونیورسال، کسره اضافه نیز با تگ EZ و با دقت ۹۸.۳% مشخص می‌شود. کسره اضافه یا به‌طور دقیق‌تر نشانه اضافه در کلماتی مثل «کتابِ من» با اینکه جایگاهی صوری در صورت‌بندی زبانی ندارد اما نقش مهمی در درک معنای جمله دارد.افزایش دقت تحلیل صرفی و تجزیه سطحیاستفاده از مدل جدید CRF باعث افزایش دقت مدل‌های تحلیل صرفی و تجزیه سطحی شد. همچنین استفاده از برچسب‌گذاری یونیورسال، تحلیل صرفی را آسان‌تر کرد. به این ترتیب، دقت تحلیل صرفی از ۹۷.۱٪ به ۹۸.۸٪ و دقت تجزیه سطحی از ۸۹.۹٪ به ۹۳.۴٪ رسید.بازنمایی واژه‌‌ها و جملاتبا استفاده از بازنمایی‌های از پیش آموزش دیده روی پیکره‌های عظیم متنی، می‌توان شبکه‌های عمیق را بهتر آموزش داد و این بازنمایی‌ها می‌تواند دقت تحلیل‌های متنوع زبانی را افزایش دهد. ماژول جدید امبدینگ که دربردارنده دو کلاس WordEmbedding و SentEmbedding است با همین هدف به هضم اضافه شده است.ما امبدینگ‌های زیادی را با کتابخانه‌های جنسیم و فست‌تکست آموزش دادیم و از بین آن‌ها بهترین مدل را در اختیار شما قرار داده‌ایم. این مدل‌ها را می‌توانید از صفحه معرفی هضم در گیت‌هاب دریافت کنید.بهبود نرمال‌سازی نوشته‌هادر این نسخه از هضم، نرمال‌سازی نوشته‌ها با دقت بیشتری انجام می‌گیرد و مشکلات نوشتاری بیشتری پوشش داده شده است. در ادامه تغییرات نسخه جدید را مرور می‌کنیم:اولین تغییر، افزوده شدن تعداد کاراکترهای غیراستاندارد از ۴ کاراکتر به ۴۰۰ کاراکتر است. این یعنی هضم اکنون می‌تواند ۴۰۰ کاراکتر غیراستاندارد را اصلاح کند.دومین تغییر، اضافه‌شدن الگوهای ریجکس جدیدی است که می‌تواند «ه» چسبان را در کلماتی مثل «شنبهها» به «شنبه‌ها» تبدیل کند، نیم‌فاصله‌های غیرضروری را در ابتدا و انتهای کلمات یا بعد و قبل از فاصله حذف کند یا ترکیب حروف و اعداد را در عباراتی مثل «۱۰تا۱۵کیلومتر»  اصلاح کند و به شکل صحیح «۱۰ تا ۱۵ کیلومتر» تبدیل کند.سومین تغییر، اضافه‌شدن پارامترهای جدیدی به Normalizer برای پوشش‌دهی حالت‌های بیشتری برای نرمال‌سازی است. پارامتر seprate_mi، پیشوندهای «می» و «نمی» را در کلماتی مثل «میخوانم» و «نمیخوانم» به شکل صحیح نیم‌جدا یعنی «می‌خوانم» و «نمی‌خوانم» اصلاح می‌کند. پارامتر unicodes_replacement کاراکترهای خاص یونیکد مثل ﷽، ﷼، ﷴ را به شکل مرسوم تایپی تبدیل می‌کند. پارامتر remove_specials_chars کاراکترهایی مثل ﷺ ۝۞ را که معمولاً ارزشی در پردازش متن ندارند حذف می‌کند. پارامتر decrease_repeated_chars تلاش می‌کند تکرارهای غیرضروی حروف را در کلماتی مثل «سلاممممممم» کاهش دهد.آخرین تغییر، حذف پارامتر غیرضروری token_based و جایگزین‌کردن پارامتر‌های remove_extra_spaces, affix_spacing و punctuation_spacing با تک پارامتر correct_spacing برای سهولت استفاده از Normalizer است.اصلاح مشکلات گزارش‌شدهدر طول این سال‌ها، ایشوها و پول‌ریکوئست‌های زیادی تلنبار شده بود و متأسفانه فرصت کافی برای رسیدگی به آن‌ها وجود نداشت. در نسخه ۰.۹ تمام این موارد بررسی و تعیین تکلیف شدند.سایت هضممستندات هضم</description>
                <category>روشن</category>
                <author>روشن</author>
                <pubDate>Thu, 13 Jul 2023 14:22:22 +0330</pubDate>
            </item>
                    <item>
                <title>هضم: ابزاری برای پردازش زبان فارسی</title>
                <link>https://virgool.io/product-hazm/%D9%87%D8%B6%D9%85-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-qvzxmynczo9e</link>
                <description>هضم، کتابخانه‌ای برای پردازش متون فارسی است که با زبان پایتون نوشته شده است. این کتابخانه در اواخر سال ۱۳۹۲ به صورت متن‌باز در گیت‌هاب منتشر شد.هدف از ساخت و توسعه این کتابخانه، رسیدن به یک راهکار مطلوب برای پردازش بهتر و دقیق‌تر متون فارسی است. هضم درحال‌حاضر توانایی خوبی در پیش‌پردازش متون فارسی دارد و همچنین در بخش تحلیل صرفی و نحوی پیشرفت‌های قابل ملاحظه‌ای داشته است.در ادامه این نوشته، مرور کوتاهی خواهیم داشت بر قابلیت‌های هضم. هدف از ارائه این توضیحات، آشنایی اولیه و کلی با قابلیت‌های این کتابخانه است. برای جزئیات بیشتر می‌توانید به سایت هضم مراجعه کنید.تمیزکردن متنهدف از تمیزکردن متن یا اصطلاحاً نرمال‌سازی، رفع نایکدستی‌ها و متحدالشکل کردن متن، جهت آماده‌سازی آن برای پردازش‌های بعدی است. حذف فاصله‌ها و نیم‌فاصله‌های اضافه، حذف کشیـــــــدگی حروف، حَذفِ اِعرابْ، جایگزین‌کردن حروف عربي با معادل فارسی، اصلاح فاصله‌ها در علائم نگارشی، اصلاح جدابودن یا نیم‌جدابودن کلمات، اصلاح فاصله در پیشوندها و پسوندها، جایگزین کردن حروف خاص یونیڪد با معادل استاندارد فارسی از جمله مسئولیت‌های این بخش است.استخراج جملات و کلمات متنگاهی لازم است متن را به جملات، کلمات یا توکن‌ها بشکنیم. هضم می‌تواند این کار را انجام دهد و حتی می‌تواند مفاهیمی مثل ایمیل، هشتگ، عدد و لینک را در متن تشخیص دهد.ریشه‌یابی کلماتریشه یا بن یک کلمه، ارزش زیادی در پردازش‌های زبانی دارد. هضم می‌تواند با حمایت لیستی از کلمات، بن ماضی و مضارع افعال را پیدا کند؛ به عنوان مثال، ریشه «می‌خوانم» در قالب دو بن ماضی و مضارع، به صورت «خواند-خوان» برگردانده می‌شود یا در کلمهٔ «کتاب‌ها»، بن آن یعنی «کتاب» برگردانده می‌شود.برچسب‌گذاری کلماتشناسایی فعل، اسم، صفت، قید و دیگر ساخت‌های زبانی موضوع مهمی در پردازش زبان است. هضم می‌تواند با دقت خوبی این کار را انجام دهد. عملکرد این بخش مبتنی بر مدل‌های از پیش آموزش‌دیده است. به همراه هضم تعدادی از این مدل‌ها عرضه شده است که کاربر می‌تواند جداگانه دانلود و استفاده کند. با این حال، امکان معرفی مدل‌های جدید نیز وجود دارد.قطعه‌بندیبخش مهمی از درک معنای یک متن، در گرو تشخیص واحدهای معنایی آن است؛ به عنوان مثال، در جمله «رئیس جمهور ایران به عراق سفر کرد.»، «رئیس جمهور ایران» علی‌رغم اینکه از سه کلمه تشکیل شده ولی در قالب یک واحد معنایی تفسیر می‌شود. وظیفه قطعه‌بند، تشخیص این قطعات معنایی است.تجزیهٔ نحوی وابستگیهدف از تجزیه نحویِ وابستگی، یافتن ارتباط بین کلمات است. هضم می‌تواند ساختار جمله را تجزیه کند و در خروجی، گراف وابستگی را تحویل دهد.بازنمایی واژه‌ها و جملاتبا استفاده از بازنمایی واژه‌ای هضم می‌توانید شبکه‌های عمیق را با سهولت بیشتری برای کاربردهای زبانی دلخواه خود آموزش دهید. همچنین با استفاده از بازنمایی جمله‌ای می‌توانید شباهت میان متون را بسنجید. این ماژول مبتنی بر مدل‌های از پیش آموزش‌دیده است؛ با این حال، همانند سایر ماژول‌های هضم، امکان استفاده از مدل‌های دلخواه شما را دارد.کلاس‌ها و توابع کمکی برای کار با پیکره‌هاداده، نقشی حیاتی در پردازش زبان دارد و البته تهیه داده‌های ارزشمند کاری زمان‌بر و طاقت‌فرسا است. افراد و نهادهای مختلفی با صرف وقت فراوان، داده‌های ارزشمندی را تحت عنوان پیکره‌های متنی یا پیکره‌های واژگانی در اختیار عموم قرار داده‌اند؛ با این حال، هر یک از این پیکره‌ها در ساختار و قالبی عرضه شده‌اند که باعث می‌شود توسعه‌دهندگان بخشی از وقت خود را صرف نوشتن اسکریپت برای خواندن این پیکره‌ها کنند.خبر خوب اینکه هضم این کار را انجام داده است!هضم می‌تواند با کمک واسط‌هایی و تنها با چند خط کد، بسیاری از پیکره‌های مهم زبان فارسی را بخواند. از جملهٔ این پیکره‌ها عبارتند از: پیکره داده‌های نحو وابستگی، میراث، همشهری، دگربیان، پرسیکا، قرآن، سنتی‌پرس، تی‌نیوز. این کار به برنامه‌نویس‌ها کمک می‌کند تا به‌جای صرف وقت برای نوشتن اسکریپت‌های فرعی برای خواندن پیکره‌ها روی موضوعات مهم‌ترِ پردازش زبان متمرکز شوند.امیدواریم توسعه این کتابخانه بتواند راه را برای علاقه‌مندان پردازش زبان طبیعی، محققان داده و  تمام برنامه‌نویسانی که به نوعی با پردازش متن فارسی درگیر هستند هموارتر کند. سایت هضممستندات هضمصفحهٔ گیت‌هاب هضم</description>
                <category>روشن</category>
                <author>روشن</author>
                <pubDate>Mon, 05 Jun 2023 12:41:46 +0330</pubDate>
            </item>
            </channel>
</rss>