میهمان گرامی ، خوش آمدید . عضــویت



رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5

پایتون و انفورماتیک پزشکی

#1
در این تاپیک سعی خواهد شد کدهای کاربردی در حیطه انفرماتیک پزشکی که به زبان پایتون نوشته شده مورد تحلیل و توسعه قرار گیرند . به این معنی که پروژه ها و قطعه کدهایی را به صورت ماژول برای انفورماتیک پزشکی از سطح مبتدی تا انشاا... پیشرفته ادامه خواهیم داد تا در نهایت به پروژه هایی بزرگی از قبیل آنتولوژی و پردازش زبان طبیعی برسیم.
امید است که در طی این روند فرصت و انگیزه کافی داشته باشیم تا نهایتا به جاهای خوبی برسیم .
________
توضیح 1 : پاور پوینتی برای زبان پایتون تو دوره کارشناسی تهیه کرده بودم که برای شروع و معرفی این زبان قرار می دم .
توضیح 2: کد نویسی در پایتون ساده و قدرتمند است چون تقریبا هر تابع و کارکردی مد نظرتون باشه قبلا توسط یکی نوشته شده است.
توضیح 3 : برای دانلود ابزار های مورد نیاز به اسلایدها مراجعه نمایید

*شما قادر به دیدن لینک ها نیستید ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید*
 سپاس شده توسط Roya-A ، Harika ، AySu ، HIT1390 ، arash_65 ، hadi ، فرزانه کریمی ، MaN!a ، fatemeh.s ، Shiva Faramarzi ، H_E_A
#2
هر کس در مورد پایتون مطالعه مختصری انجام دهد به قدرت اون در کار با متن و پردازش و کاوش متن پی می برد.کتابخانه های قدرتمندی براش نوشته شده . از طرفی در پزشکی نیز با پردازش متن و زبان طبیعی بسیار کار خواهیم داشت و این نقطه اتصال پزشکی ، انفورماتیک و پایتون است.در مراحل ابتدایی به تجزیه و تحلیل فایل های متنی وسیله پایتون خواهیم پرداخت و به مرور به سمت متون پزشکی سوق خواهیم یافت.سعی می کنیم سلسله مراتب و روند طوری باشه که ساخت یافته جلو بره و باعث سردرگمی نباشه .پس برای بخش اول و شروع به سراغ تجزیه و تبدیل و تحلیل فایل های متنی میریم .
1- تجزیه و تبدیل فایلهای متنی

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


1.1 گشت و گذاری در میان فایل های حجیم


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


الگوریتم مد نظر برای برنامه به شکل زیر است :
گام 1. پیامی را روی مانیتور برای پرسیدن نام فایلی که می خواهیم جستجو کنیم چاپ می کنیم.
گام 2. فایل مورد نظر توسط کاربر وارد شده و با فشردن Enter رشته آدرس فایل را اخذ می کنیم.
گام 3. رشته ی دریافتی از طریق کیبورد را در متغیری می ریزیم که عبارت است از نام فایل مد نظر.
گام 4. فایل را برای خواندن باز می کنیم.
گام 5. فایل دیگری را برای نوشتن باز می کنیم. این فایل در واقع خروجی کد را دریافت می کند.
گام 6. حلقه ی for را برای 40 بار تکرار ایجاد می کنیم.
گام 7. در هر دور (تکرار) سطری از متن را می خوانیم . سطر را در نمایشگر چاپ می کنیم و همین سطر را در فایل دیگری که در گام 5 برای نوشتن باز کرده ایم می نویسیم.
گام 8. یک حلقه ی for برای تکرار به تعداد 2960 مرتبه ایجاد می کنیم. این حلقه خواندن از فایل حجیم اول را تا زمانی که به پایان برسد(40 حلقه تکرار) ادامه می دهد.
گام 9. در هر دور ، سطری از متن را خوانده و آنرا در فایل باز شده گام 5 می نویسیم.
گام 10. زمانی که حلقه به پایان رسید ، نام فایل نوشته شده را در نمایشگر چاپ می کنیم (تا کاربر بداند فایل خروجی را چطور پیدا کند).
گام 11. خروج . گام آخر که فایل های باز شده پس از اتمام کد خود ه خود بسته می شوند و نیازی به بستن ندارند.

 سپاس شده توسط hadi ، فرزانه کریمی ، Roya-A ، MaN!a ، fatemeh.s
