OSM Fa Fixer python script

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

سلام نوید جان
با جدا شدنشون موافقم و فکر میکنم با هر اسکریپت نباید بیشتر از یک کار رو انجام داد. در کل اگر مشکلاتی که دوستان مطرح کردن قابل رفع باشه و بشه اسکریپت رو ارتقاء داد با اجرا شدنش مشکلی ندارم و فکر میکنم اگه بشه یک ادیت رو بدون نقص بصورت اتوماتیک انجام داد لزومی نداره که بصورت دستی انجامش بدیم. ولی در حال حاضر با توجه به بحثهای صورت گرفته حق رو به دوستان مخالف میدم و بنظرم اول باید این مشکلاتی که دوستان مطرح کردن مرتفع بشه و بعد اسکریپت اجرا بشه.

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

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

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

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

وقتی میتونیم با یک کوئری ساده همه کلمه های دارای ي و ك و ارقام عربی را دربیاریم و در اختیار کاربر بذاریم چرا این معیار را از خودمون بگیریم تا کاربران بخواهند به صورت تصادفی در ویرایشهاشون یا وقتی نقشه را مرور میکنن با چشم پیداشون کنن؟

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

بله، اما نگفته مجاز هستید با آگاهی به اشتباه، اشتباه سیستماتیک بکنید.

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

هنوز اون مورد نامهایی که ممکنه واقعا عربی باشن و نباید عوض بشن پابرجاست.
راه حلی براش دارید؟

Hi all,

In general, as long as a script satisfies “Automated Edits code of conduct” https://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct and it helps the data integrity, can be helpful. Above detailed discussions explains how it may cause some minor damages that might remain invisible for a long time, looks like there can be solutions for that, like that report as a table of changes which needs to be investigated by human editors, or dividing it in to two separate scripts.
Thank you all for these informative discussions and special thank to Navid for this script and his professional approach to the issue.

Ebrahim

نوید جان، طی درخواستت مبنی بر این که توی اسکریپت بهت کمک بدم(در مورد راهحلی که بتونه مشکل رو حل کنه)، به این فکر کردم که از هر دو ابزار برای این موارد استفاده کنیم.

یعنی هم از مپ رولت بهره ببریم و هم از اسکریپت.

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

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

در همونجا لیستی از واژه هایی که نباید تغییر پیدا کنن رو هم با هم مینویسیم.

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

من بعد از هر اجرا، وظیفه بررسی تغییرات ربات رو برعهده میگیرم تا اطمینان پیدا کنم مشکلی نباشه.

اسکریپت حداقل باید هر یک ماه ایجاد بشه و صفحه ویکی کاملی رو هم داشته باشه.

میتونیم همین روند رو برای کلیه ی اسکریپت هایی که قراره روی نقشه ایران کار کنن داشته باشیم.

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

موفق باشی

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

یک نکته ای رو هم نباید نادیده گرفت. اصطلاح «ی» فارسی و «ي» عربی جای بحث داره. نباید شکل ظاهری حروف که وابسته به فونت هستند رو معیار قرار داد و فکر میکنم کد اسکی کاراکتر باید مبنا باشه در مورد اینکه کدوم حرف فارسی حساب میشه.
البته من وارد نیستم و دوستان بیشتر از من در جریان هستند فقط جهت یادآوری گفتم که اشتباه نشه.
در مورد حرف کاف هم همین موضوع صدق میکنه.

سلام به همه دوستان

آقا نوید من یه بررسی اجمالی روی این بسته های تغییر کردم که حدود ۱۴٬۰۰۰ تغییر هستن.

  • عمدهٔ مشکلات، تبدیل ارقام انگلیسی در عبارتهای انگلیسیه. (لیست این موارد) مثلا

way/565407682	block ۲ negin park
way/556221141	C۱۴
way/659910855	Kangan ۵th
way/88807959	wdhn ۱۷
way/383166306	Mehr ۱۱
way/670233150	falake ۱
way/355427286	کنار گذر محله C۱
way/539623157	مجتمع مسکونی مینو ۳ F-۲۱

  • بقیه مربوط به عربی میشه و در بین گره ها شایعه (لیست این موارد) و راه ها این مشکل را میشه گفت ندارن.

  • جالب اینکه حدود ۸۰٪ تغییرات روی معابر انجام شده. و میتونم بگم که با رفع مشکل انگلیسی، اصلاح معابر هیچ مشکل خاصی پیش نمیاره. یعنی ۸۰ درصد عارضه هایی که اصلاح میشن. چون عمدتا کاربران بومی ایجادشون میکنن.

  • از موارد باقیمانده، ده درصد باقیمانده راه ها و ده درصد هم گره ها هستن. که میشه تگ هایی رو که معمولا کاربران بومی ایجاد میکنن از این ۲۰٪ درآورد و تغییرشون داد، مثل تگ place. بقیه را بهتره دستی انجام بدیم و مثلا از کنارش به موضوع صفحه کلید کاربران هم بپردازیم.

  • در بعضی بسته های تغییر یکسری عارضه ها حذف شده که فکر کنم نباید مخلوط با این تغییرات باشه.

  • اگه اندازهٔ بسته های تغییر از یه حدی بالاتر نره، برای بررسی بهتره. مثلا نهایت ۵۰۰ تغییر در هر بسته یا چیزی در همین حدود

