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

برای تعاملات اجتماعی لازم است که رفتار انسان را بفهمیم. شخصیت یکی از جلوه‌های بنیادی آن است که بوسیله‏ی آن می‏توانیم درک درستی از خصوصیات رفتاری داشته باشیم. بدیهی است که ارتباط نزدیکی میان شخصیت و فعالیت در شبکه‌های اجتماعی مانند فیسبوک وجود دارد. در اینجا قصد داریم تا بر اساس پروفایل فیسبوک افراد شخصیت آن‌ها را شناسایی کنیم.

۱. مقدمه

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

۱.۱. کاربرد

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

۱.۲. مدل FFM یا BIG FIVE MODEL

در این جا برای مدل کردن شخصیت افراد از مدل FFM استفاده می‏کنیم که در حال حاضر گسترده‏ترین و بطور‏کلی یکی از پذیرفته شده‏ترین مدل‌های شخصیتی است و به ۵ بعد تقسیم می شود همچنین توانایی پیش بینی شخصیت بر اساس این مدل در [5] بررسی شده است. در این مدل شخصیت انسان بصورت یک بردار پنج تایی از مقادیر تبدیل می‏شود که هر‌کدام متناظر با یکی از ۵ بعد آن می‏باشد. این مدل محبوب‏ترین مدل میان محققین علوم کامپیوتر است که برای شبیه سازی ویژگی‌های شخصیتی هم به کار می‏رود. این مدل رفتاری شامل ۵ بعد است که به OCEAN معروف است و به شرح زیر می باشد:
تجربه اندوز 3
هنر دوست - کنجکاو - خلاق - باهوش. این‌ها معمولا ایده‌های غیر معمول و تجربه‌های زیادی دارند.
وظیفه شناس 4
موثر - سازمان یافته - مسئولیت پذیر. این افراد بسیار قابل اطمینان بوده و هدف خاصی را دنبال می‏کنند و همچنین برنامه ریزی را به بی‏برنامگی ترجیح می‏دهند.
برونگرا 5
پر انرژی - فعال - مدعی - اجتماعی. این افراد اشتقاق زیادی برای فعالیت در شبکه‌های اجتماعی دارند.
تطابق پذیر 6
مهربان - مشارکت پذیر - خوش بین. این افراد معمولا صلح جو‌‏اند، به دیگران خوش بین‏اند و قابل اعتماد مردم‏اند.
روان رنجور 7
حساس - دستپاچه - دلواپس. افراد با این ویژگی خیلی زود احساس و حالتشان عوض می‏شود. این افراد معمولا نامطمئن و بی ثباتند.

۱.۳. هدف

هدف مسئله شناسایی شخصیت افراد بر اساس ویژگی‌های پروفایل فیسبوک مانند تعداد دوستان، تعداد گروه‌ها، تعداد تغییر وضعیت‌ها، … و همچنین بر اساس محتوای پست‌ها و وضعیت‌های وی است و در نهایت مقایسه نتایج بدست آمده با نتایج پرسشنامه‏ای که توسط خود فرد پر شده و تلاش برای بهبود نتایج خواهد بود.

۲. کارهای مرتبط

بطور کلی ۲ روش برای بررسی رفتار کاربران در شبکه‌های اجتماعی اتخاذ شده است. روش اول از انواع یادگیری ماشین8 برای ساخت مدل رفتاری فقط بر اساس ویژگی‌های شبکه مانند تعداد دوستان، گروه‌ها، لایک‌ها و … بهره می‏گیرد. ولی روش دوم فعالیت‌های کاربران را به همراه محتوای متون انتشار یافته توسط کاربر به عنوان نشانه‌های زبانی9 در نظر می‏گیرد. در هر کدام از این روش‌ها تحقیقات متعددی صورت گرفته که در اینجا به معرفی آن‏ها می‏پردازیم.

۲.۱. تنها بر اساس ویژگی‏های شبکه[2]

