شناسایی شخصیت انسان

تغییرات پروژه از تاریخ 1394/11/05 تا حالا
برای تعاملات اجتماعی لازم است که رفتار انسان را بفهمیم. شخصیت یکی از جلوه‌های بنیادی آن است که بوسیله‏ی آن می‏توانیم درک درستی از خصوصیات رفتاری داشته باشیم. بدیهی است که ارتباط نزدیکی میان شخصیت و فعالیت در شبکه‌های اجتماعی مانند فیسبوک وجود دارد. در اینجا قصد داریم تا بر اساس پروفایل فیسبوک افراد شخصیت آن‌ها را شناسایی کنیم.

# مقدمه
شخصیت نقشی مهم در تعاملات اجتماعی ایفا می‏کند. شخصیت پیچیده ترین ویژگی انسان‌هاست و باعث تمایز بین افراد می‏شود. فعالیت‏های کاربران در شبکه‏های اجتماعی اطلاعات با ارزشی برای فهم رفتار، تجربیات، علایق و نظرات افراد  فراهم آورده است. فیسبوک یکی از محبوب ترین شبکه‌های اجتماعی است که بیشتر کاربران روزانه از آن استفاده می‏کنند. در حال حاضر  تعاملات روزانه بیش از ۸۰۰ میلیون کاربر را که بطور متوسط بیش از ۴۰ دقیقه روزانه صرف پروفایل خود می‏کنند را فراهم آورده است [1]. بنابراین پروفایل فیسبوک به یک منبع اطلاعاتی مهم برای تاثیر گذاری روی دیگران بدل گشته است. در این میان کاربران برای ساخت پروفایل خود اطلاعات زیادی از خودشان از قبیل این که چه چیزهایی به اشتراک می‏گذارند و چگونه آن را می‏گویند، اطلاعاتی که درباره خود می‌نویسند، تغییر حالت‏هایشان[^status updates]، عکس‌ها و علایقشان [^interests] را آشکار می‏نمایند. از این رو بیشتر شخصیت کاربران از پروفایلشان قابل استنتاج است. اخیرا نشان داده شده‏است که شخصیت افراد بر اساس پروفایل فیسبوکشان می‏تواند توسط دیگران پیش‏بینی شود [2]. برای مثال افراد هنگامی که می‏خواهند با دیگران ارتباط برقرار کنند و یا برای شغلی کسی را استخدام کنند، پروفایل فیسبوک آن‌ها را بررسی می‏کنند. با توجه به این حقیقت که افراد بر اساس پروفایل فیسبوکشان یکدیگر را قضاوت می‏کنند ۲ نکته مهم آشکار میشود : ۱. پروفایل فیسبوک شخصیت افراد را نمایان می سازد. ۲. برخی از جنبه‌های پروفایل فیسبوک افراد برای تشخیص شخصیت مورد استفاده قرار می گیرند [3].

##کاربرد
شناسایی شخصیت میتواند در کاربرد‌های زیادی شامل آنالیز شبکه‌های اجتماعی، سیستم‌های توصیه‌گر، شناسایی جرم، تشخیص نویسنده متن، آنالیز احساسی متن و زمینه‌های بسیار دیگر مورد استفاده قرار گیرد. برای مثال واحدهای استخدام نیروی انسانی صد‌ها نیروی متقاضی کار را بر اساس شرایط و صفات لازم مورد نیاز بررسی می‏نمایند در همین حین کارکنان در بازار‌های اینترنتی می‏کوشند تا تولیدات و اجناس خود را بر اساس نیاز‌های مشتری ارائه کنند تمام این موارد در نهایت شامل قدمی حیاتی برای مدل کردن شخصیت کاربران است [4].


