ภาพถ่ายโดย มิคกี้ เอสพาราโกซ่า
ทุกวัน เรากำลังจัดการกับข้อความที่ไม่มีป้ายกำกับและอัลกอริทึมการเรียนรู้ภายใต้การดูแลไม่สามารถใช้เลยเพื่อดึงข้อมูลจากข้อมูล ฟิลด์ย่อยของภาษาธรรมชาติสามารถเปิดเผยโครงสร้างพื้นฐานในข้อความจำนวนมาก ระเบียบวินัยนี้เรียกว่าการสร้างแบบจำลองหัวข้อ ซึ่งเชี่ยวชาญในการแยกหัวข้อออกจากข้อความ
ในบริบทนี้ วิธีการทั่วไป เช่น Latent Dirichlet Allocation และ Non-Negative Matrix Factorization แสดงให้เห็นว่าจับความสัมพันธ์ระหว่างคำได้ไม่ดีนัก เนื่องจากคำเหล่านี้ใช้ถุงคำ
ด้วยเหตุผลนี้ เราจะมุ่งเน้นไปที่แนวทางที่มีแนวโน้มสองแนวทาง ได้แก่ Top2Vec และ BERTopic ซึ่งแก้ไขข้อบกพร่องเหล่านี้โดยใช้ประโยชน์จากโมเดลภาษาที่ได้รับการฝึกฝนมาล่วงหน้าเพื่อสร้างหัวข้อ มาเริ่มกันเลย!
Top2Vec เป็นโมเดลที่สามารถตรวจจับหัวข้อโดยอัตโนมัติจากข้อความโดยใช้เวกเตอร์คำที่ฝึกไว้ล่วงหน้า และสร้างหัวข้อ เอกสาร และเวกเตอร์คำแบบฝังที่มีความหมาย
ในแนวทางนี้ ขั้นตอนการแยกหัวข้อสามารถแบ่งออกเป็นขั้นตอนต่างๆ ได้:
- สร้างการฝังความหมาย: สร้างเวกเตอร์เอกสารและคำที่ฝังร่วมกัน แนวคิดคือเอกสารที่คล้ายกันควรอยู่ใกล้กันในพื้นที่ฝัง ในขณะที่เอกสารที่แตกต่างกันควรอยู่ห่างกัน
- ลดขนาดของการฝังเอกสาร: การประยุกต์ใช้วิธีการลดขนาดเป็นสิ่งสำคัญเพื่อรักษาความแปรปรวนส่วนใหญ่ของการฝังเอกสารในขณะที่ลดพื้นที่มิติสูง นอกจากนี้ยังช่วยให้สามารถระบุพื้นที่หนาแน่น ซึ่งแต่ละจุดแสดงถึงเวกเตอร์เอกสาร UMAP เป็นวิธีการลดมิติโดยทั่วไปที่เลือกในขั้นตอนนี้ เนื่องจากสามารถรักษาโครงสร้างภายในและส่วนกลางของข้อมูลมิติสูงได้
- ระบุกลุ่มของเอกสาร: HDBScan ซึ่งเป็นวิธีการจัดกลุ่มตามความหนาแน่น ถูกนำมาใช้เพื่อค้นหาพื้นที่หนาแน่นของเอกสารที่คล้ายกัน เอกสารแต่ละฉบับจะถูกกำหนดให้เป็นสัญญาณรบกวนหากไม่ได้อยู่ในคลัสเตอร์ที่มีความหนาแน่นสูง หรือเป็นป้ายกำกับหากเป็นของพื้นที่ที่มีความหนาแน่นสูง
- คำนวณ centroids ในพื้นที่ฝังเดิม: เซนทรอยด์คำนวณโดยพิจารณาพื้นที่มิติสูง แทนพื้นที่ฝังที่ลดลง กลยุทธ์แบบคลาสสิกประกอบด้วยการคำนวณค่าเฉลี่ยเลขคณิตของเวกเตอร์เอกสารทั้งหมดที่อยู่ในพื้นที่หนาแน่น ซึ่งได้รับในขั้นตอนก่อนหน้าด้วย HDBSCAN ด้วยวิธีนี้ เวกเตอร์หัวข้อจะถูกสร้างขึ้นสำหรับแต่ละคลัสเตอร์
- ค้นหาคำสำหรับเวกเตอร์แต่ละหัวข้อ: เวกเตอร์คำที่ใกล้ที่สุดกับเวกเตอร์เอกสารเป็นตัวแทนทางความหมายมากที่สุด
ตัวอย่างของ Top2Vec
ในบทช่วยสอนนี้ เราจะวิเคราะห์บทวิจารณ์เชิงลบของ McDonald's จากชุดข้อมูลที่มีอยู่ ข้อมูล.โลก. การระบุหัวข้อจากบทวิจารณ์เหล่านี้อาจเป็นประโยชน์สำหรับบริษัทข้ามชาติในการปรับปรุงผลิตภัณฑ์และการจัดองค์กรของห่วงโซ่อาหารฟาสต์ฟู้ดนี้ในสถานที่ตั้งของข้อมูลที่ได้รับจากสหรัฐอเมริกา
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: เป็นรายการของสตริง
- ตัวเข้ารหัสประโยคสากล: เป็นรูปแบบการฝังที่เลือกไว้ล่วงหน้า
- เรียนรู้เชิงลึก: เป็นพารามิเตอร์ที่กำหนดคุณภาพของเวกเตอร์เอกสารที่ผลิต
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 เป็นเรื่องเกี่ยวกับข้อร้องเรียนทั่วไปเกี่ยวกับบริการใน McDonald เช่น “บริการช้า” “บริการแย่” และ “สั่งผิด” ในขณะที่หัวข้อ 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()
Output:
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 เป็นเทคนิคการสร้างแบบจำลองหัวข้อที่ใช้ประโยชน์จาก Transformer และ 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 ลงในพื้นที่สองมิติเพื่อให้เห็นภาพหัวข้อในโครงเรื่อง ที่ด้านล่างมีแถบเลื่อนที่ให้เลือกหัวข้อที่จะเป็นสีแดง เราสังเกตได้ว่าหัวข้อต่างๆ ถูกจัดกลุ่มออกเป็น XNUMX กลุ่มที่แตกต่างกัน กลุ่มหนึ่งมีหัวข้อทั่วไป เช่น อาหาร ไก่ และสถานที่ และอีกกลุ่มหนึ่งมีแง่มุมเชิงลบที่แตกต่างกัน เช่น บริการแย่ที่สุด สกปรก สถานที่ และเย็น
กราฟถัดไปทำให้เห็นความสัมพันธ์ระหว่างบทวิจารณ์และหัวข้อ โดยเฉพาะอย่างยิ่ง การทำความเข้าใจว่าเหตุใดบทวิจารณ์จึงถูกกำหนดให้กับหัวข้อเฉพาะและสอดคล้องกับคำที่เกี่ยวข้องมากที่สุดซึ่งเป็นประโยชน์อย่างยิ่ง ตัวอย่างเช่น เราสามารถมุ่งเน้นไปที่กลุ่มสีแดงซึ่งสอดคล้องกับหัวข้อ 2 ด้วยคำบางคำเกี่ยวกับบริการที่แย่ที่สุด เอกสารในพื้นที่หนาแน่นนี้ดูค่อนข้างเป็นลบ เช่น “การบริการลูกค้าแย่และอาหารที่แย่กว่านั้น”
เมื่อแรกเห็น วิธีการเหล่านี้มีหลายแง่มุมที่เหมือนกัน เช่น การค้นหาจำนวนหัวข้อโดยอัตโนมัติ ในกรณีส่วนใหญ่ไม่จำเป็นต้องมีการประมวลผลล่วงหน้า การประยุกต์ใช้ UMAP เพื่อลดขนาดของการฝังเอกสาร จากนั้นจึงใช้ HDBSCAN สำหรับ การสร้างแบบจำลองการฝังเอกสารที่ลดลงเหล่านี้ แต่มีความแตกต่างกันโดยพื้นฐานเมื่อพิจารณาถึงวิธีการกำหนดหัวข้อให้กับเอกสาร
Top2Vec สร้างการแสดงหัวข้อโดยการค้นหาคำที่อยู่ใกล้กับเซนทรอยด์ของคลัสเตอร์
แตกต่างจาก Top2Vec คือ BERTopic ไม่คำนึงถึง centroid ของคลัสเตอร์ แต่ถือว่าเอกสารทั้งหมดในคลัสเตอร์เป็นเอกสารเฉพาะ และแยกการแสดงหัวข้อโดยใช้รูปแบบตามคลาสของ TF-IDF
ท็อปทูเวค | BERหัวข้อ |
กลยุทธ์ในการแยกหัวข้อตาม centroids ของคลัสเตอร์ | กลยุทธ์ในการแยกหัวข้อตาม c-TF-IDF |
ไม่รองรับการสร้างแบบจำลองหัวข้อแบบไดนามิก | รองรับการสร้างแบบจำลองหัวข้อแบบไดนามิก |
สร้างเมฆคำสำหรับแต่ละหัวข้อและจัดเตรียมเครื่องมือค้นหาสำหรับหัวข้อ เอกสาร และคำต่างๆ | อนุญาตให้สร้างแผนการสร้างภาพเชิงโต้ตอบ อนุญาตให้ตีความหัวข้อที่แยกออกมา |
การสร้างแบบจำลองหัวข้อเป็นสาขาที่กำลังเติบโตของการประมวลผลภาษาธรรมชาติ และมีแอปพลิเคชันที่เป็นไปได้มากมาย เช่น บทวิจารณ์ เสียง และโพสต์บนโซเชียลมีเดีย ตามที่ได้แสดงไปแล้ว บทความนี้ให้ภาพรวมของ Topi2Vec และ BERTopic ซึ่งเป็นสองวิธีที่มีแนวโน้มที่ดี ซึ่งสามารถช่วยคุณระบุหัวข้อด้วยโค้ดไม่กี่บรรทัด และตีความผลลัพธ์ผ่านการแสดงข้อมูลเป็นภาพ หากคุณมีคำถามเกี่ยวกับเทคนิคเหล่านี้หรือคุณมีคำแนะนำอื่นๆ เกี่ยวกับวิธีการอื่นๆ ในการตรวจหาหัวข้อต่างๆ โปรดเขียนไว้ในความคิดเห็น
ชมพู่ อเนลโล่ ปัจจุบันเป็นนักวิจัยที่ภาควิชาวิศวกรรมสารสนเทศของมหาวิทยาลัยปาโดวา ประเทศอิตาลี โครงการวิจัยของเธอมุ่งเน้นไปที่การเรียนรู้อย่างต่อเนื่องร่วมกับการตรวจจับความผิดปกติ
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- เพลโตบล็อคเชน Web3 Metaverse ข่าวกรอง ขยายความรู้. เข้าถึงได้ที่นี่.
- ที่มา: 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
- พื้นที่
- ข้อโต้แย้ง
- บทความ
- ด้าน
- ที่ได้รับมอบหมาย
- เสียง
- อัตโนมัติ
- ใช้ได้
- ไม่ดี
- บาร์
- ตาม
- เพราะ
- ระหว่าง
- ด้านล่าง
- รับประทานอาหารเช้า
- การก่อสร้าง
- สร้าง
- การคํานวณ
- ที่เรียกว่า
- ไม่ได้
- สามารถ
- จับ
- กรณี
- โซ่
- ลักษณะเฉพาะ
- ชาร์ต
- เลือก
- เมือง
- คลาสสิก
- ปิดหน้านี้
- ใกล้ชิด
- Cluster
- การจัดกลุ่ม
- รหัส
- กาแฟ
- รวม
- ความคิดเห็น
- ร่วมกัน
- ร้องเรียน
- ถือว่า
- พิจารณา
- มี
- สิ่งแวดล้อม
- ตามธรรมเนียม
- ตรงกัน
- สอดคล้อง
- สร้าง
- ที่สร้างขึ้น
- สร้าง
- การสร้าง
- การสร้าง
- ถ้วย
- ขณะนี้
- ลูกค้า
- บริการลูกค้า
- ข้อมูล
- วัน
- การซื้อขาย
- แสดงให้เห็นถึง
- แผนก
- การตรวจพบ
- แน่นอน
- ต่าง
- ระยะทาง
- ไกล
- แตกต่าง
- เอกสาร
- เอกสาร
- ไม่
- ข้อเสีย
- ขับรถ
- ขับรถผ่าน
- พลวัต
- แต่ละ
- อย่างง่ายดาย
- ที่อื่น ๆ
- ที่ฝัง
- ชั้นเยี่ยม
- แม้
- ตัวอย่าง
- ยกเว้น
- อธิบาย
- สารสกัด
- สารสกัดจาก
- อย่างยิ่ง
- FAST
- มนุษย์
- สองสาม
- สนาม
- หา
- หา
- ชื่อจริง
- โฟกัส
- มุ่งเน้น
- อาหาร
- พบ
- ราคาเริ่มต้นที่
- ลึกซึ้ง
- General
- สร้าง
- สร้าง
- ได้รับ
- เหตุการณ์ที่
- Go
- ไป
- กราฟ
- กราฟ
- การเจริญเติบโต
- ช่วย
- ลำดับชั้น
- จุดสูง
- สูงกว่า
- ที่สูงที่สุด
- HTTPS
- ความคิด
- ประจำตัว
- ระบุ
- แยกแยะ
- ระบุ
- นำเข้า
- สำคัญ
- ปรับปรุง
- in
- ข้อมูล
- แทน
- การโต้ตอบ
- น่าสนใจ
- การตีความ
- IT
- อิตาลี
- KD นักเก็ต
- การเก็บรักษา
- ทราบ
- ฉลาก
- ภาษา
- ใหญ่
- การเรียนรู้
- ยกระดับ
- Line
- เส้น
- รายการ
- ในประเทศ
- ที่ตั้งอยู่
- ที่ตั้ง
- วันหยุด
- ดู
- ที่ต้องการหา
- หลัก
- หลาย
- แผนที่
- มดลูก
- แมคโดนัลด์
- มีความหมาย
- ภาพบรรยากาศ
- แบบ
- การสร้างแบบจำลอง
- การสร้างแบบจำลอง
- โมเดล
- ข้อมูลเพิ่มเติม
- มากที่สุด
- ข้ามชาติ
- ชื่อ
- โดยธรรมชาติ
- ภาษาธรรมชาติ
- ประมวลผลภาษาธรรมชาติ
- จำเป็นต้อง
- เชิงลบ
- ถัดไป
- สัญญาณรบกวน
- จำนวน
- มากมาย
- สังเกต
- ที่ได้รับ
- ONE
- ใบสั่ง
- องค์กร
- เป็นต้นฉบับ
- อื่นๆ
- หมีแพนด้า
- พารามิเตอร์
- ส่วนหนึ่ง
- ในสิ่งที่สนใจ
- เปอร์เซ็นต์
- ดำเนินการ
- วลี
- สถานที่
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- จุด
- เป็นไปได้
- โพสต์
- ที่มีประสิทธิภาพ
- นำเสนอ
- ก่อน
- ก่อนหน้านี้
- การประมวลผล
- ผลิต
- ผลิตภัณฑ์
- โครงการ
- แวว
- ให้
- ให้
- คุณภาพ
- คำถาม
- เหตุผล
- สีแดง
- ลด
- ลดลง
- ลด
- เกี่ยวกับ
- ความสัมพันธ์
- ความสัมพันธ์
- ตรงประเด็น
- ทำซ้ำ
- การแสดง
- ตัวแทน
- แสดงให้เห็นถึง
- การวิจัย
- ผลสอบ
- เปิดเผย
- ทบทวน
- รีวิว
- เดียวกัน
- ค้นหา
- ค้นหา
- การเลือก
- บริการ
- น่า
- โชว์
- แสดง
- สายตา
- คล้ายคลึงกัน
- เหมือนกับ
- ตั้งแต่
- เดียว
- เลื่อน
- ช้า
- So
- สังคม
- โซเชียลมีเดีย
- โพสต์โซเชียลมีเดีย
- บาง
- ช่องว่าง
- เฉพาะ
- โดยเฉพาะ
- แยก
- ขั้นตอน
- ขั้นตอน
- กลยุทธ์
- โครงสร้าง
- อย่างเช่น
- ชี้ให้เห็นถึง
- การเรียนรู้ภายใต้การดูแล
- สนับสนุน
- รองรับ
- ตาราง
- เอา
- ใช้เวลา
- เทคนิค
- สิบ
- เงื่อนไขการใช้บริการ
- พื้นที่
- ที่นั่น
- สาม
- ตลอด
- เวลา
- ไปยัง
- โทเค็น
- เครื่องมือ
- ด้านบน
- สิบอันดับสูงสุด
- หัวข้อ
- หัวข้อ
- หม้อแปลง
- เกี่ยวกับการสอน
- ตามแบบฉบับ
- พื้นฐาน
- เข้าใจ
- เป็นเอกลักษณ์
- มหาวิทยาลัย
- สหรัฐอเมริกา
- ใช้
- มีคุณค่า
- ความคุ้มค่า
- ตัวแปร
- การสร้างภาพ
- รอ
- ที่
- ในขณะที่
- ในขณะที่
- จะ
- ภายใน
- คำ
- คำ
- แย่ที่สุด
- เขียน
- ผิด
- ลมทะเล