در این قسمت قصد داشتم در مورد تحلیل داده های شبکه اجتماعی با استفاده از Neo4j براتون بنویسم. (Social Network Data Analysis Using Neo4j)
از چند سال اخیر حجم داده هایی که ما با آنها سر و کار داریم ، به شکل صعودی و نمایی شروع کردند به افزایش پیدا کردن ، که واژه Big data برای انها به کار گرفته شد. big data ها تعریف چندان دقیقی ندارند ولی میتوان گفت داده هایی که روی یک کامپیوتر جا نمیشوند و حجم زیادی دارند . داده هایی که قبلا با انها سر و کار داشتیم مثلا در حد گیگابایت بودند ولی امروزه با وجود اپلیکیشن هایی که استفاده از آنها رواج پیدا کرده و کلا رایج شدن تکنولوژی بین مردم ، حجم داده ها به طرز عجیبی تغییری کرده که دیگه بجای گیگابایت ما با اندازه هایی در مرتبه پتابایت و... طرفیم.برای همین در Big data ها چالش های زیادی بوجود آمد.مثلا اینکه اینجور داده ها را چطور میشود ذخیره کرد یا چالش بزرگتر از آن پردازش این داده ها بود ، که حتی ممکن بود روی یک کامپیوتر هم جا نشوند ، مثلا شما شرکت آمازون رو در نظر بگیرید میبینید که این داده های روی چند سرور ذخیره شده اند پس ما چطور میتونیم داده ها را پردازش کنیم؟!
برای ملموس سختی این کار شما یه سری عدد رو در نظر بگیرید که این عدد ها روی تعداد زیادی کامپیوتر ذخیره شده اند ، حتی گرفتن یک میانگین ساده هم روی این داده ها سخت و مشکله . چون باید بین اینها رابطه ای باشد و دستگاه دیگه ای بتواند اینهارا مدیریت کند.
حالا شرکت ها راه حل هایی رو پیشنهاد دادند و تا حد زیادی پیشرفت های خوبی در زمینه Big data ها صورت گرفت . ولی نکته دیگه ای هم که بود فقط افزایش حجم این داده ها نبود بلکه ارتباطات این داده ها هم پیچیده بود ، ما به مرور زمان نیاز پیدا کردیم ارتباط بین داده ها را هم تجزیه و تحلیل کنیم.
چند سال است که اصطلاح connected data هم بر سر زبون ها افتاد. connected data اصولا مربوط به داده هاییست که که ارتباط خاصی بین انها است و بیشتر جنبه ارتباطات است که بین انها اهمیت دارد.مثلا در نظر بگیرید در یک شبکه اجتماعی ، یک اجتماعی از دانشجویان که ارتباط نزدیکی با هم دارند(حالا ما نحوی موفق به تحلیل نزدیک بودن ارتباط بین انها شدیم) یکی از این افراد محصول خاصی را میخرد ، ما میتوانیم اینجا تحلیل کنیم افرادی که نزدیک این شخص هستند ، ممکن است سلیقه ای شبیه به همین شخص داشته باشند و وقتی ما این کالا را با یک تخفیفی به انها پیشنهاد کنیم ، انها هم بخرند.مثلا این یکی از روش هاییست که سیستم های توسعه دهنده از آن استفاده میکنند.مثلا شما search engine مثل گوگل رو در نظر بگیرید ، که از مجموعه ای زیادی از صفحه ها و لینک ها تشکیل شده و وقتی کاربر یه کلمه را وارد میکند ،این باید برود بین آنها جستجو کند ، این سایت ها از طریق لینک هایی هایی که دارند با هم در ارتباطند و ما در واقع با یک شبکه عظیم اینترنت طرفیم.پس هدف ما تحلیل داده هایی است که ارتباطی بین انها است و این ارتباط ها یک مدل اجتماعی است که ما به این کار میگیم Social Network Data Analysis.
این داده ها هم مثل big data ها چالش هایی داشتند و ابزار هایی را برای مدیریت و ذخیره سازی نیاز داشتند و چالش بعدی هم تحلیل ارتباط این داده ها بود . مثلا ارتباط بین دو نفر یا مشخصات کلی شبکه ای که آنرا داریم تجزیه و تحلیل میکنیم.
حالا ما اول با یک دیتابیسی به نام گراف آشنا میشویم(Neo4j) که بیشتر برای مدیریت این داده های به هم مرتبط استفاده میشود ، سپس با یک سری از الگوریتم ها برای تحلیل این ارتباطات.
منبع https://github.com/amirabbasasadi/Social-Network-Data-Analysis