بایگانی برچسب: s

چرا گنو/لینوکس رو دوست دارم: بررسی اسم رنگ های فارسی

بحث از جای جالبی شروع شد. من گفتم رنگ های ایرانی بامزه هستن چون موارد خیلی کمی داریم که توش یک اسم خاص برای یک رنگ استفاده شده باشه. مثلا «زرد» یک اسم خاص است که به یک رنگ اشاره می‌کنه ولی «آبی» یعنی چیزی که به رنگ آب است. برای بررسی این نسبت، سری به صفحه رنگ های ویکیپدیا زدم و بعد از حذف رنگ‌های تفسیری (خودم اسم می ذارم دیگه!) یعنی مثلا «سبز لجنی» یا «آبی درباری» و حذف پسوندهایی مثل «تیره» و «سیر» و … و موارد مشابه به این هشتاد و یک رنگ رسیدم:

آبی، آجری، آل، آلبالویی، اُخرایی، ارغوانی، استخوانی، بادمجونی، برگ سنجدی، برنجی، برنزی، بژ، بنفش، پرکلاغی، پوست پیازی، پوست گرگی، تاج خروسی، تریاکی، جگری، حنایی، خاکستری، خاکی، خردلی، خرمایی، دارچینی، دودی، دوغی، دلفینی، روناسی، زرد، زرشکی، زعفرانی، زغالی، زیتونی، سبز، سدری، سربی، سرخ، سرخابی، سرمه‌ای، سفید، سیاه، مشکی، شرابی، شفقی، شکلاتی، شنگرفی، شیرشکری، شیری، صورتی، طلایی، طوسی، عنابی، فندقی، فولادی، فیروزه‌ای، فیلی، قرمز، قهوه‌ای، کرم، کله غازی، گردویی، گلبهی، گیلاسی، لاجوردی، لجنی، لیمویی، ماشی، مرجانی، مسی، مغزپسته‌ای، نارنجی، نخودی، نقره‌ای، نوک مدادی، نیلی، هلویی، یاسی، یاقوتی، یخی، یشمی

هوم.. برنامه یا دست؟ برنامه.. هر چی باشه ما هکریم! بذارین آخر هر چیزی که «ی» هست رو بشمریم و نگاهی بندازیم که اشتباه نشده باشه:

jadi@funlife:/tmp$ grep ".*ی$" colors.txt  | wc -l 
71

jadi@funlife:/tmp$ grep ".*ی$" colors.txt  | xargs echo | sed 's/ /، /g'
آبی، آجری، آلبالویی، اُخرایی، ارغوانی، استخوانی، بادمجونی، برگ سنجدی، برنجی، برنزی، پرکلاغی، پوست پیازی، پوست گرگی، تاج خروسی، تریاکی، جگری، حنایی، خاکستری، خاکی، خردلی، خرمایی، دارچینی، دودی، دوغی، دلفینی، روناسی، زرشکی، زعفرانی، زغالی، زیتونی، سدری، سربی، سرخابی، سرمهای، مشکی، شرابی، شفقی، شکلاتی، شنگرفی، شیرشکری، شیری، صورتی، طلایی، طوسی، عنابی، فندقی، فولادی، فیروزه ای، فیلی، قهوه ای، کله غازی، گردویی، گلبهی، گیلاسی، لاجوردی، لجنی، لیمویی، ماشی، مرجانی، مسی، مغزپسته ای، نارنجی، نخودی، نقره ای، نوک مدادی، نیلی، هلویی، یاسی، یاقوتی، یخی، یشمی


jadi@funlife:/tmp$ grep -v ".*ی$" colors.txt  | wc -l 
10

jadi@funlife:/tmp$ grep -v ".*ی$" colors.txt  | xargs echo | sed 's/ /، /g'
آل، بژ، بنفش، زرد، سبز، سرخ، سفید، سیاه، قرمز، کرم
jadi@funlife:/tmp$ 

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

‌ آل، بژ، بنفش، زرد، سبز، سرخ، سفید، سیاه، قرمز، کرم

در اینجا «آل» یک جور قرمز است و بقیه هم که مشخصن. پس از بین ۸۱ رنگی که داشتیم،‌ ده رنگ اسم خاص خودشون رو دارن و ۷۱ رنگ به چیزهای مختلف برای توضیح رنگ ها اشاره می کنن.

colors