در تحقیقات مختلف فرضیات مختلفی مبنی بر اینکه هر‏کدام از ویژگی‌های شبکه بر روی کدام ابعاد رفتاری تاثیر می‏گذارند، ارائه می‏شود. برای مثال در [6] فرض‌های متعددی در ارتباط با ابعاد مدل FFT و ویژگی‌های شبکه در نظر گرفته شده و یا در [2] فرض شده است که:

  1. افراد تجربه اندوز و روان‏رنجور ارتباط مستقیمی با تعداد بروز رسانی‌های وضعیت، عکس‌ها، گروه‌ها و لایک‌ها دارند.

  2. افراد وظیفه شناس ارتباط معکوسی با استفاده از هر‏کدام از جلوه‌های فیسبوک دارند.

  3. برون گرایان ارتباط مستقیمی با استفاده از هر‏کدام از قسمت‌های فیسبوک دارند.

  4. افراد تطابق پذیر ارتباط مستقیمی با تعداد دوستان، گروه‌ها و لایک‌ها دارند.
    ویژگی‌هایی که در [2] ‪ طبق این روش صورت گرفته است عبارتند از:
    . تعداد دوستان - تعداد گروه‌ها -تعداد لایک‌ها- تعداد عکس‌های آپلود شده - تعداد بروز رسانی وضعیت - تعداد بار‌هایی که در عکس دیگران برچسب زده شده ‪10

۲.۱.۱. درستی فرضیات

برای نشان دادن میزان درستی فرضیات کاربران با ویژگی‌های مشابه را در یک خوشه11 قرار داده می‏شوند و مقدار میانگین امتیاز رفتار شخصیتی برای هر گروه را آزمایش می‏شود. n کاربر بر اساس ویژگی‏های در نظر گرفته شده بصورت صعودی مرتب می شوند تا لیست u_1,u_2,...,u_n بدست آید. سپس لیست به q=\frac{n}k مجموعه‌ی مجزا تقسیم می شود بطوری که برای i امین مجموعه تمام مقادیر آن بین c_{i_q}, c_{i+1_q} قرار می‏گیرد. تقسیم بندی کاربران به گروه‌های مساوی ولی صعودی بر اساس مقادیر ویژگی‌ها این امکان را می‏دهد تا بتوان رابطه بین ویژگی‌ها و رفتار شخصیتی را نشان داد. همچنین برای نشان دادن این رابطه نمودار پراکندگی خوشه‏ای 12 رسم می‏شود که محور عمودی مقدار میانگین ویژگی‌ها و محور افقی میانگین امتیاز رفتار شخصیتی را نشان می‏دهد. نمونه‏ای از این نمودار برای بررسی وجود ارتباط بین تعداد لایک‌های کاربران و تجربه اندوز بودنشان در شکل زیر آمده است:

شکل ۱ - نمودار پراکندگی خوشه ای

۲.۱.۲. پیش بینی شخصیت بر اساس این روش

برای پیش بینی ابتدا از رگرسیون چند متغیری خطی 13 با ۱۰ برابر اعتبار متقاطع 14 استفاده می‏شود. برای برازش15 از 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].

۲.۱.۳. محدودیت‏ها

در این روش اطلاعات بصورت خیلی سطح بالا مورد استفاده قرار می‏گیرند برای مثال تعداد لایک‌ها در نظر گرفته شده تا این که چه مواردی لایک شده و یا تعداد بروز رسانی‌های وضعیت به جای اینکه چه کلماتی در آن‌ها آمده است در نظر گرفته می‏شود.

۲.۲. بر اساس ویژگی‏های شبکه به همراه نشانه‏های زبانی

مانند آنچه در روش قبل گفته شد کاربران می‏توانند جمله‏هایی به عنوان درباره من16 و یا در وضعیت‌هایشان بنویسند.

۲.۲.۱. بدنه متن

متن‌های مورد بررسی علاوه بر کلمات و جملات شامل مخفف‌ها (BRB-be right back, …) و شکلک‌ها (d:) و زبان عامیانه و انواع علائم اختصاری می‏باشد. بدلیل اینکه هر کدام از این نشانه‌ها معانی مشخصی برای تشخیص شخصیت دارند، آن‌ها را دست نخورده باقی می‏گذاریم.

۲.۲.۲. پیش پردازش

معمولا برای بررسی متن و بدست آوردن ویژگی‌ها از ۲ روش استفاده می‏شود.

ابزار LIWC

با استفاده از این ابزار ۸۱ ویژگی در ۵ دسته بندی کلی می توان یافت : ۱)تعداد استاندارد‌ها(تعداد کلمات، تعداد گزاره‌ها و …) ۲) پردازش روانشناختی (تعداد کلمات‌های غضبناک، تعداد کلمات احساسی و …) ۳) نسبی( کلمات درباره زمان، تعداد فعل‌های آینده یا گذشته و …) ۴) نگرانی‌های شخصی(تعداد کلمات بکار رفته درباره‌ی شغل، پول، سلامتی و …) ۵) ابعاد زبان شناسی (تعداد علائم نگارشی، تعداد قسم‌های بکار رفته و …) [7, 9].