#3
قطعه کد و تحلیل در پست بعدی ...
شایان ذکر است که هدف از این تاپیک آموزش برنامه نویسی نیست و هدف تنها ارائه قطعه کدها و ماژول هایی برای استفاده و کار در حیطه انفورماتیک پزشکی به خصوص در حوزه متن کاوی و پردازش متن و زبان طبیعی می باشد بنابراین نیاز به فهم کامل قطعه کد نمی باشد بلکه ورودی و خروجی و هدف کد مهم است .
در این کد هدف باز کردن و ویرایش فایل های حجیمی است که اگر با word یا notepad باز شود منجر به هنگ نمودن برنامه کاربردی می شود. اما اینکه چنین فایل حجیمی را کجا می توان یافت و استفاده کرد در قطعه کدهای بعدی روشن خواهد شد.
 سپاس شده توسط hadi ، فرزانه کریمی ، zahra1361 ، MaN!a ، fatemeh.s
#4
قطعه کد خواندن فایل های حجیم به زبان پایتون
*شما قادر به دیدن لینک ها نیستید ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید*
کد:
#!/usr/local/bin/pythonimport sysimport stringprint “What file would you like to sample?\n”line = sys.stdin.readline()line = line.rstrip()infile = open (line, “r”)outfile = open (“sample.txt”, “w”)print “\n”for iterations in range(40):getline = infile.readline()print getline.rstrip()outfile.write(getline)for iterations in range(2960):getline = infile.readline()outfile.write(getline)infile.close()outfile.close()

print “\nYour sampled text is in file \”sample.txt\”\n”exit

_______

هر کد ساده ای معمولا نیاز به این دارد که کاربر اطلاعاتی را از طریق کیبورد وارد نماید. در این قطعه کد نیز نیاز به محاوره ای بین کد و کاربر بود . یک سطر از متن برای چاپ به نمایشگر ارسال شد و تا زمانی که کاربر جوابی را وارد کند و دکمه Enter را فشار دهد ، سیستم منتظر می ماند. ورودی کاربر توسط کد دریافت شده و به متغیر انتساب داده می شود . زبانهای دستوری واسط کاربری ساده اما کارآمدی دارند.
این قطعه کد از کتابخانه string در جهت کار با فایلهای متنی به نحو مناسبی استفاده می نماید .
 سپاس شده توسط فرزانه کریمی ، hadi ، MaN!a ، fatemeh.s
#5
2. صفحه بندی فایلهای متنی حجیم

شما پس از بریدن و برداشتن بخشی از یک فایل حجیم (که در برنامه ی قبلی انجام پذیرفت) ممکن است ترجیح دهید که فایل را سطر به سطر تا زمانی که خسته می شوید بخوانید. در این بخش قطعه کدی می نویسیم که 40 سطر اول از فایل را از هر فایل متنی نشان می دهد و امکاناتی جهت خروج از پروسه دارد. اگر قصد ادامه مطالعه خطوط بعد را داشته باشید این قطعه کد 40 سطر بعدی را نشان می دهد و این روال می تواند بصورت نامحدود تا پایان فایل تکرار شود. با فشردن کلید Enter می توانیم در فایل به سمت انتهای آن حرکت کنیم . این قطعه کد برای فایلهایی با حجم بالای 10 مگابایت بسیار سودمند می باشد زیرا واژه پردازها نمی توانند به سرعت این فایلها را بارگزاری نمایند.
________