و نکات جالب؟

  • رنگ های باحالی داریم مثل دوغی، یخی، دودی و البته تریاکی!
  • سفید یخچالی جزو رنگ ها است که البته اینجا نشمردیم چون بخشی از «سفید» است ولی جالبه که قبل از ورود یخچال به اون رنگ چی می گفتن
  • من همیشه به شوخی از آدم ها می پرسیدم کدوم رنگ است که فقط به چشم اشاره می کنه و نه چیز دیگه! جواب «میشی» است.. ظاهرا دلیلش اینه که کلا «میشی» اسم رنگ نیست و اشتباه مصطلح است. رنگ درست «ماشی» است (:
  • نوک مدادی هم بامزه است (در کنار قرمز ماتیکی یا کالباسی مثلا!) چون منطقا این چیزها خودوشن نیازمند تفسیر شدن رنگ هستن. یعنی خود مداد رو باید بگیم چه رنگیه بعد بگیم اون رنگ رنگ مداده (:

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

برنامه پیشنهادی امروز: شرکت در جشن ۵۰۰هزارمین مقاله ویکی‌پدیای فارسی. جشن ۵۰۰هزارمین مقالهٔ ویکی‌پدیا جمعه ۱۵ مرداد ۱۳۹۵ ساعت ۱۵ تا ۱۹ تو تالار قلم سازمان اسناد و کتابخانهٔ ملی ایران به‌کوشش گروه کاربری ویکی‌مدین‌های ایرانی برگزار میشه. شرکت در مراسم هم بدون هیچ محدودیتی واسه همه آزاد و رایگانه. متاسفانه من فکر می کردم هفته بعد است و خیلی دیرمطلب رو منتشر کردم ولی امروزه! صفحه جشن اینجاست و اینم برنامه زمان‌بندی. در ضمن اگر از اسنپ برای رفتن یا اومدن استفاده کنین پنجاه درصد تخفیف دارین، با کد snapp-wiki. احتمالا خودم نمی‌رسم بیام چون اشتباه کردم تو برنامه‌ریزی روزها ولی امیدوارم شما برین و خوش بگذره. ویکی عالیه. آگوست 5, 2016 ، ۱ پاسخ

جستجوی جیبریش در گوگل

محسن توجهم رو به نکته جالبی جلب کرده:

linuxgibberish

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

پ.ن. جیبریش گیبریش یا gibberish یعنی چیزهای نامفهوم و نوشته های قاطی پاتی.

پ.ن. محمد تو کامنت ها می گه که داک داک گو هم همین کار رو می کنه البته تا جایی که من یادم بود داک داک گو از گوگل استفاده می کرد و کوکی ها رو حذف می کرد… الان مستقل سرچ می کنه؟

دو صفحه کلید فارسی بیتا (فارسی) و کلمن (انگلیسی)

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

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

صفحه کلید بیتا این شکلی است:

و درست شده برای کم کردن مسیر دست در هنگام تایپ متون مرسوم فارسی و صفحه کلید کلمان هم این شکلی است:

و نتیجه ترکیب منطقی کلماک و ورکمن است.

جزییات بیشتر در انجمن اوبونتوی فارسی

چرا آزادی رو دوست دارم: فراوانی حروف فارسی در یک متن

سوال دوستانی که در مورد صفحه کلید استاندارد بحث می کنن اینه که هر حرف فارسی در متون فارسی چقدر تکرار شده؛ به عبارت دیگه هر کاراکتر چقدر به درد می خوره تو فارسی نوشتن. اینو قبلا هم یک دوست تایپیست حرفه ای ازم خواسته بود بررسی کنم. امروز حوصله کردم و جواب در مورد متنی مثل قانون اساسی اینه (پی نوشت دوم رو بخونین):

درصد استفاده از حروف فارسی در قانون اساسی

و اگر به طور دقیق تعداد کلمات و درصدهای دقیق تر رو می خواین می تونین با دانلود فایل صفحه گسترده فراوانی حروف فارسی در قانون اساسی ایران با ODF فرمت اوپن آفیس بهش برسین.

برنامه ای که اینکار رو می کنه اینه:


#!/usr/bin/perl

use utf8;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';

@userinput = ;

$string = ''; #make a single $string from the standard input
foreach $line (@userinput) {
        $string .= $line;
}

# do some adjustments, say replacing arabic Ya with Persian Ya
$string =~ s/ي/ی/g;
$string =~ s/ك/ک/g;

#$allLetters = "آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ۱۲۳۴۵۶۷۸۹۰";
$allLetters = "آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ";

#explode and check the count of each letter
$total = 0;
for (my $key = 0; $key < length($allLetters); $key++) {
	$thisLetter = substr ($allLetters, $key, 1);
	$tedad{$thisLetter} = ()= $string =~ /$thisLetter/g; 
	$total += $tedad{$thisLetter};
}

foreach $key (sort (keys %tedad)) {
	print $key, "\t", $tedad{$key}, "\t", int($tedad{$key} / $total * 1000) / 10, "\n";
}

که همونطور که می بینین اطلاعات رو از ورودی استاندارد می گیره و تعداد هر کاراکتری که در رشته string اومده باشه رو توسط اپراتور مخفی =() می سنجه - برای همینه که می گن پرل زبون پردازش متنه و فوق العاده قشنگ و سخت برای خوندن. مثلا به این خط که قلب این برنامه است نگاه کنین:


	$tedad{$thisLetter} = ()= $string =~ /$thisLetter/g; 


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

اینم بگم که این رو با هر چیز دیگه (مثلا برنامه های غیر آزاد) هم می شه نوشت یا روی ویندوز هم اجرا کرد ولی حالا که من کردم لوگوم رو می زنم پاش (:

نوشته های مشابه:
- بررسی سال های تولد در اطلاعات افشا شده ۳۰۰۰۰۰۰ کارت بانکی
- تعداد فراوانی حروف فارسی در نوشته‌های روزمره (ای بابا قبلا ظاهرا اینو نوشته بودم ولی یادم نبود!)

پی نوشت
۱- اگر واقعا نیاز دارین در مورد متنی این رو بدونین و امکان اجرای برنامه رو توسط خودتون ندارین، برام ایمیل کنین به jadijadi@gmail.com و براتون انجام می دم می فرستم. فقط متن بدون شک باید در فرمت متنی باشه. پی دی اف و اینها نیازمند تبدیل هستن.
۲- همونطور که شاهین هم در کامنت ها گفته، قانون اساسی اصلا متن خوبی برای سنجش «میزان استفاده حروف در زبان فارسی» نیست. اولا که کلمات غیرمرسومی داره و احتمالا سطح عربی اش زیاده و از اونطرف یک متن طبیعی نیست و مثلا کلمه «اصل» توش حداقل به تعداد اصول قانون اساسی استفاده شده و احتمالا هیچ رمانی اینقدر «ص» توش نداره (: