پروژهای که در اینجا به آن پرداختهایم، با مجموعهای بزرگ از گفتوگوهای متنی میان کاربران و مشاوران یک شرکت آغاز شد. این چتها حاوی سوالات، ابهامات، و مشکلات متنوعی بودند که کاربران در مسیر استفاده از محصولات یا خدمات تجربه کرده بودند.
در این پروژه، هدف ما استفاده از تکنیکهای پردازش زبان طبیعی و خوشهبندی بدون نظارت بود تا بتوانیم هزاران پیام را به دستههای معنایی تقسیم کنیم. ما بهدنبال آن بودیم که از دل این دادههای خام و بدون ساختار، ساختاری تحلیلی و قابلفهم بسازیم و در نهایت بینشهایی عملی برای بهبود تجربه کاربری، آموزش و توسعه محصول استخراج کنیم.
پیامهایی که در اختیار داشتیم، بهصورت کامل از چت کاربران با مشاوران بودند. برای شروع، نیاز داشتیم که سوالات اصلی کاربران را از دل مکالمات استخراج کنیم. برای این کار از مدل GPT-4o شرکت OpenAI استفاده کردیم.
فرآیند به این صورت انجام شد که هر چت بهصورت جداگانه همراه با یک پرامپت طراحیشده، به مدل ارسال میشد و مدل، سوالات مطرحشده از سوی کاربر را بهصورت دقیق بازمیگرداند.
پس از استخراج سوالات، دادهها باید تمیز و نرمالسازی میشدند تا برای الگوریتمها قابل استفاده باشند. در این مرحله از ابزار hazm استفاده کردیم.
کارهایی که انجام شد:
برای اینکه بتوانیم شباهت معنایی بین سوالات را اندازهگیری کنیم، هر سوال باید به بردار عددی تبدیل میشد. برای این کار از مدل text-embedding-3-large شرکت OpenAI استفاده کردیم.
برای کاهش زمان پردازش و حجم فایلها، خروجی بردارها را در قالب فایلهای Parquet ذخیره کردیم. این فرمت هم حجم دادهها را به شکل قابل توجهی کاهش داد و هم سرعت خواندن دادهها در مراحل بعدی را بالا برد.
استفاده از این مدل به ما کمک کرد تا بتوانیم بهجای تشابه واژگانی، شباهت مفهومی بین سوالات را در نظر بگیریم.
برای تعیین تعداد مناسب خوشهها، از چند معیار مختلف مثل Elbow Method وSilhouette Score استفاده کردیم. در طی آزمایش، چند گزینه مختلف را بررسی کردیم:
پس از بررسی نتایج، مشخص شد که ساختار خوشهها در عدد ۵۹ منسجمتر، دقیقتر و معنادارتر است و بهترین تعادل را میان دقت و قابلیت تفسیر فراهم میکند.
نتیجه نهایی، انتخاب عدد ۵۹ بهعنوان تعداد خوشههای بهینه بود.


در این مرحله چند الگوریتم مختلف را برای خوشهبندی سوالات تست کردیم، از جمله:
پس از مقایسه خروجیها از نظر کیفیت خوشهبندی، انسجام درونی، و تفسیرپذیری، الگوریتم KMeans بهترین عملکرد را ارائه داد. سایر الگوریتمها یا به منابع پردازشی بیشتری نیاز داشتند (مثل HDBSCAN)، یا ساختار خوشهبندی مناسبی برای دادههای ما نداشتند.
در نتیجه، الگوریتم نهایی انتخابشده برای این پروژه KMeans با ۵۹ خوشه بود.

برای نامگذاری خوشهها، ابتدا سوالات هر خوشه بر اساس فاصله آنها از مرکز خوشه٬ مرتب شدند. سپس از هر خوشه، حدود ۱۰ تا ۲۰ سوال با فاصلههای مختلف نسبت به مرکز، انتخاب و بررسی شدند.
پس از بررسی نمونه سوالات منتخب، با کمک تیم مشاوران یک عنوان موضوعی مناسب برای هر خوشه در نظر گرفته شد.
خروجی نهایی یک فایل اکسل بود شامل:
خروجی خوشهبندی به ما کمک کرد تا تصویر دقیقتری از موضوعات پرتکرار در میان سوالات کاربران بهدست بیاوریم. میتوان گفت که:
این تحلیل، ما را در مسیر توسعه بهتر محصولات و خدمات، و همچنین تصمیمگیری دادهمحور در تیمهای آموزشی و فنی یاری داد.
در طول اجرای این پروژه، با دو چالش اصلی مواجه بودیم:
در ادامه این پروژه، چند مسیر توسعه مهم در نظر گرفته شده است:
این پروژه نشان داد که حتی در زبان فارسی و با دادههای بدون ساختار، میتوان با ترکیب تکنیکهای پردازش زبان طبیعی (NLP)، مدلهای هوش مصنوعی و تحلیل دادهها، به بینشهایی دست یافت که برای تصمیمگیریهای راهبردی و بهبود مستمر تجربه کاربر ارزشمند هستند.
ما توانستیم از یک مجموعه بسیار بزرگ از مکالمات کاربران، ساختاری قابل تحلیل بسازیم، سوالات را به شکل موضوعی دستهبندی کنیم و مسیرهایی برای توسعه دقیقتر و هدفمندتر خدمات ترسیم نماییم.
علاوه بر این، اجرای چنین پروژهای نشان داد که حتی با وجود محدودیت منابع سختافزاری، میتوان با طراحی منطقی و استفاده هوشمندانه از ابزارها، پروژههای دادهمحور را در مقیاس بزرگ اجرا کرد. این تجربه همچنین پایهای برای پروژههای آتی مانند تحلیل دقیقتر زیرموضوعات و پاسخگویی هوشمند به کاربران فراهم میکند.