##مدل FFM یا BIG FIVE MODEL
در این جا برای مدل کردن شخصیت افراد از مدل FFM استفاده می‏کنیم که در حال حاضر گسترده‏ترین و بطور‏کلی یکی از پذیرفته شده‏ترین مدل‌های شخصیتی است و به ۵ بعد تقسیم می شود همچنین توانایی پیش بینی شخصیت بر اساس این مدل در [5] بررسی شده است. در این مدل شخصیت انسان بصورت یک بردار پنج تایی از مقادیر تبدیل می‏شود که هر‌کدام متناظر با یکی از ۵ بعد آن می‏باشد. این مدل محبوب‏ترین مدل میان محققین علوم کامپیوتر است که برای شبیه سازی ویژگی‌های شخصیتی هم به کار می‏رود. این مدل رفتاری شامل ۵ بعد است که به OCEAN معروف است و به شرح زیر می باشد:
**تجربه اندوز** [^Openness] 
هنر دوست - کنجکاو - خلاق - باهوش. این‌ها معمولا ایده‌های غیر معمول و تجربه‌های زیادی دارند.
**وظیفه شناس **[^Conscientiousness] 
موثر - سازمان یافته - مسئولیت پذیر. این افراد بسیار قابل اطمینان بوده و هدف خاصی را دنبال می‏کنند و همچنین برنامه ریزی را به بی‏برنامگی ترجیح می‏دهند.
**برونگرا** [^Extraversion]
 پر انرژی - فعال - مدعی - اجتماعی. این افراد اشتقاق زیادی برای فعالیت در شبکه‌های اجتماعی دارند.
**تطابق پذیر** [^Agreeableness]
 مهربان - مشارکت پذیر - خوش بین. این افراد معمولا صلح جو‌‏اند، به دیگران خوش بین‏اند و قابل اعتماد مردم‏اند.
**روان رنجور** [^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 برای رفع مشکل گسستگی استفاده خواهیم نمود.

##ارزیابی Bays
 در بررسی انجام شده  برای روش بیز به جدول زیر رسیدیم که طبق فرمول‏هایی که در بخش قبل آورده شده است حساب شده‏اند.

|   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      |

برای مثال یک نمونه‏ی پیش بینی شده بر اساس این روش در عکس زیر آمده، که مربوط به شخصی است که در کلاس رفتاری روان رنجور و تجربه اندوز می‏باشد ولی در اینجا در کلاس رفتاری وظیفه شناس نیز قرار گرفته است.
![شکل ۲ - یک نمونه ارزیابی شده با Bays](http://i63.tinypic.com/wl20c2.png)

##طبقه بندی SVM
با توجه به مشکلات روش بیز که بالاتر گفته شد، برای بهبود نتایج روش SVM در این فاز پیاده سازی شده است. برای پیاده سازی از کتابخانه LibSVM استفاده شده است که با تنظیمات خطی و C=۱۰ مورد استفاده قرار گرفته است. روش بدست آوردن Feature ها و مقادیرشان مانند روش بیز بوده و فقط روش طبقه بندی متفاوت است.
تمام
##ارزیابی SVM
با در نظر گرفتن روش SVM به عنوان طبقه بندی به نتایج زیر می‏رسیم که بر روی همان تست‏های قبل انجام شده است.

|   F1-Avg    |         Re-Avvg      |         Pre-Avg           |        Traits       |
|:----------|:-----------------:|:------------------:|:-----------:|
|       63.06   |        65.98            |        64.49       |      Openness       |
|     57.76      |      60.00             |         58.86     |        Conscientiousness     |
|      60.72      |         61.26             |      60.98       |        Extraversion     |
|      62.11      |         64.54             |        63.30       |       Agreeableness      |
|	63.40      |          68.73            |        65.96       |       Neuroticism      |

برای مثال یک نمونه پیش بینی شده در این روش در شکل زیر آمده که متعلق به کاربری با کلاس رفتاری روان رنجور و  تجربه اندوز است که طبق ارزیابی در کلاس وظیفه شناس نیز قرار گرفته است.
![شکل ۳ - یک نمونه ارزیابی شده با SVM](http://i65.tinypic.com/2qjy77m.png)

##تحلیل نتایج
با مقایسه نتیجه ۲ روش، می‏توان گفت روش طبقه بندی SVM از  Naïve Bays بهتر عمل کرد بعلاوه این که از نظر آماده سازی classifier ها روش SVM بسیار بهتر بوده و در زمان تقریبی ۵ دقیقه برای هر classifier است. بهبود نتایح حدوداً  ۵ درصدی می‏تواند ناشی از مشکلات گسستگی روش Bays باشد که در SVM وجود ندارد.



تمامی کد‏ها و دادگان مربوطه در [این لینک](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  Facebook use. _Computers in Human Behavior_, 25(2):578–586, 2009.
[7] 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).