الگوریتم برنامه
گام 1. پیامی را روی نمایشگر مبنی بر ورود مشخصات فایلی که می خواهیم بخوانیم ارسال می کنیم .
گام 2. رشته مد نظر توسط کاربر وارد شده و دکمه Enter به عنوان تایید فشرده می شود.
گام 3. رشته دریافتی از کیبورد را درون متغیری می ریزیم که اکنون شامل نام فایل مدنظر جهت جستجو می باشد.
گام 4. فایل را باز می کنیم.
گام 5. 40 سطر اول از فایل را چاپ می نماییم.
گام 6. به کاربر پیامی جهت خروج از برنامه می دهیم تا در صورت تمایل خارج شود.
گام 7. اگر کاربر رشته QUIT را وارد کند از برنامه خارج می شویم.
گام 8. در غیر اینصورت گامهای 4 ، 5 و 6 تکرار می شود.


قطعه کد به زبان Python :


*شما قادر به دیدن لینک ها نیستید ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید*


کد:
#!/usr/local/bin/pythonimport sysimport stringprint “What file would you like to read?\n”line = sys.stdin.readline()line = line.rstrip()infile = open (line, “r” )print “\n”while(1):  for iterations in range(40):Print infile.readline().rstrip()  print “Type QUIT if you want to quit. Otherwise press any key\n”;  response = sys.stdin.readline().rstrip()  if (response = = “QUIT”):breakinfile.close()exit

تحلیل در پست بعدی ...


فایل‌های پیوست
.pdf   usr.pdf (اندازه 100.06 KB / تعداد دانلود: 29)
 سپاس شده توسط Harika ، hadi ، soniya ، MaN!a ، fatemeh.s
#6
اگر قصد دارد این برنامه را اجرا نمایید ، بایستی مطمئن شوید که نام یک فایل متنی را از ورودی وارد کرده اید (البته این فایل باید از کدهای اسکی استاندارد تشکیل شده باشد) و اینکه مسیر آن را به درستی آدرس دهی نموده اید.


زبانهای برنامه نویسی قادرند فایلی را بدون بارگزاری تمام آن به داخل حافظه بخوانند. زمانی که فایلی برای خواندن باز می شود، اطلاعات فایل می توانند با خواندن متناوب سطرها یا با دسترسی مستقیم به محل هر بایت در فایلهای بدون نوع مورد دسترسی قرار گیرند. این عملیات ها بسیار سریع انجام می شوند . سطرهای فایل بدون اهمیت داشتن حجم فایلی که می خواهید آنرا بازیابی نمایید بر روی نمایشگر نقش می بندند و شما می توانید با فشردن کلید Enter بقیه اطلاعات را بارگزاری نمایید و در واقع عامل محدود کننده سرعت اکنون سرعت چاپ و نمایش نمایشگر شما می باشد!.
 سپاس شده توسط MaN!a ، hadi ، fatemeh.s
#7
با مقدمه ای از این دو قطعه کد که هدف از آن استخراج سطرها و سپس انجام عملیات های دلخواه بر روی رشته بدست آمده است در ادامه سراغ بحث Regular Expression یا مبیّن های منظم یا عبارات با قاعده می رویم .
مبین های منظم برای توصیف الگوهای رشته ای مورد استفاده قرار می گیرد که در ادامه به نحوه استفاده از آن خواهیم پرداخت.
 سپاس شده توسط MaN!a ، hadi ، fatemeh.s
#8
پس از یه رکود طولانی به دلیل انتزاع دو داشگاه که خواب و زندگیمونو زده به هم و فعلا از درس و دانشگاه بوی درس به مشام نمیرسه خدمت شما بخش دوم رو شروع می کنمRegular Expression

