ساخت گراف دانش از داده های ویکی پدیا

Published on 06/30,2017


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

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

این روش، 3 گام دارد. استخراج داده، تمیز کردن داده و تبدیل.

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

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

1.     ابتدا مجموعه ای از تگ هایی که برای نمایش داده است (مانند <bold> , <br/> و...) و یا برای توضیحات اضافه است (<comment>) حذف شوند.

2.     مشکل redirection حل شود. در ویکی پدیا بعضی از صفحات به صفحات دیگری ارجاع داده می شوند. ارجاع زمانی اتفاق می افتد که برای یک موضوع واحد چندین نام وجود دارد. به عنوان مثال صفحه ای در مورد United Kingdom وجود دارد و همزمان صفحه ای به نام UK نیز در ویکی پدیا وجود دارد. در واقع UK یک نام مستعار برای نام واقعی United Kingdom است. حال یکی از وظایف ما در تمیز کردن داده ها این است که هر جایی از فایل دامپ که نام  UK را داشتیم، نام United Kingdom را جایگزین آن بکنیم.

 

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

1.     به ازای زوج هایی که مقداری ندارند، هیچ 3 گانه ای تولید نخواهد شد.

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

3.     به ازای زوج هایی که مقدار آنها، چندین متن و یا چندین لینک و یا ترکیبی از این دو است، به ازای هر مقدار آنها یک 3 گانه تولید می شود و در نهایت یک موجودیت نیز به عنوان مقدار کل تولید می شود.

در هر دو مورد 2 و 3 برای تولید 3 گانه ها به صورت زیر عمل می شود:

عنوان template اینفو باکس به عنوان subject، (نام template # خصیصه) به عنوان predicate و در نهایت مقدار خصیصه به عنوان object در نظر گرفته می شود.

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

<Song#length>

<UK_Bus#length>

در هر دو مورد از خصیصه ی طول صحبت می کنیم در حالی که در مورد اول منظور از طول، میزان زمان مصرفی برای یک تکه موسیقی است ولی در مورد دوم طول یک اتوبوس انگلستانی مد نظر است. در نتیجه Object متصل به predicate اول از جنس زمان و مثلا به صورت hour:minute است در حالی که در مورد دوم object مورد نیاز از جنس طول اشیاء و مثلا به صورت 4m است.

حال یک مثال را دنبال می کنیم تا از داده های خام ویکی پدیا که به صورت دامپ و به فرمت xml هستند بتوانیم، 3 گانه های مورد نظر خود را استخراج کنیم.

برای مثال در نظر بگیرید که داده های ورودی ما به صورت
 
باشند. حال این داده های به عنوان ورودی به گام 1 داده می شود و نتیجه به صورت زیر است.
 
  
حال این داده ها به گام دوم داده می شود و به عنوان مثال موارد زیر تشخیص و اصلاح می شوند:
 
 
  
 
 
 
 
 
 
 
 
و در نهایت از داده های تمیز شده ی شکل زیر به صورت زیر 3 گانه تولید می شود.
 

        <Tsing_Ma_Bridge> <Bridge#bridge_name>  "Tsing Ma Bridge“

         

        <Tsing_Ma_Bridge> <Bridge#locale> <Ma Wan Island> .

        <Tsing_Ma_Bridge> <Bridge#locale> <Tsing Yi Island> .

        <Tsing_Ma_Bridge> <Bridge#locale> "Ma Wan Island and Tsing Yi Island"

سطر آخر همان موجودیت کلی است که در گام 3 و در قانون 3 بیان شده است. همانطور که می بینید تجمیع دو مورد اخیر است که به عنوان یک مقدار رشته ای بیان شده است.

البته با توجه به اینکه ساخت 3 گانه ها در پروژه های مشابه مانند دیبی پدیا نیز وجود دارد، این روش در مقابل روش پیاده سازی دیبی پدیا به صورت زیر مقایسه می شود:
 

 

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

ارزوی موفقیت و سلامت دارم برای همه ی عزیزان.. 

 

مراجع:

 

Chiu, Jimmy K., et al. Extraction of RDF Dataset from Wikipedia Infobox Data. Tech. rep., Department of Computer Science, The University of Hong Kong, 2010.

Lehmann, Jens, et al. "DBpedia–a large-scale, multilingual knowledge base extracted from

Wikipedia." Semantic Web 6.2 (2015): 167-195.

 


http://fumblog.um.ac.ir/trackback.php?id=12458

ساخت گراف دانش از داده های ویکی پدیا

 

ارسال نظر
Info

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


در غیر اینصورت نظر شما پس از تایید توسط مالک وبلاگ منتشر خواهد شد.

 authimage