برای تعاملات اجتماعی لازم است که رفتار انسان را بفهمیم. شخصیت یکی از جلوههای بنیادی آن است که بوسیله ی آن میتوانیم درک درستی از خصوصیات رفتاری داشته باشیم. بدیهی است که ارتباط نزدیکی میان شخصیت و فعالیت در شبکههای اجتماعی مانند فیسبوک وجود دارد. در اینجا قصد داریم تا بر اساس پروفایل فیسبوک افراد شخصیت آنها را شناسایی کنیم.
# مقدمه
شخصیت نقشی مهم در تعاملات اجتماعی ایفا میکند. شخصیت پیچیده ترین ویژگی انسانهاست و باعث تمایز بین افراد میشود. فعالیت های کاربران در شبکه های اجتماعی اطلاعات با ارزشی برای فهم رفتار و، تجربیات و، علایق و نظرات افراد فراهم آورده است. فیسبوک یکی از محبوب ترین شبکههای اجتماعی است که بیش تر کاربران روزانه از آن استفاده می کنند. در حال حاضر تعاملات روزانه بیش از ۸۰۰ میلیون کاربر را که بطور متوسط بیش از ۴۰ دقیقه روزانه صرف پروفایل خود میکنند را فراهم آورده است. [1]. بنابراین پروفایل فیسبوک به یک منبع اطلاعاتی مهم برای تاثیر گذاری روی دیگران بدل گشته است. در این میان کاربران برای ساخت پروفایل خود اطلاعات زیادی از خودشان از قبیل این که چه چیزهایی به اشتراک می گذارند و چگونه آن را می گویند,، اطلاعاتی که درباره خود مینویسند,، تغییر حالت هایشان[^status updates]، عکسها و علایقشان [^interests] را آشکار می نمایند. از این رو بیشتر شخصیت کاربران از پروفایلشان قابل استنتاج است. اخیرا نشان داده شده است که شخصیت افراد بر اساس پروفایل فیسبوکشان میتواند توسط دیگران پیش بینی شود [2]. برای مثال افراد هنگامی که میخواهند با دیگران ارتباط برقرار کنند و یا برای شغلی کسی را استخدام کنند، پروفایل فیسبوک آنها را بررسی می کنند. با توجه به این حقیقت که افراد بر اساس پروفایل فیسبوکشان یکدیگر را قضاوت میکنند ۲ نکته مهم آشکار میشود : ۱. پروفایل فیسبوک شخصیت افراد را نمایان می سازد. ۲. برخی از جنبههای پروفایل فیسبوک افراد برای تشخیص شخصیت مورد استفاده قرار می گیرند [3].
##کاربرد
شناسایی شخصیت میتواند در کاربردهای زیادی شامل آنالیز شبکههای اجتماعی و، سیستمهای توصیهگر و، شناسایی جرم و، تشخیص نویسنده متن و، آنالیز احساسی متن و زمینههای بسیار دیگر مورد استفاده قرار گیرد. برای مثال واحدهای استخدام نیروی انسانی صدها نیروی متقاضی کار را بر اساس شرایط و صفات لازم مورد نیاز بررسی می نمایند در همین حین کارکنان در بازارهای اینترنتی می کوشند تا تولیدات و اجناس خود را بر اساس نیازهای مشتری ارائه کنند تمام این موارد در نهایت شامل قدمی حیاتی برای مدل کردن شخصیت کاربران است. [4].
##مدل FFM یا BIG FIVE MODEL
در این جا برای مدل کردن شخصیت افراد از مدل FFM استفاده می کنیم که در حال حاضر گسترده ترین و بطورکلی یکی از پذیرفته شده ترین مدلهای شخصیتی است و به ۵ بعد تقسیم می شود همچنین توانایی پیش بینی شخصیت بر اساس این مدل در [5] بررسی شده است. در این مدل شخصیت انسان بصورت یک بردار پنج تایی از مقادیر تبدیل می شود که هرکدام متناظر با یکی از ۵ بعد آن می باشد. این مدل محبوب ترین مدل میان محققین علوم کامپیوتر است که برای شبیه سازی ویژگیهای شخصیتی هم به کار می رود. این مدل رفتاری شامل ۵ بعد است که به OCEAN معروف است و به شرح زیر می باشد:
**تجربه اندوز** [^Openness]
هنر دوست - کنجکاو - خلاق - باهوش. اینها معمولا ایدههای غیر معمول و تجربههای زیادی دارند.
**وظیفه شناس **[^Conscientiousness]
موثر - سازمان یافته - مسئولیت پذیر. این افراد بسیار قابل اطمینان بوده و هدف خاصی را دنبال میکنند و همچنین برنامه ریزی را به بی برنامگی ترجیح می دهند.
**برونگرا** [^Extraversion]
پر انرژی - فعال - مدعی - اجتماعی. این افراد اشتقاق زیادی برای فعالیت در شبکههای اجتماعی دارند.
**تطابق پذیر** [^Agreeableness]
مهربان - مشارکت پذیر - خوش بین. این افراد معمولا صلح جو اند و به دیگران خوش بین اند و قابل اعتماد مردم اند.
**روان رنجور** [^Neuroticism]
حساس - دستپاچه - دلواپس. افراد با این ویژگی خیلی زود احساس و حالتشان عوض می شود. این افراد معمولا نامطمئن و بی ثباتند.
## هدف
هدف مسئله شناسایی شخصیت افراد بر اساس ویژگیهای پروفایل فیسبوک مانند تعداد دوستان، تعداد گروهها، تعداد تغییر وضعیتها، … و همچنین بر اساس محتوای پستها و وضعیتهای وی است و در نهایت مقایسه نتایج بدست آمده با نتایج پرسشنامه ای که توسط خود فرد پر شده و تلاش برای بهبود نتایج خواهد بود.
# کارهای مرتبط
بطور کلی ۲ روش برای بررسی رفتار کاربران در شبکههای اجتماعی اتخاذ شده است.روش اول از انواع یادگیری ماشین[^Machine Learning] برای ساخت مدل رفتاری فقط بر اساس ویژگیهای شبکه مانند تعداد دوستان، گروهها، لایکها و … بهره میگیرد. ولی روش دوم فعالیتهای کاربران را به همراه محتوای متون انتشار یافته توسط کاربر به عنوان نشانههای زبانی [^linguistic cues] در نظر می گیرد. در هر کدام از این روشها تحقیقات متعددی صورت گرفته که در اینجا به معرفی آن ها می پردازیم.
##تنها بر اساس ویژگی های شبکه[2]
در تحقیقات مختلف فرضیات مختلفی مبنی بر اینکه هر کدام از ویژگیهای شبکه بر روی کدام ابعاد رفتاری تاثیر می گذارند. برای مثال در فرضهای متعددی در ارتباط با ابعاد مدل FFT و ویژگیهای شبکه در نظر گرفته شده و یا در[2] فرض شده است که
1. افراد تجربه اندوز و روان رنجور ارتباط مستقیمی با تعداد بروز رسانیهای وضعیت و عکسها و گروهها و لایکها دارند.
2. افراد وظیفه شناس ارتباط معکوسی با استفاده از هر کدام از جلوههای فیسبوک دارند.
3. برون گرایان ارتباط مستقیمی با استفاده از هر کدام از قسمتهای فیسبوک دارند.
4. افراد تطابق پذیر ارتباط مستقیمی با تعداد دوستان و گروهها و لایکها دارند.
ویژگیهایی که درطبق این روش صورت گرفته است عبارتند از:
. تعداد دوستان - تعداد گروهها -تعداد لایکها- تعداد عکسهای آپلود شده - تعداد بروز رسانی وضعیت - تعداد بارهایی که در عکس دیگران برچسب زده شده [^tagged]
###درستی فرضیات
برای نشان دادن میزان درستی فرضیات کاربران با ویژگیهای مشابه را در یک خوشه[^cluster] قرار داده می شود و مقدار میانگین امتیاز رفتار شخصیتی برای هر گروه را آزمایش میشود. n کاربر بر اساس ویژگی های در نظر گرفته شده بصورت صعودی مرتب می شوند تا لیست $u_1$,$u_2$,...,$ u_n$ بدست آید. سپس لیست به $q=\frac{n}k$ مجموعهی مجزا تقسیم می شود بطوری که برای i امین مجموعه تمام مقادیر آن بین $c_iq$, $c_i+1q$ قرار میگیرد. تقسیم بندی کاربران به گروههای مساوی ولی با صعودی بر اساس مقادیر ویژگیها این امکان را می دهد تا بتوان رابطه بین ویژگیها و رفتار شخصیتی را نشان داد. همچنین برای نشان دادن این رابطه نمودار پراکندگی خوشه ای [^Clustered Scatter Plots] رسم می شود که محور عمودی مقدار میانگین ویژگیها و محور افقی میانگین امتیاز رفتار شخصیتی را نشان می دهد. نمونه ای از این نمودار برای بررسی وجود ارتباط بین تعداد لایکهای کاربران و تجربه اندوز بودنشان در شکل زیر آمده است:
![ شکل ۱ - نمودار پراکندگی خوشه ای](http://i67.tinypic.com/1412i5g.png)
###پیش بینی شخصیت بر اساس این روش
برای پیش بینی ابتدا از رگرسیون چند متغیری خطی [^multivariate linear regression] با 10 [برابر اعتبار متقاطع](https://en.wikipedia.org/wiki/Cross-validation_%28statistics%29) [^10fold cross validation] استفاده می شود. برای برازش[^goodness-of-fit] از $R^2$ استفاده می شود و در این رگرسیون امتیازها به صدک تبدیل میشود به این طور که اگر فردی۱۰۰ دوست دارد در ۲۰ امین صدک از لحاظ تعداد دوستان قرار می گیرد که این کار کیفیت رگرسیون را بالا می برد. در جدول ۱ $R^2$ و RMSE برای هر یک از ابعاد آورده شده اند.
![جدول ۱ - نتیجه ](http://i68.tinypic.com/21j20qg.png)
با توجه به جدول میتوان یافت که هر چند که این روش برای بعضی از رفتار بصورت منطقی دقیق است ولی برای بعضی دیگر مانند تطابق پذیری بشدت ناکار آمد است.
توجه شود که در این جا برای برای روش یادگیری از رگرسیون چند متغیری خطی استفاده شده ولی استفاده از روشهای یادگیری دیگر مانند SVM تغییر چشم گیری در نتایج نخواهد داشت.[2]
###محدودیت ها
در این روش اطلاعات بصورت خیلی سطح بالا مورد استفاده قرار میگیرند برای مثال تعداد لایکها در نظر گرفته شده تا این که چه مواردی لایک شده و یا تعداد بروز رسانیهای وضعیت به جای اینکه چه کلماتی در آنها آمده است در نظر گرفته می شود.
## بر اساس ویژگی های شبکه به همراه نشانه های زبانی
مانند آنچه در روش قبل گفته شد کاربران می توانند جمله هایی به عنوان درباره من[^About Me] و یا در وضعیتهایشان بنویسند.
###بدنه متن
متنهای مورد بررسی علاوه بر کلمات و جملات شامل مخففها (BRB-be right back, …) و شکلکها(:D) و زبان عامیانه و انواع علائم اختصاری می باشد. بدلیل اینکه هر کدام از این نشانهها معانی مشخصی برای تشخیص شخصیت دارند، آنها را دست نخورده باقی می گذاریم.
###پیش پردازش
معمولا برای بررسی متن و بدست آوردن ویژگیها از ۲ روش استفاده می شود.
####ابزارLIWC
با استفاده از این ابزار ۸۱ ویژگی در ۵ دسته بندی کلی می توان یافت : ۱)تعداد استانداردها(تعداد کلمات و تعداد گزارهها و …) ۲) پردازش روانشناختی (تعداد کلماتهای غضبناک و تعداد کلمات احساسی و …) ۳) نسبی( کلمات درباره زمان و تعداد فعلهای آینده یا گذشته و …) ۴) نگرانیهای شخصی(تعداد کلمات بکار رفته دربارهی شغل و پول و سلامتی و …) ۵) ابعاد زبان شناسی (تعداد علائم نگارشی و تعداد قسمهای بکار رفته و …).[7, 9]
####روش Bag-Of-Words
در این روش نشانهها [^Tokens] به عنوان ویژگیها استفاده می شود. در نتیجه یک نمونه طبقه بندی [^classification instance] برداری از نشانهها است که در متن یافت می شود. سپس با استفاده از پیدا کردن کلمات کلیدی مانند [tf-idf](https://en.wikipedia.org/wiki/Tf%E2%80%93idf) به مقادیر ویژگی تبدیل می شود. در این روش یک بدنه با ۶۵۴۵ نمونه شامل ۱۵۰۰۰ ویژگی می شود.[8]
###طبقه بندی[^classifiers]
در [۹] از Support Vector Machine, k-nearest neighbors, Naïve Bayes و در [۸] از روش های Multinomial Naïve Bayes, Sequential Minimal Optimization, Bayesian Logistic Regression برای طبقه بندی استفاده شده است در اینجا روشهای [8] را به اختصار توضیح می دهیم.
####روش SMO
یک روش پیاده سازی برای SVM است که مسئله را به زیر مسئله های ۲ بعدی تقسیم می کند که بصورت تحلیلی حل می شوند. همچنین نیاز به یک الگوریتم بهینه ساز عددی [^numerical optimization algorithm] و فضای ماتریس برای ذخیره سازی از بین می رود. در حالت کلی سرعت بیشتر و دقت بالا تری نسبت به SVM دارد.
####روش BRL
در آمار بیزی توزیع های قبلی به عنوان ضریب رگرسیون قرار میگیرد. در BRL از پیشین[^Priors]های متفاوتی(مانند لاپلاس و یا گاوس) استفاده می کنیم تا از تولید مدلهای پراکنده برای متون اجتناب کنیم.
####روش MNB
در این روش نمونهها با چند جملهای $p_1$, $p_2$,..., $p_n$ تولید می شود که pi به معنی احتمال رخ دادن رویداد i ام است. بردار ارزش در این روش یک هیستوگرام است (X=($x_1$,$x_2$,…,$x_n$ که xi تعداد دفعاتی که رویداد i دیده شده را نشان می دهد. تشابه X برابر است با :
![](http://i64.tinypic.com/2v31uv4.png)
###روش های ارزیابی
برای ارزیابی الگوریتم های طبقه بندی از precision , recall, F1 استفاده شده است که بصورت زیر محاسبه می شوند:
![](http://i67.tinypic.com/2iaq0kz.png)
که tp, tn, fn, fp از بصورت زیر تعریف می شود:
![جدول2- تعریف tn, tp, fn, fp](http://i66.tinypic.com/2n3gh0.png)
طبق [9] بین روش های مطرح شده در طبقه بندی روش MNB عملکرد بهتری نسبت به BLR, SMO دارد.
# آزمایشهااند، به دیگران خوش بیناند و قابل اعتماد مردماند.
**روان رنجور** [^Neuroticism]
حساس - دستپاچه - دلواپس. افراد با این ویژگی خیلی زود احساس و حالتشان عوض میشود. این افراد معمولا نامطمئن و بی ثباتند.
## هدف
هدف مسئله شناسایی شخصیت افراد بر اساس ویژگیهای پروفایل فیسبوک مانند تعداد دوستان، تعداد گروهها، تعداد تغییر وضعیتها، … و همچنین بر اساس محتوای پستها و وضعیتهای وی است و در نهایت مقایسه نتایج بدست آمده با نتایج پرسشنامهای که توسط خود فرد پر شده و تلاش برای بهبود نتایج خواهد بود.
# کارهای مرتبط
بطور کلی ۲ روش برای بررسی رفتار کاربران در شبکههای اجتماعی اتخاذ شده است. روش اول از انواع یادگیری ماشین[^Machine Learning] برای ساخت مدل رفتاری فقط بر اساس ویژگیهای شبکه مانند تعداد دوستان، گروهها، لایکها و … بهره میگیرد. ولی روش دوم فعالیتهای کاربران را به همراه محتوای متون انتشار یافته توسط کاربر به عنوان نشانههای زبانی[^linguistic cues] در نظر میگیرد. در هر کدام از این روشها تحقیقات متعددی صورت گرفته که در اینجا به معرفی آنها میپردازیم.
##تنها بر اساس ویژگیهای شبکه[2]
در تحقیقات مختلف فرضیات مختلفی مبنی بر اینکه هرکدام از ویژگیهای شبکه بر روی کدام ابعاد رفتاری تاثیر میگذارند، ارائه میشود. برای مثال در [6] فرضهای متعددی در ارتباط با ابعاد مدل FFT و ویژگیهای شبکه در نظر گرفته شده و یا در [2] فرض شده است که:
1. افراد تجربه اندوز و روانرنجور ارتباط مستقیمی با تعداد بروز رسانیهای وضعیت، عکسها، گروهها و لایکها دارند.
2. افراد وظیفه شناس ارتباط معکوسی با استفاده از هرکدام از جلوههای فیسبوک دارند.
3. برون گرایان ارتباط مستقیمی با استفاده از هرکدام از قسمتهای فیسبوک دارند.
4. افراد تطابق پذیر ارتباط مستقیمی با تعداد دوستان، گروهها و لایکها دارند.
ویژگیهایی که در [2] طبق این روش صورت گرفته است عبارتند از:
. تعداد دوستان - تعداد گروهها -تعداد لایکها- تعداد عکسهای آپلود شده - تعداد بروز رسانی وضعیت - تعداد بارهایی که در عکس دیگران برچسب زده شده [^tagged]
###درستی فرضیات
برای نشان دادن میزان درستی فرضیات کاربران با ویژگیهای مشابه را در یک خوشه[^cluster] قرار داده میشوند و مقدار میانگین امتیاز رفتار شخصیتی برای هر گروه را آزمایش میشود. $n$ کاربر بر اساس ویژگیهای در نظر گرفته شده بصورت صعودی مرتب می شوند تا لیست $u_1$,$u_2$,...,$ u_n$ بدست آید. سپس لیست به $q=\frac{n}k$ مجموعهی مجزا تقسیم می شود بطوری که برای $i$ امین مجموعه تمام مقادیر آن بین $c_{i_q}$, $c_{i+1_q}$ قرار میگیرد. تقسیم بندی کاربران به گروههای مساوی ولی صعودی بر اساس مقادیر ویژگیها این امکان را میدهد تا بتوان رابطه بین ویژگیها و رفتار شخصیتی را نشان داد. همچنین برای نشان دادن این رابطه نمودار پراکندگی خوشهای [^Clustered Scatter Plots] رسم میشود که محور عمودی مقدار میانگین ویژگیها و محور افقی میانگین امتیاز رفتار شخصیتی را نشان میدهد. نمونهای از این نمودار برای بررسی وجود ارتباط بین تعداد لایکهای کاربران و تجربه اندوز بودنشان در شکل زیر آمده است:
![ شکل ۱ - نمودار پراکندگی خوشه ای](http://i67.tinypic.com/1412i5g.png)
###پیش بینی شخصیت بر اساس این روش
برای پیش بینی ابتدا از رگرسیون چند متغیری خطی [^multivariate linear regression] با ۱۰ [برابر اعتبار متقاطع](https://en.wikipedia.org/wiki/Cross-validation_%28statistics%29) [^10fold cross validation] استفاده میشود. برای برازش[^goodness-of-fit] از $R^2$ استفاده می شود و در این رگرسیون امتیازها به صدک تبدیل میشود به این طور که اگر فردی۱۰۰ دوست دارد در ۲۰ امین صدک از لحاظ تعداد دوستان قرار میگیرد که این کار کیفیت رگرسیون را بالا میبرد. در جدول ۱ $R^2$ و RMSE برای هر یک از ابعاد آورده شدهاند.
| RMSE | $R^2$ | Traits |
|:----------|:------------------:|:------------------:|
| 0.29 | 0.11 | Openness |
| 0.28 | 0.17 | Conscientiousness |
| 0.27 | 0.33 | Extraversion |
| 0.28 | 0.01 | Agreeableness |
| 0.29 | 0.26 | Neuroticism |
با توجه به جدول میتوان یافت که هر چند که این روش برای بعضی از رفتار بصورت منطقی دقیق است ولی برای بعضی دیگر مانند تطابق پذیری بشدت ناکار آمد است.
توجه شود که در این جا برای برای روش یادگیری از رگرسیون چند متغیری خطی استفاده شده ولی استفاده از روشهای یادگیری دیگر مانند SVM تغییر چشم گیری در نتایج نخواهد داشت [2].
###محدودیتها
در این روش اطلاعات بصورت خیلی سطح بالا مورد استفاده قرار میگیرند برای مثال تعداد لایکها در نظر گرفته شده تا این که چه مواردی لایک شده و یا تعداد بروز رسانیهای وضعیت به جای اینکه چه کلماتی در آنها آمده است در نظر گرفته میشود.
## بر اساس ویژگیهای شبکه به همراه نشانههای زبانی
مانند آنچه در روش قبل گفته شد کاربران میتوانند جملههایی به عنوان درباره من[^About Me] و یا در وضعیتهایشان بنویسند.
###بدنه متن
متنهای مورد بررسی علاوه بر کلمات و جملات شامل مخففها (BRB-be right back, …) و شکلکها (d:) و زبان عامیانه و انواع علائم اختصاری میباشد. بدلیل اینکه هر کدام از این نشانهها معانی مشخصی برای تشخیص شخصیت دارند، آنها را دست نخورده باقی میگذاریم.
###پیش پردازش
معمولا برای بررسی متن و بدست آوردن ویژگیها از ۲ روش استفاده میشود.
####ابزار LIWC
با استفاده از این ابزار ۸۱ ویژگی در ۵ دسته بندی کلی می توان یافت : ۱)تعداد استانداردها(تعداد کلمات، تعداد گزارهها و …) ۲) پردازش روانشناختی (تعداد کلماتهای غضبناک، تعداد کلمات احساسی و …) ۳) نسبی( کلمات درباره زمان، تعداد فعلهای آینده یا گذشته و …) ۴) نگرانیهای شخصی(تعداد کلمات بکار رفته دربارهی شغل، پول، سلامتی و …) ۵) ابعاد زبان شناسی (تعداد علائم نگارشی، تعداد قسمهای بکار رفته و …) [7, 9].
####روش Bag-Of-Words
در این روش نشانهها [^Tokens] به عنوان ویژگیها استفاده میشود. در نتیجه یک نمونه طبقهبندی [^classification instance] برداری از نشانهها است، که در متن یافت میشود. سپس کلمات با استفاده از پیدا کردن کلمات کلیدی مانند [tf-idf](https://en.wikipedia.org/wiki/Tf%E2%80%93idf) به مقادیر ویژگی تبدیل میشود. در این روش یک بدنه با ۶۵۴۵ نمونه شامل ۱۵۰۰۰ ویژگی میشود [8].
###طبقه بندی[^classifiers]
در [۹] از Support Vector Machine ,k-nearest neighbors ,Naïve Bayes و در [۸] از روشهای Multinomial Naïve Bayes ,Sequential Minimal Optimization ,Bayesian Logistic Regression برای طبقهبندی استفاده شده است در اینجا روشهای [8] را به اختصار توضیح میدهیم.
####روش SMO
یک روش پیاده سازی برای SVM است که مسئله را به زیر مسئلههای ۲ بعدی تقسیم میکند که بصورت تحلیلی حل میشوند. همچنین نیاز به یک الگوریتم بهینه ساز عددی [^numerical optimization algorithm] و فضای ماتریس برای ذخیره سازی از بین میرود. در حالت کلی سرعت بیشتر و دقت بالا تری نسبت به SVM دارد.
####روش BRL
در آمار بیزی توزیعهای قبلی به عنوان ضریب رگرسیون قرار میگیرد. در BRL از پیشین[^Priors]های متفاوتی (مانند لاپلاس یا گاوس) استفاده میکنیم تا از تولید مدلهای پراکنده برای متون اجتناب کنیم.
####روش MNB
در این روش نمونهها با چند جملهای $p_1$, $p_2$,..., $p_n$ تولید میشود که $p_i$ به معنی احتمال رخ دادن رویداد $i$ام است. بردار ارزش در این روش یک هیستوگرام است (X=($x_1$,$x_2$,…,$x_n$ که $x_i$ تعداد دفعاتی که رویداد $i$ام دیده شده را نشان میدهد. تشابه $X$ برابر است با :
$$P(x|C_k)={\frac{(\sum_{i}{x_i})!}{\prod_{i}{x_i}!}}{\prod_{i}{p_{ki}^{x_i}}}$$
###روشهای ارزیابی
برای ارزیابی الگوریتمهای طبقه بندی از precision , recall, F1 استفاده شده است که بصورت زیر محاسبه میشوند:
$$Pre(Avg)={\frac{1}{2}}{({\frac{tp}{tp+fp}}+{\frac{tn}{tn+fn}})}$$
$$Re(Avg)={\frac{1}{2}}{({\frac{tp}{tp+fn}}+{\frac{tn}{tn+fp}})}$$
$$F1(Avg)=2{\frac{Pre(Avg)*Re(Avg)}{Pre(Avg)+Re(Avg)}}$$
که tp, tn, fn, fp از بصورت زیر تعریف می شود:
| Condition not A | Condition A | |
|:----------|:------------------:|:------------------:|
| False Positive | True Positive | Test says A |
| True Negative | False Negative | Test says not A |
جدول۲- تعریف tn, tp, fn, fp
طبق [9] بین روشهای مطرح شده در طبقهبندی روش MNB عملکرد بهتری نسبت به BLR ،SMO دارد.
# آزمایشها
##دادگان
بدنه شامل ۲۵۰ کاربر فیسبوک و حدود ۱۰۰۰۰ بروزرسانی وضعیت آنهاست که توسط پروژهی myPersonality ارائه شده است. از ٪۶۶ این مجموعه برای آمادهسازی classifier و از ٪۳۴ آن برای آزمایش استفاده شدهاست. هر وضعیت شامل متنخام و زمان انتشار آن وضیعت است. برای هر کاربر علاوه بر وضعیتها کلاسهای رفتاری، امتیاز آنها و ویژگیهای شبکه نیز وجود دارد که هر کدام را به اختصار توضیح میدهیم.
**۱-** NetworkSize
تعداد افرادی که در شبکه کاربر قرار دارند (تعداد دوستان).
**۲-**Betweenness
نشان دهندی این است که فرد تا چه حد در مرکز شبکهی دوستانش قرار دارد. هر چه این مقدار بیشتر باشد نشان دهنده این است که دوستانش با یکدیگر کمتر در ارتباط اند.
**۳-**NBetweenness
بدلیل این که betweenness به اندازهی شبکه کاربر بستگی دارد، برای مقایسه از فرم نرمال آن استفاده میکنیم که برابر نسبت betweennes به ماکزیمم betweennes کاربر است.
**۴-**Density
نشان دهندهی این است که چه تعداد ارتباط میان دوستان کاربر در مقایسه با ماکزیمم تعداد ارتباط بین آنها وجود دارد. که برابر نسبت تعداد ارتباطات میان دوستان کاربر به تمام ارتباطهای ممکن بین آنها است.
**۵-**Brokrage
برابر تعداد زوج مرتبهایی از دوستان کاربر است که با یک دیگر ارتباطی ندارند.
**۶-**NBrokrage
بدلیل این که brokerage نیز به اندازه شبکه کاربر بستگی دارد، برای مقایسه از فرم نرمال آن استفاده میشود که برابر نسبت brokerage به ماکزیمم brokerage کاربر است.
**۷-**Transitivity
برابر نسبت تعداد کل مثلثها به گرافهایی با ۳ راس در گراف شبکه کاربر است.
##استخراج Feature ها
برای بدست آوردن Feature های یک وضعیت از روش bags-of-word استفاده شدهاست که نشانههای یک وضعیت به عنوان Feature ها در نظر گرفته شدهاست. بدلیل این که انواع متنوعی از نشانهها (مخففها، زبانعامیانه، شکلکها، ...) در متن وضعیت کاربر وجود دارد، تلاش اندکی برای تغییر و نرمالسازی متن وضعیت کاربر انجام شدهاست. ویژگیهای شبکه و زمان ایجاد متن وضعیت را که مستقیماً در اختیار داریم نیز در مجموعه Feature ها در نظر میگیریم. از مجموعه بدست آمده برای آمادهسازی مدل و دستهبندی تستها استفاده خواهیمکرد.
## پیش پردازش
**۱-لینکها**
از آنجا که کاربران ممکن است در وضعیتهای خود از لینک به سایر سایتها استفاده کنند، برای سادگی تمام لینکها را یکسان فرض میکنیم ولی حذف نمیکنیم زیرا در تعیین کلاس شخصیتی کاربر مهم است.
**۲-عددها**
از انجا که عددها بطور تنها و در خارج از جمله ارزشی ندارند آنها را حذف میکنیم.
**۳-کلمه در لغات با تکرار طولانی**
بدلیل اینکه کاربران برای بیان احساسات خود از کلماتی مانند Hiiiiiii به جای Hi استفاده میکنند، کلماتی را که تعداد تکرارشان بیشتر از ۳ است را به ۳ کاهش میدهیم تا برای همهی کاربران یکسان در نظر گرفته شود. دلیل این کار این است که اگر ۲ کاربر بخواهند کلمه Hi را با تعداد تکرار بیشتر از ۱ بنویسند، احتمال کمی دارد که از تعداد یکسانی i استفاده کنند.
##بدست آوردن مقادیر Feature ها
برای بدست آوردن مقادیر، تمام Feature هایی که تا کنون بدست آوردهایم را در نظر میگیریم، در صورتی که Feature مورد بررسی در مجموعهی Feature ها وجود داشت مقدار آن را True و در غیر این صورت False قرار میدهیم. از همین روش برای بدست آوردن مقادیر Feature های تست جدید استفاده میکنیم.
##آماده سازی Classifier ها
بدلیل این که ۵ کلاس شخصیتی داریم، به یک classifier برای هر کلاس شخصیتی نیاز داریم. در اینجا برای سادگی از Naïve Bays از کتابخانه NLTK استفاده شده است.
بطور کلی استفاده از این روش و کتابخانه مشکلات زیر را ایجاد میکند:
**۱-** مشکل گسسته بودن Naïve Bays در آن برای ویژگیهای شبکه و زمان ایجاد حالت برجسته است.
**۲-** زمان زیاد برای آماده سازی هر classifier، که حدوداً ۲۵ دقیقه میباشد.
**۳-** بعد از ذخیرهسازی مدل ایجاد شده، استفاده مجدد از آن نتایج قبلی را نمیدهد.
برای رفع این مشکلات در فاز بعدی از کتابخانههای دیگر و روش SVM برای رفع مشکل گسستگی استفاده خواهیم نمود.
##ارزیابی
در بررسی انجام شده به جدول زیر رسیدیم که طبق فرمولهایی که در بخش قبل آورده شده است حساب شدهاند.
| F1-Avg | Re-Avvg | Pre-Avg | Traits |
|:----------|:-----------------:|:------------------:|:-----------:|
| 59.77 | 59.71 | 59.83 | Openness |
| 59.07 | 59.11 | 59.06 | Conscientiousness |
| 57.98 | 58.13 | 57.99 | Extraversion |
| 58.49 | 58.71 | 59.09 | Agreeableness |
| 57.95 | 57.90 | 58.84 | Neuroticism |
تمامی کدها و دادگان مربوطه در [این لینک](https://github.com/k-Armin/SherLock) قابل دسترسی است.
# کارهای آینده
# مراجع
[1] Mairesse, F. and Walker, M. A. and Mehl, M. R., and Moore, R, K. Using Linguistic Cues for the AutomaticRecognition of Personality in Conversation and Text. In Journal of Artificialintelligence Research, 30(1), pp.457–500, 2007.
[2] S.D.Gosling, S. Gaddis, and S. Vazire. Personality impressions based on Facebookprofiles. 2007.
[3] Bachrach, Y., Kosinski, M., Graepel, T., Kohli, P., & Stillwell, D.Personality and Patterns of Facebook Usage. 2012.
[4] Agarwal, B. Personality Detection from Text: A Review. International Journal of Computer Systems, Vol. 01, Issue.01, September, 2014.
[5] Goldberg, L., R. The Development of Markersfor the Big Five factor Structure. In _Psychological Assessment_, 4(1).pp. 26–42. 1992.
[6] C. Ross, E.S. Orr, M. Sisic, J.M. Arseneault, M.G. Simmering, and R.R. Orr. Personality and motivations associated with [7] Facebook use. _Computers in Human Behavior_, 25(2):578–586, 2009.
Golbeck, J.; Robles, C.; and Turner, K. Predicting personality with social media. In _Proc. of CHI_, 253–262. New York, NY, USA: ACM. 2011.
[8] Firoj Alam, Evgeny A. Stepanov, Giuseppe Riccardi, “Personality Traits Recognition on Social Network – Facebook”, In The Seventh International AAAI Conference on Weblogs and Social Media Workshop on Computational Personality Recognition (Shared Task), pp.6-9.
[9] G. farnadi, S. Zoghbi, M. Moens, M. DeCock, “ Recognizing Personality Traits using Facebook Status Updates”, In The Seventh International AAAI Conference on Weblogs and Social Media, Workshop on Computational Personality Recognition (Shared Task).