روش Bag-Of-Words

در این روش نشانه‌ها 17 به عنوان ویژگی‌ها استفاده می‏شود. در نتیجه یک نمونه طبقه‏بندی 18 برداری از نشانه‌ها است، که در متن یافت می‏شود. سپس کلمات با استفاده از پیدا کردن کلمات کلیدی مانند tf-idf به مقادیر ویژگی تبدیل می‏شود. در این روش یک بدنه با ۶۵۴۵ نمونه شامل ۱۵۰۰۰ ویژگی می‏شود [8].

۲.۲.۳. طبقه بندی19

در [۹] از Support Vector Machine ,k-nearest neighbors ,Naïve Bayes و در [۸] از روش‏های Multinomial Naïve Bayes ,Sequential Minimal Optimization ,Bayesian Logistic Regression برای طبقه‏بندی استفاده شده است در اینجا روش‌های [8] را به اختصار توضیح می‏دهیم.

روش SMO

یک روش پیاده سازی برای SVM است که مسئله را به زیر مسئله‏های ۲ بعدی تقسیم می‏کند که بصورت تحلیلی حل می‏شوند. همچنین نیاز به یک الگوریتم بهینه ساز عددی 20 و فضای ماتریس برای ذخیره سازی از بین می‏رود. در حالت کلی سرعت بیشتر و دقت بالا تری نسبت به SVM دارد.

روش BRL

در آمار بیزی توزیع‏های قبلی به عنوان ضریب رگرسیون قرار می‏گیرد. در BRL از پیشین21‌های متفاوتی (مانند لاپلاس یا گاوس) استفاده می‏کنیم تا از تولید مدل‌های پراکنده برای متون اجتناب کنیم.

روش 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

۳.۷. طبقه بندی 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

۳.۹. تحلیل نتایج

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

تمامی کد‏ها و دادگان مربوطه در این لینک قابل دسترسی است.

۴. کارهای آینده

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

۵. مراجع

[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).


  1. status updates

  2. interests

  3. Openness

  4. Conscientiousness

  5. Extraversion

  6. Agreeableness

  7. Neuroticism

  8. Machine Learning

  9. linguistic cues

  10. tagged

  11. cluster

  12. Clustered Scatter Plots

  13. multivariate linear regression

  14. 10fold cross validation

  15. goodness-of-fit

  16. About Me

  17. Tokens

  18. classification instance

  19. classifiers

  20. numerical optimization algorithm

  21. Priors

تایید شده

ضمن تشکر از اینکه زحمت کشیدید و فاز اول را انجام دادید ابتدا چند نکته نگارشی و کلی را عرض می‌کنم و سپس به بیان سایر موارد داخل متن می‌پردازم. لازم به ذکر است شما به طور کلی انتظارات را برای این فاز برآورده کرده‌اید که از این بابت به شما تبریک عرض میکنم.
برای درج منابع و اشاره به آن‌ها در متن شما از پرانتز استفاده کرده‌اید. در markdown نویسی برای درج منابع شماره آن‌ها در متن را به صورت لینک قرار دهید تا زمانی که بر روی آن کلیک می‌شود منبع اشاره شده را در قسمت منابع نشان دهد. همچنین بهتر است با کلیک بر روی منبع در قسمت منابع آن مقاله یا سایت باز شود.
برای شماره‌گذاری زیربخش‌ها از / استفاده کرده‌اید که مناسب نمی‌باشد و بهتر است از - استفاده شود.
به طور کلی در قسمت کارهای مرتبط انتظار می‌رود بیش از اینکه به توضیح الگوریتم‌های مختلف بپردازید، کارهای مشابه پروژه خودتان را بررسی کنید و به تحلیل مقالات سایرین بپردازید. هرچند شما در خلال بررسی کارهای مرتبط به صورت ضمنی به چند مقاله اشاره کرده‌اید ولی بهتر بود صریحا در داخل متن چند مقاله را بررسی می‌کردید و نتایجی که گزارش کرده‌اند را تحلیل می‌نمودید.
امیدوارم در فازهای آتی نیز موفق باشید.