3. استخراج سطرها و تطابق دادن با یک مبين منظم
زبان برنامه نویسی پایتون عملیات های مربوط به مبین های منظم را پشتیبانی می کنند. مبین منظم روشی قراردادی برای توصیف الگوهای رشته ای می باشند.
مثالی از یک مبین منظم را در زیر مشاهده می نمایید :
^[A-Z][a-z]+\s[0-9]*


این مبین منظم چنین الگویی را توصیف می کنید: رشته با یک حرف بزرگ شروع می شود و در پی آن یک یا چند حرف کوچک می آید که با یک فضای خالی ادامه پیدا می کنند و در پی آنها تناوبی از صفر یا سایر اعداد می آید.
با مبین های منظم شما قادرید کلاسهایی از داده را جستجو نمایید. برای مثال ، حرف بزرگ C که در پی آن 7 کاراکتر عددی بیایند می تواند نمایانگر یک کد گذاری اسامی باشد . مجموعه ای از کاراکترهای A، C، Gو T ممکن است نشان دهنده ی یک توالی ژن باشند. یک کلمه یا اصطلاح خاص که در پی آن 50 کاراکتر از هر مقداری بیاید و در پی آنها کلمه یا اصطلاح خاص دیگری بیاید می تواند بیانگر تطابق مجاورتی (برای مثال رابطه ی مکانی دو عبارت) باشد. یک مجموعه از کاراکترهای الفبایی تشکیل یک کلمه را می دهند و با توالی خاصی از کاراکترها شروع می شوند بیانگر هر کلمه ای است که ریشه همسانی دارند.



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

_______________________

الگوریتم برنامه
گام 1. ارسال پیامی روی نمایشگر و درخواست نام فایل مد نظر برای جستجو.
گام 2. دریافت رشته وارد شده به عنوان مسیر فایل و فشردن کلید enter توسط کاربر.
گام 3. قرار دادن رشته ی دریافتی درون ک متغیر که اکنون شامل نام فایل مدنظر می باشد.
گام 4. ارسال پیامی روی صفحه نمایش مبنی بر دریافت کلمه ، عبارت یا مبین منظم مد نظر جهت جستجو .
گام 5. دریافت رشته وارد شده توسط کاربر و فشار کلید enter توسط کاربر.
گام 6. قرار دادن رشته ی دریافتی درون متغیر که اکنون شامل مبین منظمی است که قرار است با هر سطر فایل مورد نظر تطابق داده شود.
گام 7. باز نمودن فایل مدنظر جهت جستجو و خواندن آن .
گام 8. باز نمودن فایلی به نام result.out جهت نوشتن . این فایل نتایج جستجوی شما را ذخیره می نماید.
گام 9. تجزیه یا پارس نمودن سطر به سطر فایل مورد نظر.
گام 10. هر زمان که مبین منظم شما در فرآیند تطابق مشاهده گردید آنرا در صفحه نمایش نشان داده و در فایل result.out بنویس.
گام 11. خروج ، فابل های باز خود به خود بسته می شوند.


قطعه کد و تحلیل در پست بعدی............
 سپاس شده توسط hadi ، health_sa ، meysam_ra ، آرام ، fatemeh.s ، Shiva Faramarzi ، baranbaran


موضوعات مشابه ...
موضوع
  دانلود منابع انفورماتیک اضافه شده سال 95 بصورت رایگان(کتاب دو درس اضافه شده)
  بانک نرم افزار های Open Source مرتبط با انفورماتیک پزشکی
  اطلاعیه و فراخوان مجله ی مدیریت و انفورماتیک سلامت
Star بیشتر بدانیم : " پزشکی از راه دور "
  منابع تحقیق درباره انفورماتیک پزشکی
Exclamation درباره مدیکال انفورماتیک قسمت اول
  انفورماتیک پزشکی
  یک سایت مفید در زمینه ی مدیکال انفورماتیک
  استانداردسازی در اطلاعات پزشکی



کاربران در حال بازدید این موضوع: 1 مهمان