הערה: כאשר עשרות אלפי מסמכים לא מובנים מצטברים בקורפוס – פניות לקוחות, מאמרים מדעיים, חוזים משפטיים – קטלוג ידני הופך לבלתי אפשרי.
אשכולות מקבצים מסמכים לפי דמיון סמנטי ללא תווית אחת, תוך שימוש ב-embeddings ובאלגוריתמים של למידת מכונה.
הקשיים העיקריים הם קללת הממדיות: וקטורים ישירים בני 768 ממדים מ-Sentence-BERT מייצרים אשכולות גרועים ללא הפחתת ממדים.
יישמנו pipeline לשלושה פרויקטים גדולים: מפילוח תמיכה טכנית (50 אלף דיאלוגים) ועד לארגון ארכיון ארגוני (200 אלף חוזים). סטאק: cointegrated/rubert-tiny2, UMAP, HDBSCAN.
במאמר זה נפרק כל שלב, נשווה אלגוריתמים, ונראה כיצד להשיג Silhouette Score >0.4. נכסה גם טעויות אופייניות: התעלמות ממילות עצירה, min_cluster_size שגוי, ושימוש במדד אחד בלבד.
הדבר מאפשר לחסוך עד 40% מהזמן על תיוג ידני. קבלו ייעוץ עבור הקורפוס שלכם – נעריך את הישימות של אשכולות.
צינור קיבוץ (Clustering Pipeline)
הצינור הקנוני שבו אנו משתמשים נראה כך:
- ניקוי ונרמול – הסרת תווים מיותרים, למטיזציה (pymorphy2 או Mystem), סינון מילות עצירה.
- Embeddings – המרת טקסטים לוקטורים בעלי ממד קבוע (Sentence-BERT, ruBERT).
- הפחתת ממדים – UMAP מכווץ וקטורים בעלי 768 ממדים ל-10–50 ממדים תוך שמירה על הטופולוגיה.
- קיבוץ (Clustering) – HDBSCAN או K-Means.
- פרשנות – מילות מפתח מובילות ב-TF-IDF או סיכום LLM.
- ויזואליזציה – מפה דו-ממדית באמצעות t-SNE/UMAP, תיוג צבעים של אשכולות.
דוגמת קונפיגורציה עבור HDBSCAN
import hdbscan from umap import UMAP reducer = UMAP(n_components=15, metric='cosine') clusterer = hdbscan.HDBSCAN(min_cluster_size=10, min_samples=1)
כיצד לבחור אלגוריתם קיבוץ?
בחירת האלגוריתם היא פשרה מרכזית בין מהירות לגמישות.
| אלגוריתם | חוזקות | חולשות | מתי להשתמש |
|---|---|---|---|
| K-Means | מיליוני נקודות, סיבוכיות לינארית | דורש K, רגיש לערכים חריגים | קטגוריות ידועות מראש (למשל, 10 סוגי בקשות) |
| HDBSCAN | אינו דורש K, מזהה רעש באופן אוטומטי | איטי יותר על נתונים גדולים ללא אופטימיזציה | ניתוח חקרני, מספר נושאים לא ידוע |
| BERTopic | מקצה לקצה מטקסט לנושאים, פרשנות LLM | תלוי ב-embeddings, עתיר משאבים | אב-טיפוס מהיר עם ויזואליזציה ותבניות מסמכים |
עבור פרויקט טיפוסי עם 10 אלף מסמכים, אנו בוחרים ב-HDBSCAN – הוא מספק אשכולות עמידים ומסנן רעש באופן אוטומטי. אם נדרשת פרשנות מיידית, אנו מוסיפים BERTopic.
השוואת מודלים של Embedding
| מודל | מימדיות | שפה | מהירות | איכות |
|---|---|---|---|---|
cointegrated/rubert-tiny2 |
312 | RU | גבוהה | בינונית |
sbert-base-ru-mean-tokens |
768 | RU | בינונית | טובה |
text-embedding-3-small (OpenAI) |
1536 | Multi | גבוהה | מצוינת |
איך אנחנו עושים זאת: מקרה של פילוח פניות תמיכה טכנית
משימה: לחלק 50,000 דיאלוגים של לקוחות מ-3 השנים האחרונות לאשכולות תמטיים. אין תיוג. סטאק: cointegrated/rubert-tiny2 (פשרה בין איכות למהירות), UMAP -> HDBSCAN.
לאחר האשכול, כל אשכול פורש באמצעות TF-IDF 10 המילים המובילות ובנוסף באמצעות GPT-4o, תוך העברת 10 דיאלוגים אקראיים מהאשכול.
תוצאה: 23 נושאים, כולל "בעיות תשלום", "תלונות על משלוח", "בקשות לתיעוד". דיוק זיהוי הנושא לפי המסמך הראשון – 89%.
ניואנס קריטי: ללא הפחתת ממדים באמצעות UMAP, מדדי האשכול יורדים ב-20–30% בגלל "קללת הממדיות". אנחנו מגדירים n_components=15, metric='cosine' – זה מעלה את Silhouette Score מ-0.25 ל-0.41.
מה כלול בעבודה
אנו מציעים מחזור יישום מלא של קיבוץ (clustering) במפתח-על (turnkey) תוך 2–3 שבועות:
- ביקורת קורפוס: הערכת נפח, איכות ומאפיינים לשוניים.
- בחירת embeddings ואלגוריתמים למשימה שלך (אנו בודקים 3–4 תצורות).
- יישום Pipeline ב-Python:
pandas+scikit-learn+umap-learn+hdbscan/bertopic. - בדיקה על מדגם holdout: מדדים + ניתוח חזותי של המפה.
- פריסה כמכולת Docker או REST API על FastAPI.
- תיעוד: הוראות אימון מחדש, תיאורי אשכולות, לוח בקרה (Grafana/Streamlit).
אנו מבטיחים שקיפות – אתה מקבל סקריפטים ניתנים לשחזור ותיאור מודל בפורמט Model Card.
הערכת איכות ללא תוויות
מדדים פנימיים עוזרים לסנן תצורות כושלות:
- ציון Silhouette – קומפקטיות והפרדה של אשכולות. ערך יעד >0.3.
- מדד Davies-Bouldin – ככל שנמוך יותר, כך טוב יותר.
- קוהרנטיות (UMass/Word2Vec) – קוהרנטיות סמנטית של מילות האשכול המובילות. עבור טקסט ברוסית, אנו משתמשים בוקטורי fastText מאומנים מ-RusVectōrēs.
בנוסף, אנו מבצעים אימות מומחים: מדגם אקראי של 100 מסמכים, שתויגו על ידי 3 אנליסטים. אי-הסכמות נפתרות על ידי הצבעה – זה מספק אמת בסיס לחישוב דיוק ידני.
טעויות אופייניות בקיבוץ טקסטים
- התעלמות ממילות עצירה ולמטיזציה: ה-embeddings "נסתמות" מרעש תדירות, והאשכולות מאבדים משמעות.
min_cluster_sizeנמוך מדי ב-HDBSCAN (פחות מ-5): אנו מקבלים מאות מיקרו-אשכולות חסרי מובהקות סטטיסטית.- קיבוץ ישיר של וקטורים בעלי 768 ממדים ללא UMAP: קללת הממדיות הורסת את המדדים.
- שימוש במדד איכות אחד בלבד: Silhouette טוב ל-K-Means, אך עבור HDBSCAN עדיף לשלב אותו עם Davies-Bouldin.
למה לעבוד איתנו?
הניסיון שלנו ב-NLP הוא 5+ שנים, למעלה מ-50 פרויקטים שהושלמו של עיבוד טקסט, כולל clustering, מערכות RAG ו-fine-tuning של LLM. אנחנו מבינים איך לאמן מודל על הקורפוס שלך כך שהתוצאה תהיה יציבה בפרודקשן. העלות מחושבת לאחר אבחון.
כדי להעריך את הקורפוס שלך ולבחור את ה-pipeline האופטימלי, צור קשר – נכין פתרון turnkey תוך 2–3 שבועות. הזמן פרויקט פיילוט כדי לראות את התוצאה על הנתונים שלך.