تایید شده

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

تایید شده

با عرض سلام و خسته نباشید،
پروژه به خوبی توضیح داده شده و پیاده‌سازی شده است با این حال موارد قابل اصلاحی وجود دارد:

  1. قسمت‌هایی که باید از نیم‌فاصله استفاده شود سر‌هم نمایش داده می‌شوند، به نظر می‌آید نیم‌فاصله را در ادیتوری که در آن می‌نوشتید رعایت کرده باشید ولی بعد از کپی کردن در بوته دچار مشکل شده باشد (زیرا کپی این متن در ادیتور به درستی نمایش داده می‌شد)، در موارد معدودی هم به جای نیم‌فاصله از فاصله استفاده شده است.

  2. داخل کد خطوط شبیه به همی وجود دارد که در مواردی می‌توانند با هم ترکیب شوند تا از اطناب جلوگیری شود و کد از ظاهر مناسب‌تری برخوردار شود برای مثال 20 دستور if واقع در خطوط 307 تا 350 در فایل SherLockWithSVM.py را با or کردن شرط‌ها می توان به 5 دستور کاهش داد.

  3. بهتر بود مشخص می‌کردید برای پیاده‌سازی از چه منبعی استفاده کرده‌اید.

  4. بهتر بود دلیل انتخاب این روش‌ها برای پیاده‌سازی و تفاوت کار خود را با کا‌رهایی که تا کنون انجام شده‌اند توضیح می‌دادید.

  5. فرمول ها شماره ندارند.
    موفق باشید

رد شده

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

رد شده

پروژه شما کامل است و نقد خاصی به مقاله شما ندارم
موفق باشید

تایید شده

سلام، پروژه جالبی رو انجام داده‌اید که می‌توان در موارد مختلف آن را به‌کار برد. متن پروژه کاملا گویاست و خواننده با مشکل خاصی روبرو نمی‌شود. تنها به ذکر چند نکته بسنده می‌کنم.

  • تشخیص و ارزیابی Featureها به خوبی صورت پذیرفته است.

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

  • در بخش طبقه‌بندی SVN اگر از sklearn استفاده می‌کردید بهتر بود.

  • بهتر بود مدل‌های شخصیتی دیگر مانند entp که خیلی معروف هستند را هم بررسی می‌کردید.

موفق باشید.

تایید شده

سلام
+قواعد نگارشی را به خوبی رعایت کرده اید ولی تمام نیم فاصله ها به صورت به هم چسبیده تایپ شده اند.
+موضوع شما موضوع جالبی برای خوانندگان است و شما این موضوع را به خوبی شرح داده اید که به فهم خواننده کمک زیادی می‌کند.
پیشنهاد-شاید اگر از بیز چند جمله ای استفاده می‌کردید نتیجه بهتری میگرفتید.
-اگر نتیجه ای که بدست آوردید را با کارهای دیگر که در این زمینه انجام شده مقایسه میکردید ارزش کار شما را بیشتر نمایان میکرد.
-بهتر است که فایل read me مناسب تری برای پروژه خود در گیت هاب تهیه کنید تا افرادی که به سایت بوته مراجعه نمی‌کنند نیز بتوانند از پروژه شما بهره مند شوند
موفق باشید.

تایید شده

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

تایید شده

سلام
امیدوارم از انجام این پروژه لذت برده باشید و انجام این نوع پروژه برایتان تجربه خوبی بوده باشد. تشکر می کنم از زحمتی که کشیدید برای انجام پروژه و چند نکته ای که به نظرم می تواند برای کارهایی که در آینده انجام می دهید مفید باشد را ذکر می کنم:

  • به نظرم برای انجام این فاز عجله داشته اید و وقت کافی نگذاشته اید. در متن تان آثار شتابزدگی وجود دارد. انتظار داشتیم در مورد روش هایی که پیاده سازی کرده اید بیشتر توضیح می دادید و تحلیل بهتری می داشتید.

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

  • کدتان را می توانستید خیلی بهینه تر بزنید. همچنین فقط بعضی از قسمت های کد کامنت گذاری شده اند.

  • خوب بود یک readme درست و حسابی برای پروژه تان روی گیت هاب درست می کردید.

امیدوارم این مطالب به شما کمک کند تا در آینده پروژه های بهتری انجام دهید.
موفق باشید