با سپاس از صبر و شکیبایی شما

ما مگه اصلا تو فارسی ك , ي داریم؟ بحث فونت نیست و برنامه معیار رو بر اساس فونت نمیذاره و در واقع انکودینگ کاراکتر ها رو بررسی میکنه. اگه من اشتباه میکنم و نکته ای رو اطلاع ندارم بهم گوش زد کنید لطفا.

سلام ایمان جان. این مشکل اوایل وجود داشت و الان توی برنامه برطرف شده هستش و دیگه پیش نمیاره همچین مشکلی رو. این مواردی هم که زحمت کشیدی لیست کردی یه برنامه بذاریم به صورت دستی اصلاح کنیم.

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

مشکل انگلیسی منظورت اعداد انگلیسی هستش دیگه؟ بله دقیقا اکثرا بخاطر شماره گذاری خیابون ها هستش که درصد بیشتر مثلا همون ۸۰٪ که شما گفتی برای مسیر ها هستش. و بله خدا رو شکر توی موضوع تبدیل اعداد تا جایی که میدونیم مشکل خاصی نداریم. با این حال در حال حاضر من دارم روی برنامه تبدیل اعداد کار میکنم (جدا کردم برنامه ها رو) و بهبود های زیادی روش دادم که به زودی منتشر میشه.

اینو نفهمیدم منظورت چیه دقیقا ببخشید.

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

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

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

با تشکر از پیگیری دوستان که دل گرم کننده است

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

amenity
tourism

را معمولا کاربران غیربومی هم ایجاد میکنن در نتیجه مستعد اون مشکلات هستن. ولی

place
landuse

را کاربران غیربومی معمولا ایجاد نمیکنن و در نتیجه اون مشکلات روی این عارضه ها پیش نمیاد. حالا به عنوان مثال این دو تگ آخری را فاکتور بگیریم تا تغییر نکنن و دستی بررسی کنیم.

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

صرفا یک راهکار پیشنهادی برای کم شدن موارد اشتباه هست.

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

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

osmcha

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

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

راهکار جالبی نیست چون در صد خطای بالایی داره و یه سری چیزا که باید فیکس بشه نمیشه اینطوری و برعکس. به نظرم همون راهکار کلمات کلیدی جامع تر هستش و این موارد رو پوشش میده

درسته چشم از این به بعد به این مورد دقت میکنیم.

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

مثلا خوبه اکسریپت برای هر استان جدا جدا اجرا بشه تا بشه راحت بعدا بررسی کرد

فکر هم نمیکنم کار سختی باشه، فقط یه تک
“ISO3166-2”=“IR-{code ostan}”
هست دیگه

شما به بار اسکریپت رو بنویس،
یه لیست از اون کدهای
IR-*
تهیه بکن. بهش بگو تک به تک اجرا کن آپلود کن و برو سراغ بعدی.

اینطوری تفکیک بین چنجستها هم راحت منیشه.

سلام. در حالِ حاضر تو این ورژن ، برنامه مستقیما هیچ ارتباطی با سرورهای آورپس نداره و کوئری به صورت دستی داخل
josm
اجرا میشه و ازش خروجی گرفته میشه. پس برنامه فعلا نمیتونه خودکار اینکار رو انجام بده. بخاطر همین بهش میگیم اسکریپت وگرنه میشد ربات اگه خودش دانلود کنه اصلاح کنه و آپلود هم بکنه

با سلام خدمت تمامی دوستان. ربات جدید
FaNumberFixerBot
برای اولین با ورژن 4.2 اجرا شد و خوشبختانه مورد استقبال همگی توی گروه قرار گرفت. شماره چنجست مربوطه:
https://www.openstreetmap.org/changeset/71222381

* جدول بررسی تغییرات اعمال شده *

صفحه ویکی

گیت لب

خسته نباشی نوید و دمت گرم

Hi dear Navid;
Thanks for your nice efforts for OSM Iran, specially this useful Bot, I have a suggestion… Is it possible to add a space before the numbers that preceding character is a letter?

سلام نوید عزیز
ممنون از تمام تلاشهای خوبی که برای جامعه ا اس ام ایران انجام میدی، من یک پیشنهاد دارم… امکانش هست قبل از عددهایی که کاراکتر قبلشون یک حرف هست (یعنی بلافاصله به حرف قبل چسبیدن) یک فاصله اضافه کنی مثلا <گل۱۱> بشه <گل ۱۱>. ممنون

An interesting suggestion!

یک پیشنهاد جالب!

مخزن این اسکریپت به گیت لب منتقل شده است:
https://gitlab.com/OSMIran/FaNumberFixer
با تشکر از سوشا عزیز