Photo by Mikechie Esparagoza
Mỗi ngày, hầu hết thời gian chúng ta xử lý văn bản không được gắn nhãn và hoàn toàn không thể sử dụng thuật toán học có giám sát để trích xuất thông tin từ dữ liệu. Một trường con của ngôn ngữ tự nhiên có thể tiết lộ cấu trúc cơ bản trong một lượng lớn văn bản. Kỷ luật này được gọi là Mô hình hóa chủ đề, chuyên trích xuất các chủ đề từ văn bản.
Trong bối cảnh này, các phương pháp tiếp cận thông thường, như Phân bổ Dirichlet tiềm ẩn và Nhân tố ma trận không âm, được chứng minh là không nắm bắt tốt mối quan hệ giữa các từ vì chúng dựa trên túi từ.
Vì lý do này, chúng tôi sẽ tập trung vào hai cách tiếp cận đầy hứa hẹn, Top2Vec và BERTopic, giải quyết những nhược điểm này bằng cách khai thác các mô hình ngôn ngữ được đào tạo trước để tạo chủ đề. Bắt đầu nào!
Top2Vec là một mô hình có khả năng tự động phát hiện các chủ đề từ văn bản bằng cách sử dụng các vectơ từ được đào tạo trước và tạo các chủ đề, tài liệu và vectơ từ được nhúng có ý nghĩa.
Theo cách tiếp cận này, quy trình trích xuất chủ đề có thể được chia thành các bước khác nhau:
- Tạo nhúng ngữ nghĩa: các vectơ từ và tài liệu được nhúng chung được tạo. Ý tưởng là các tài liệu tương tự nên gần nhau hơn trong không gian nhúng, trong khi các tài liệu khác nhau nên cách xa nhau.
- Giảm kích thước của tài liệu nhúng: Việc áp dụng phương pháp giảm kích thước là rất quan trọng để duy trì hầu hết các biến của việc nhúng tài liệu trong khi giảm không gian nhiều chiều. Hơn nữa, nó cho phép xác định các khu vực dày đặc, trong đó mỗi điểm đại diện cho một vectơ tài liệu. UMAP là phương pháp giảm kích thước điển hình được chọn trong bước này vì nó có thể duy trì cấu trúc cục bộ và toàn cục của dữ liệu nhiều chiều.
- Xác định các cụm tài liệu: HDBScan, một phương pháp phân cụm dựa trên mật độ, được áp dụng để tìm các khu vực dày đặc của các tài liệu tương tự. Mỗi tài liệu được gán là tiếng ồn nếu nó không nằm trong một cụm dày đặc hoặc nhãn nếu nó thuộc về một khu vực dày đặc.
- Tính toán trọng tâm trong không gian nhúng ban đầu: Trọng tâm được tính toán bằng cách xem xét không gian nhiều chiều, thay vì không gian nhúng giảm. Chiến lược cổ điển bao gồm tính toán giá trị trung bình số học của tất cả các vectơ tài liệu thuộc về một khu vực dày đặc, thu được ở bước trước với HDBSCAN. Theo cách này, một vectơ chủ đề được tạo cho mỗi cụm.
- Tìm từ cho mỗi vector chủ đề: các vectơ từ gần nhất với vectơ tài liệu là đại diện nhất về mặt ngữ nghĩa.
Ví dụ về Top2Vec
Trong hướng dẫn này, chúng ta sẽ phân tích các đánh giá tiêu cực về McDonald's từ bộ dữ liệu có sẵn trên data.wworld. Việc xác định các chủ đề từ những đánh giá này có thể có giá trị đối với công ty đa quốc gia để cải thiện sản phẩm và việc tổ chức chuỗi thức ăn nhanh này tại các địa điểm của Hoa Kỳ do dữ liệu cung cấp.
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()
Trong một dòng mã, chúng tôi sẽ thực hiện tất cả các bước của top2vec đã giải thích trước đây.
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"},
)
Các đối số chính của Top2Vec là:
- docs_bad: là danh sách các chuỗi.
- bộ mã hóa câu phổ quát: là mô hình nhúng được đào tạo trước đã chọn.
- deep-learning: là tham số xác định chất lượng của vectơ tài liệu được tạo.
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)
Nhiều nhất
Từ các đám mây, chúng ta có thể suy luận rằng chủ đề 0 nói về những phàn nàn chung chung về dịch vụ ở McDonald, như “phục vụ chậm”, “phục vụ tệ hại” và “gọi món sai”, trong khi chủ đề 1 và 2 lần lượt đề cập đến đồ ăn sáng ( McMuffin, bánh quy, trứng) và cà phê (cà phê đá và cà phê cốc).
Bây giờ, chúng tôi thử tìm kiếm tài liệu bằng hai từ khóa sai và chậm:
( 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()
Đầu ra:
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 là một kỹ thuật lập mô hình chủ đề tận dụng các máy biến áp và c-TF-IDF để tạo các cụm dày đặc cho phép các chủ đề dễ hiểu trong khi vẫn giữ các từ quan trọng trong phần mô tả chủ đề.”
Đúng như tên gọi, BERTopic sử dụng các mô hình biến đổi mạnh mẽ để xác định các chủ đề có trong văn bản. Một đặc điểm khác của thuật toán lập mô hình chủ đề này là việc sử dụng một biến thể của TF-IDF, được gọi là biến thể dựa trên lớp của TF-IDF.
Cũng như Top2Vec không cần biết số lượng chủ đề mà tự động lấy chủ đề ra.
Ngoài ra, tương tự như Top2Vec, đây là một thuật toán bao gồm các giai đoạn khác nhau. Ba bước đầu tiên giống nhau: tạo tài liệu nhúng, giảm kích thước bằng UMAP và phân cụm bằng HDBScan.
Các giai đoạn kế tiếp bắt đầu khác với Top2Vec. Sau khi tìm thấy các khu vực dày đặc với HDBSCAN, mỗi chủ đề được mã hóa thành một biểu diễn túi từ, sẽ tính đến việc từ đó có xuất hiện trong tài liệu hay không. Sau khi các tài liệu thuộc về một cụm được coi là một tài liệu duy nhất và TF-IDF được áp dụng. Vì vậy, đối với mỗi chủ đề, chúng tôi xác định các từ phù hợp nhất, từ đó sẽ có c-TF-IDF cao nhất.
Ví dụ về BERTopic
Chúng tôi lặp lại phân tích trên cùng một tập dữ liệu.
Chúng tôi sẽ trích xuất các chủ đề từ các bài đánh giá bằng 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()
Bảng do mô hình trả về cung cấp thông tin về 14 chủ đề được trích xuất. Chủ đề tương ứng với mã định danh chủ đề, ngoại trừ tất cả các ngoại lệ bị bỏ qua được gắn nhãn là -1.
Bây giờ, chúng ta sẽ chuyển sang phần thú vị nhất liên quan đến việc trực quan hóa các chủ đề của chúng ta thành các biểu đồ tương tác, chẳng hạn như trực quan hóa các thuật ngữ phù hợp nhất cho từng chủ đề, bản đồ khoảng cách giữa các chủ đề, biểu diễn hai chiều của không gian nhúng và hệ thống phân cấp chủ đề.
Hãy bắt đầu hiển thị biểu đồ thanh cho mười chủ đề hàng đầu. Đối với mỗi chủ đề, chúng ta có thể quan sát các từ quan trọng nhất, được sắp xếp theo thứ tự giảm dần dựa trên điểm số c-TF-IDF. Càng nhiều từ có liên quan, điểm số càng cao.
Chủ đề đầu tiên chứa các từ chung chung, như địa điểm và thức ăn, chủ đề 1 đặt hàng và chờ đợi, chủ đề 2 tồi tệ nhất và dịch vụ, chủ đề 3 địa điểm và bẩn thỉu, quảng cáo, v.v.
Sau khi hình dung các biểu đồ thanh, đã đến lúc xem bản đồ khoảng cách giữa các địa điểm. Chúng tôi giảm số chiều của điểm c-TF-IDF thành không gian hai chiều để trực quan hóa các chủ đề trong một biểu đồ. Ở phía dưới, có một thanh trượt cho phép chọn chủ đề sẽ được tô màu đỏ. Chúng ta có thể nhận thấy rằng các chủ đề được nhóm thành hai nhóm khác nhau, một nhóm có các chủ đề chung chung như thức ăn, thịt gà và địa điểm và một nhóm có các khía cạnh tiêu cực khác nhau, chẳng hạn như dịch vụ tồi tệ nhất, bẩn thỉu, địa điểm và lạnh lẽo.
Biểu đồ tiếp theo cho phép thấy mối quan hệ giữa các đánh giá và chủ đề. Đặc biệt, có thể hữu ích khi hiểu lý do tại sao một bài đánh giá được chỉ định cho một chủ đề cụ thể và được sắp xếp phù hợp với các từ có liên quan nhất được tìm thấy. Ví dụ, chúng ta có thể tập trung vào cụm màu đỏ, tương ứng với chủ đề 2 với một số từ về dịch vụ tồi tệ nhất. Các tài liệu trong khu vực dày đặc này có vẻ khá tiêu cực, chẳng hạn như “Dịch vụ khách hàng tồi tệ và đồ ăn thậm chí còn tệ hơn”.
Thoạt nhìn, những cách tiếp cận này có nhiều điểm chung, chẳng hạn như tự động tìm số lượng chủ đề, không cần xử lý trước trong hầu hết các trường hợp, ứng dụng UMAP để giảm kích thước của tài liệu nhúng và sau đó, HDBSCAN được sử dụng cho mô hình hóa các phần nhúng tài liệu đã giảm này, nhưng về cơ bản chúng khác nhau khi xem xét cách chúng chỉ định các chủ đề cho tài liệu.
Top2Vec tạo các biểu diễn chủ đề bằng cách tìm các từ nằm gần trung tâm của cụm.
Khác với Top2Vec, BERTopic không tính đến trọng tâm của cụm, nhưng nó coi tất cả các tài liệu trong một cụm là một tài liệu duy nhất và trích xuất các biểu diễn chủ đề bằng cách sử dụng một biến thể dựa trên lớp của TF-IDF.
Top2Vec | BERChủ đề |
Chiến lược trích xuất các chủ đề dựa trên trọng tâm của cụm. | Chiến lược trích xuất các chủ đề dựa trên c-TF-IDF. |
Nó không hỗ trợ Mô hình chủ đề động. | Nó hỗ trợ Mô hình chủ đề động. |
Nó xây dựng các đám mây từ cho từng chủ đề và cung cấp các công cụ tìm kiếm cho các chủ đề, tài liệu và từ ngữ. | Nó cho phép xây dựng các sơ đồ trực quan tương tác, cho phép giải thích các chủ đề được trích xuất. |
Mô hình hóa chủ đề là một lĩnh vực Xử lý ngôn ngữ tự nhiên đang phát triển và có rất nhiều ứng dụng khả thi, chẳng hạn như bài đánh giá, âm thanh và bài đăng trên phương tiện truyền thông xã hội. Như đã trình bày, bài viết này cung cấp thông tin tổng quan về Topi2Vec và BERTopic, đây là hai cách tiếp cận đầy hứa hẹn, có thể giúp bạn xác định các chủ đề với một vài dòng mã và diễn giải kết quả thông qua trực quan hóa dữ liệu. Nếu bạn có câu hỏi về các kỹ thuật này hoặc bạn có đề xuất khác về các phương pháp khác để phát hiện chủ đề, hãy viết nó trong phần bình luận.
Eugenia Anello hiện là nghiên cứu viên tại Khoa Kỹ thuật Thông tin của Đại học Padova, Ý. Dự án nghiên cứu của cô tập trung vào Học tập liên tục kết hợp với Phát hiện bất thường.
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- Platoblockchain. Web3 Metaverse Intelligence. Khuếch đại kiến thức. Truy cập Tại đây.
- nguồn: 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
- Có khả năng
- Giới thiệu
- Tài khoản
- Ad
- địa chỉ
- Sau
- thuật toán
- thuật toán
- căn chỉnh
- Tất cả
- phân bổ
- Cho phép
- cho phép
- số lượng
- phân tích
- phân tích
- và
- phát hiện bất thường
- Một
- Các Ứng Dụng
- các ứng dụng
- áp dụng
- phương pháp tiếp cận
- cách tiếp cận
- KHU VỰC
- khu vực
- đối số
- bài viết
- các khía cạnh
- giao
- âm thanh
- tự động
- có sẵn
- Bad
- thanh
- dựa
- bởi vì
- giữa
- đáy
- Bữa ăn sáng
- Xây dựng
- xây dựng
- tính
- gọi là
- không thể
- có khả năng
- nắm bắt
- trường hợp
- chuỗi
- đặc trưng
- Bảng xếp hạng
- lựa chọn
- City
- cổ điển
- Đóng
- gần gũi hơn
- cụm
- tập hợp
- mã
- Cà Phê
- kết hợp
- Bình luận
- Chung
- khiếu nại
- xem xét
- xem xét
- chứa
- bối cảnh
- thông thường
- Tương ứng
- tương ứng
- tạo
- tạo ra
- tạo ra
- Tạo
- tạo
- Cup
- Hiện nay
- khách hàng
- Dịch Vụ CSKH
- dữ liệu
- ngày
- xử lý
- chứng minh
- bộ
- Phát hiện
- xác định
- khác nhau
- khoảng cách
- Xa xôi
- Phân ra
- tài liệu
- tài liệu
- Không
- nhược điểm
- lái xe
- lái xe qua
- năng động
- mỗi
- dễ dàng
- nơi khác
- nhúng
- Kỹ Sư
- Ngay cả
- ví dụ
- Trừ
- Giải thích
- trích xuất
- Chất chiết xuất
- cực kỳ
- NHANH
- đồng bào
- vài
- lĩnh vực
- Tìm kiếm
- tìm kiếm
- Tên
- Tập trung
- tập trung
- thực phẩm
- tìm thấy
- từ
- về cơ bản
- Tổng Quát
- tạo ra
- tạo ra
- được
- Toàn cầu
- Go
- đi
- đồ thị
- đồ thị
- Phát triển
- giúp đỡ
- hệ thống cấp bậc
- Cao
- cao hơn
- cao nhất
- HTTPS
- ý tưởng
- Xác định
- định danh
- xác định
- xác định
- nhập khẩu
- quan trọng
- nâng cao
- in
- thông tin
- thay vì
- tương tác
- thú vị
- giải thích
- IT
- Italy
- Xe đẩy
- giữ
- Biết
- nhãn
- Ngôn ngữ
- lớn
- học tập
- đòn bẩy
- Dòng
- dòng
- Danh sách
- địa phương
- nằm
- địa điểm thư viện nào
- . Các địa điểm
- Xem
- tìm kiếm
- Chủ yếu
- nhiều
- bản đồ
- Matrix
- MCDONALD
- có ý nghĩa
- Phương tiện truyền thông
- kiểu mẫu
- người mẫu
- mô hình hóa
- mô hình
- chi tiết
- hầu hết
- đa quốc gia
- tên
- Tự nhiên
- Ngôn ngữ tự nhiên
- Xử lý ngôn ngữ tự nhiên
- Cần
- tiêu cực
- tiếp theo
- Tiếng ồn
- con số
- nhiều
- tuân theo
- thu được
- ONE
- gọi món
- cơ quan
- nguyên
- Nền tảng khác
- gấu trúc
- tham số
- một phần
- riêng
- tỷ lệ phần trăm
- thực hiện
- cụm từ
- Nơi
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- Điểm
- có thể
- bài viết
- mạnh mẽ
- trình bày
- trước
- trước đây
- xử lý
- Sản xuất
- Sản phẩm
- dự án
- hứa hẹn
- cung cấp
- cung cấp
- chất lượng
- Câu hỏi
- lý do
- đỏ
- giảm
- Giảm
- giảm
- về
- mối quan hệ
- Mối quan hệ
- có liên quan
- lặp lại
- đại diện
- đại diện
- đại diện cho
- nghiên cứu
- Kết quả
- tiết lộ
- xem xét
- Đánh giá
- tương tự
- Tìm kiếm
- tìm kiếm
- lựa chọn
- dịch vụ
- nên
- hiển thị
- thể hiện
- Thị giác
- tương tự
- Tương tự
- kể từ khi
- duy nhất
- thanh trượt
- chậm
- So
- Mạng xã hội
- truyền thông xã hội
- Bài đăng trên mạng xã hội
- một số
- Không gian
- chuyên nghành
- riêng
- chia
- Bước
- Các bước
- Chiến lược
- cấu trúc
- như vậy
- Gợi ý
- học có giám sát
- hỗ trợ
- Hỗ trợ
- bàn
- Hãy
- mất
- kỹ thuật
- 10
- về
- Sản phẩm
- Đó
- số ba
- Thông qua
- thời gian
- đến
- được mã hóa
- công cụ
- hàng đầu
- Top mười
- chủ đề
- Chủ đề
- máy biến áp
- hướng dẫn
- điển hình
- cơ bản
- hiểu
- độc đáo
- trường đại học
- US
- sử dụng
- Quý báu
- Các giá trị
- biến thể
- hình dung
- chờ đợi
- cái nào
- trong khi
- Trong khi
- sẽ
- ở trong
- Từ
- từ
- tệ nhất
- viết
- Sai
- zephyrnet