תמונה על ידי מייקי אספרגוסה
מדי יום, אנו מתמודדים רוב הזמן עם טקסט ללא תווית ולא ניתן להשתמש באלגוריתמי למידה מפוקחים כלל כדי לחלץ מידע מהנתונים. תת-שדה של שפה טבעית יכול לחשוף את המבנה הבסיסי בכמויות גדולות של טקסט. דיסציפלינה זו נקראת Topic Modeling, המתמחה בחילוץ נושאים מטקסט.
בהקשר זה, גישות קונבנציונליות, כמו הקצאת Dirichlet סמויה ו-Non-negative Matrix Factorization, הוכיחו שאינן תופסות היטב את היחסים בין מילים מכיוון שהן מבוססות על שקית מילים.
מסיבה זו, אנו הולכים להתמקד בשתי גישות מבטיחות, Top2Vec ו-BERTopic, המתמודדות עם החסרונות הללו על ידי ניצול מודלים של שפה מאומנים מראש ליצירת נושאים. בואו נתחיל!
Top2Vec הוא מודל המסוגל לזהות אוטומטית נושאים מהטקסט על ידי שימוש בוקטורי מילים מאומנים מראש ויצירת נושאים, מסמכים ווקטורי מילים מוטבעים משמעותיים.
בגישה זו, ניתן לפצל את ההליך לחילוץ נושאים לשלבים שונים:
- צור הטבעה סמנטית: נוצרים וקטורים של מסמך ומילה מוטבעים במשותף. הרעיון הוא שמסמכים דומים צריכים להיות קרובים יותר בחלל ההטמעה, בעוד שמסמכים לא דומים צריכים להיות מרוחקים ביניהם.
- צמצם את הממדיות של הטבעת המסמך: היישום של גישת הפחתת הממדיות חשוב כדי לשמר את רוב השונות של הטבעת מסמכים תוך צמצום המרחב הממדים הגבוה. יתר על כן, הוא מאפשר זיהוי של אזורים צפופים, בהם כל נקודה מייצגת וקטור מסמך. UMAP היא הגישה האופיינית להפחתת הממדיות שנבחרה בשלב זה מכיוון שהיא מסוגלת לשמר את המבנה המקומי והעולמי של הנתונים הגבוהים.
- זיהוי אשכולות של מסמכים: HDBScan, גישת אשכולות מבוססת צפיפות, מיושמת כדי למצוא אזורים צפופים של מסמכים דומים. כל מסמך מוקצה כרעש אם הוא לא נמצא באשכול צפוף, או תווית אם הוא שייך לאזור צפוף.
- חשב צנטרואידים בחלל ההטמעה המקורי: המרכז מחושב על ידי התחשבות במרחב הממדים הגבוה, במקום במרחב ההטמעה המופחת. האסטרטגיה הקלאסית מורכבת בחישוב הממוצע האריתמטי של כל וקטורי המסמך השייכים לאזור צפוף, שהתקבלו בשלב הקודם עם HDBSCAN. בדרך זו, נוצר וקטור נושא עבור כל אשכול.
- מצא מילים עבור כל וקטור נושא: וקטורי המילה הקרובים ביותר לוקטור המסמך הם המייצגים ביותר מבחינה סמנטית.
דוגמה של Top2Vec
במדריך זה, אנו הולכים לנתח את הביקורות השליליות של מקדונלד'ס מתוך מערך נתונים זמין ב- העולם. זיהוי הנושאים מסקירות אלה יכול להיות בעל ערך עבור הרב לאומי כדי לשפר את המוצרים ואת הארגון של רשת המזון המהיר הזו במקומות בארה"ב שסופקו על ידי הנתונים.
import pandas as pd
from top2vec import Top2Vec file_path = "McDonalds-Yelp-Sentiment-DFE.csv"
df = pd.read_csv( file_path, usecols=["_unit_id", "city", "review"], encoding="unicode_escape",
)
df.head()
docs_bad = df["review"].values.tolist()
בשורת קוד אחת, אנו הולכים לבצע את כל השלבים של top2vec שהוסבר קודם לכן.
topic_model = Top2Vec( docs_bad, embedding_model="universal-sentence-encoder", speed="deep-learn", tokenizer=tok, ngram_vocab=True, ngram_vocab_args={"connector_words": "phrases.ENGLISH_CONNECTOR_WORDS"},
)
הטיעונים העיקריים של Top2Vec הם:
- docs_bad: היא רשימה של מחרוזות.
- אוניברסלי-משפט-encoder: הוא מודל ההטמעה המוכשר מראש שנבחר.
- deep-learn: הוא פרמטר שקובע את איכות וקטור המסמך המיוצר.
topic_model.get_num_topics() #3
topic_words, word_scores, topic_nums = topic_model.get_topics(3) for topic in topic_nums: topic_model.generate_topic_wordcloud(topic)
הכי
מהמילה עננים, אנו יכולים להסיק שהנושא 0 הוא על תלונות כלליות על השירות במקדונלד, כמו "שירות איטי", "שירות נורא" ו"הזמנה שגויה", בעוד שהנושא 1 ו-2 מתייחסים בהתאמה לאוכל ארוחת בוקר ( מקמאפין, ביסקוויט, ביצה) וקפה (אייס קפה וכוס קפה).
כעת, אנו מנסים לחפש מסמכים באמצעות שתי מילות מפתח, שגויות ואיטיות:
( documents, document_scores, document_ids,
) = topic_model.search_documents_by_keywords( keywords=["wrong", "slow"], num_docs=5
)
for doc, score, doc_id in zip(documents, document_scores, document_ids): print(f"Document: {doc_id}, Score: {score}") print("-----------") print(doc) print("-----------") print()
פלט:
Document: 707, Score: 0.5517634093633295
-----------
horrible.... that is all. do not go there.
----------- Document: 930, Score: 0.4242547340973836
-----------
no drive through :-/
----------- Document: 185, Score: 0.39162203345993046
-----------
the drive through line is terrible. they are painfully slow.
----------- Document: 181, Score: 0.3775083338082392
-----------
awful service and extremely slow. go elsewhere.
----------- Document: 846, Score: 0.35400602635951994
-----------
they have bad service and very rude
-----------
"BERTopic היא טכניקת מודלים של נושאים הממנפת שנאים ו-c-TF-IDF ליצירת אשכולות צפופים המאפשרים נושאים הניתנים לפירוש בקלות תוך שמירה על מילים חשובות בתיאורי הנושא."
כפי שהשם מרמז, BERTopic משתמש בדגמי שנאים רבי עוצמה כדי לזהות את הנושאים הקיימים בטקסט. מאפיין נוסף של אלגוריתם דוגמנות נושא זה הוא השימוש בגרסה של TF-IDF, הנקראת וריאציה מבוססת כיתה של TF-IDF.
כמו Top2Vec, הוא לא צריך לדעת את מספר הנושאים, אבל הוא מחלץ את הנושאים באופן אוטומטי.
יתרה מכך, בדומה ל-Top2Vec, זהו אלגוריתם הכולל שלבים שונים. שלושת השלבים הראשונים זהים: יצירת מסמכי הטמעה, הפחתת מימדים עם UMAP ואשכולות עם HDBScan.
השלבים העוקבים מתחילים לסטות מ-Top2Vec. לאחר מציאת האזורים הצפופים עם HDBSCAN, כל נושא מסומן לייצוג של שק של מילים, אשר לוקח בחשבון אם המילה מופיעה במסמך או לא. לאחר שהמסמכים השייכים לאשכול נחשבים למסמך ייחודי ומוחל TF-IDF. לכן, עבור כל נושא, אנו מזהים את המילים הרלוונטיות ביותר, שצריכות להיות עם ה-c-TF-IDF הגבוה ביותר.
דוגמה של BERTopic
אנו חוזרים על הניתוח על אותו מערך נתונים.
אנו הולכים לחלץ את הנושאים מהביקורות באמצעות BERTopic:
model_path_bad = 'model/bert_bad'
topic_model_bad = train_bert(docs_bad,model_path_bad)
freq_df = topic_model_bad.get_topic_info()
print("Number of topics: {}".format( len(freq_df)))
freq_df['Percentage'] = round(freq_df['Count']/freq_df['Count'].sum() * 100,2)
freq_df = freq_df.iloc[:,[0,1,3,2]]
freq_df.head()
הטבלה המוחזרת על ידי המודל מספקת מידע על 14 הנושאים שחולצו. הנושא מתאים למזהה הנושא, למעט כל החריגים שמתעלמים מהם המסומנים כ-1.
כעת, נעבור לחלק המעניין ביותר בנוגע להדמיה של הנושאים שלנו לגרפים אינטראקטיביים, כגון הדמיה של המונחים הרלוונטיים ביותר לכל נושא, מפת המרחק הבין-נושא, הייצוג הדו-מימדי של מרחב ההטמעה ו היררכיית הנושאים.
בואו נתחיל להציג את תרשימי העמודות של עשרת הנושאים המובילים. עבור כל נושא, נוכל לראות את המילים החשובות ביותר, ממוינות בסדר יורד בהתבסס על ציון c-TF-IDF. ככל שמילה רלוונטית יותר, כך הציון גבוה יותר.
הנושא הראשון מכיל מילים כלליות, כמו מיקום ואוכל, נושא 1 סדר והמתנה, נושא 2 הגרוע ביותר ושירות, נושא 3 מקום ומלוכלך, מודעה וכן הלאה.
לאחר הדמיית תרשימי העמודות, הגיע הזמן להציץ במפת המרחקים הבין-נושאים. אנו מצמצמים את הממדיות של ציון c-TF-IDF למרחב דו מימדי כדי להמחיש את הנושאים בעלילה. בחלק התחתון ישנו סליידר המאפשר לבחור את הנושא שיצבע באדום. אנו יכולים לשים לב שהנושאים מקובצים בשני אשכולות שונים, אחד עם נושאים כלליים כמו אוכל, עוף ומיקום, ואחד עם היבטים שליליים שונים, כגון השירות הגרוע ביותר, מלוכלך, מקום וקור.
הגרף הבא מאפשר לראות את הקשר בין הביקורות והנושאים. בפרט, זה יכול להיות שימושי כדי להבין מדוע סקירה מוקצית לנושא ספציפי ומתיישרת עם המילים הרלוונטיות ביותר שנמצאו. לדוגמה, אנו יכולים להתמקד באשכול האדום, המתאים לנושא 2 עם כמה מילים על השירות הגרוע ביותר. המסמכים באזור הצפוף הזה נראים שליליים למדי, כמו "שירות לקוחות נורא ואוכל אפילו גרוע יותר".
במבט ראשון, לגישות אלה יש היבטים משותפים רבים, כמו מציאת מספר הנושאים באופן אוטומטי, אין צורך בעיבוד מוקדם ברוב המקרים, יישום UMAP כדי להפחית את הממדיות של הטבעת מסמכים, ולאחר מכן, HDBSCAN משמש עבור מדגמים את הטבעות המסמכים המופחתות הללו, אך הן שונות מהותית כאשר מסתכלים על האופן שבו הם מקצים את הנושאים למסמכים.
Top2Vec יוצר ייצוגי נושא על ידי מציאת מילים הממוקמות קרוב למרכז של אשכול.
בשונה מ-Top2Vec, BERTopic לא לוקחת בחשבון את מרכז האשכול, אבל היא ראתה את כל המסמכים באשכול כמסמך ייחודי ומחלצת ייצוגי נושא באמצעות וריאציה מבוססת כיתה של TF-IDF.
Top2Vec | BERTopic |
האסטרטגיה לחילוץ נושאים על סמך מוקדי האשכול. | האסטרטגיה לחילוץ נושאים המבוססים על c-TF-IDF. |
זה לא תומך במודל דינמי נושאים. | הוא תומך במודל דינמי נושאים. |
הוא בונה ענני מילים לכל נושא ומספק כלי חיפוש לנושאים, מסמכים ומילים. | זה מאפשר בניית עלילות הדמיה אינטראקטיביות, המאפשרות פרשנות של הנושאים שחולצו. |
דוגמנות הנושא היא תחום הולך וגדל של עיבוד שפה טבעית וישנם יישומים אפשריים רבים, כמו ביקורות, פוסטים אודיו ומדיה חברתית. כפי שהוכח, מאמר זה מספק סקירה כללית של Topi2Vec ו-BERTopic, שהן שתי גישות מבטיחות, שיכולות לעזור לך לזהות נושאים עם כמה שורות קוד ולפרש את התוצאות באמצעות הדמיות נתונים. אם יש לך שאלות לגבי טכניקות אלה או שיש לך הצעות אחרות לגבי גישות אחרות לאיתור נושאים, כתוב זאת בהערות.
יוגניה אנלו כיום הוא עמית מחקר במחלקה להנדסת מידע של אוניברסיטת פדובה, איטליה. פרויקט המחקר שלה מתמקד בלמידה מתמשכת בשילוב עם איתור אנומליות.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה כאן.
- מקור: https://www.kdnuggets.com/2023/01/topic-modeling-approaches-top2vec-bertopic.html?utm_source=rss&utm_medium=rss&utm_campaign=topic-modeling-approaches-top2vec-vs-bertopic
- 1
- 10
- 100
- 7
- a
- יכול
- אודות
- חֶשְׁבּוֹן
- Ad
- כתובת
- לאחר
- אַלגוֹרִיתְם
- אלגוריתמים
- מיושר
- תעשיות
- הַקצָאָה
- מאפשר
- מאפשר
- כמויות
- אנליזה
- לנתח
- ו
- גילוי חריגות
- אחר
- בקשה
- יישומים
- יישומית
- גישה
- גישות
- AREA
- אזורים
- טיעונים
- מאמר
- היבטים
- שהוקצה
- אודיו
- באופן אוטומטי
- זמין
- רע
- בָּר
- מבוסס
- כי
- בֵּין
- תַחתִית
- ארוחת בוקר
- בִּניָן
- בונה
- חישוב
- נקרא
- לא יכול
- מסוגל
- ללכוד
- מקרים
- שרשרת
- מאפיין
- תרשימים
- נבחר
- עִיר
- קלאסי
- סְגוֹר
- קרוב יותר
- אשכול
- קיבוץ
- קוד
- קָפֶה
- משולב
- הערות
- Common
- תלונות
- נחשב
- בהתחשב
- מכיל
- הקשר
- מקובל
- תוֹאֵם
- מתכתב
- לִיצוֹר
- נוצר
- יוצר
- יוצרים
- יצירה
- כוס
- כיום
- לקוח
- שירות לקוחות
- נתונים
- יְוֹם
- התמודדות
- מופגן
- מַחלָקָה
- איתור
- קובע
- אחר
- מרחק
- רחוק
- לִסְטוֹת
- מסמך
- מסמכים
- לא
- חסרונות
- נהיגה
- לנסוע דרך
- דינמי
- כל אחד
- בקלות
- במקום אחר
- מוטבע
- הנדסה
- אֲפִילוּ
- דוגמה
- אלא
- מוסבר
- תמצית
- תמציות
- מאוד
- מהר
- בחור
- מעטים
- שדה
- מציאת
- ראשון
- להתמקד
- מרוכז
- מזון
- מצא
- החל מ-
- ביסודו
- כללי
- ליצור
- נוצר
- לקבל
- גלוֹבָּלִי
- Go
- הולך
- גרף
- גרפים
- גדל
- לעזור
- היררכיה
- גָבוֹהַ
- גבוה יותר
- הגבוה ביותר
- HTTPS
- רעיון
- הזדהות
- מזהה
- לזהות
- זיהוי
- לייבא
- חשוב
- לשפר
- in
- מידע
- במקום
- אינטראקטיבי
- מעניין
- פענוח
- IT
- איטליה
- KDnuggets
- שמירה
- לדעת
- תווית
- שפה
- גָדוֹל
- למידה
- מנופים
- קו
- קווים
- לינקדין
- רשימה
- מקומי
- ממוקם
- מיקום
- מקומות
- נראה
- הסתכלות
- ראשי
- רב
- מַפָּה
- מַטרִיצָה
- מקדונלד
- משמעותי
- מדיה
- מודל
- דוגמנות
- דוּגמָנוּת
- מודלים
- יותר
- רוב
- רב לאומי
- שם
- טבעי
- שפה טבעית
- עיבוד שפה טבעית
- צורך
- שלילי
- הבא
- רעש
- מספר
- רב
- להתבונן
- מושג
- ONE
- להזמין
- ארגון
- מְקוֹרִי
- אחר
- דובי פנדה
- פרמטר
- חלק
- מסוים
- אחוזים
- לבצע
- ביטויים
- מקום
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- נקודה
- אפשרי
- הודעות
- חזק
- להציג
- קודם
- קוֹדֶם
- תהליך
- מיוצר
- מוצרים
- פּרוֹיֶקט
- מבטיח
- ובלבד
- מספק
- איכות
- שאלות
- טעם
- Red
- להפחית
- מופחת
- הפחתה
- בדבר
- קשר
- מערכות יחסים
- רלוונטי
- לחזור על
- נציגות
- נציג
- מייצג
- מחקר
- תוצאות
- לגלות
- סקירה
- חוות דעת של לקוחותינו
- אותו
- חיפוש
- חיפוש
- בחירה
- שרות
- צריך
- לְהַצִיג
- הראה
- מראה
- דומה
- באופן דומה
- since
- יחיד
- המחוון
- להאט
- So
- חֶברָתִי
- מדיה חברתית
- פוסטים ברשתות החברתיות
- כמה
- מֶרחָב
- מיוחד
- ספציפי
- לפצל
- שלב
- צעדים
- אִסטרָטֶגִיָה
- מִבְנֶה
- כזה
- מציע
- למידה מפוקחת
- תמיכה
- תומך
- שולחן
- לקחת
- לוקח
- טכניקות
- עשר
- מונחים
- השמיים
- שם.
- שְׁלוֹשָׁה
- דרך
- זמן
- ל
- token
- כלים
- חלק עליון
- העשירייה הראשונה
- נושא
- נושאים
- רוֹבּוֹטרִיקִים
- הדרכה
- טיפוסי
- בְּסִיסִי
- להבין
- ייחודי
- אוניברסיטה
- ארה"ב
- להשתמש
- בעל ערך
- ערכים
- גִרְסָה אַחֶרֶת
- ראיה
- לחכות
- אשר
- בזמן
- בעוד
- יצטרך
- בתוך
- Word
- מילים
- גרוע
- לכתוב
- טעות
- זפירנט