Hướng dẫn how do you cluster text in python? - làm cách nào để bạn phân cụm văn bản trong python?

Giải thích về một đường ống đơn giản để phân cụm văn bản. Ví dụ và mã đầy đủ

Ảnh của Andrew Wulf trên unplash

TF-IDF là một kỹ thuật vector hóa nổi tiếng và được ghi nhận trong khoa học dữ liệu. Vectorization là hành động chuyển đổi dữ liệu thành một định dạng số theo cách mà một mô hình thống kê có thể giải thích nó và đưa ra dự đoán.vectorization technique in data science. Vectorization is the act of converting data into a numerical format in such a way that a statistical model can interpret it and make predictions.

Cho tài liệu văn bản, chúng ta có thể nhóm chúng tự động: phân cụm văn bản. Chúng tôi sẽ sử dụng KMeans, một thuật toán học máy không giám sát.

Tôi đã thu thập một số bài viết về mèo và Google. Bạn đã đoán nó: Thuật toán sẽ tạo ra các cụm. Các bài viết có thể là về bất cứ điều gì, thuật toán phân cụm sẽ tự động tạo các cụm. Thậm chí mát hơn: Dự đoán.

Khóa học liên quan: Khóa học học máy hoàn chỉnh với Python Complete Machine Learning Course with Python

Kmeans

Chúng tôi tạo các tài liệu bằng danh sách Python. Trong ví dụ của chúng tôi, các tài liệu chỉ đơn giản là các chuỗi văn bản phù hợp với màn hình. Trong một tình huống thế giới thực, chúng có thể là những tập tin lớn.

 
documents = ["This little kitty came to play when I was eating at a restaurant.",
"Merley has the best squooshy kitten belly.",
"Google Translate app is incredible.",
"If you open 100 tab in google you get a smiley face.",
"Best cat photo I've ever taken.",
"Climbing ninja cat.",
"Impressed with google map feedback.",
"Key promoter extension for Google Chrome."]

Kmeans thường chỉ hoạt động với các số: chúng ta cần có số. Để có được số, chúng tôi thực hiện một bước phổ biến được gọi là trích xuất tính năng.

Tính năng mà chúng tôi sẽ sử dụng là TF-IDF, một thống kê số. Thống kê này sử dụng tần số thời hạn và tần số tài liệu nghịch đảo. Tóm lại: Chúng tôi sử dụng số liệu thống kê để có được các tính năng số. Bởi vì tôi lười biếng, chúng tôi sẽ sử dụng việc triển khai hiện tại của thuật toán TF-IDF trong Sklearn.

Phương thức tfidfvectorizer () thực hiện thuật toán TF-idf. Tóm lại, phương thức tfidfvectorizer chuyển đổi một bộ sưu tập các tài liệu thô thành một ma trận các tính năng TF-IDF.

Hướng dẫn how do you cluster text in python? - làm cách nào để bạn phân cụm văn bản trong python?

Phân cụm văn bản

Sau khi chúng tôi có các tính năng số, chúng tôi khởi tạo thuật toán KMeans với K = 2. Nếu bạn muốn xác định k tự động, hãy xem bài viết trước. Sau đó, chúng tôi sẽ in các từ hàng đầu trên mỗi cụm.

Sau đó, chúng tôi nhận được phần thú vị: Chúng tôi cung cấp một tài liệu mới cho thuật toán phân cụm và để nó dự đoán lớp của nó. Trong mã dưới đây, tôi đã thực hiện điều đó hai lần.

 
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
from sklearn.metrics import adjusted_rand_score

documents = ["This little kitty came to play when I was eating at a restaurant.",
"Merley has the best squooshy kitten belly.",
"Google Translate app is incredible.",
"If you open 100 tab in google you get a smiley face.",
"Best cat photo I've ever taken.",
"Climbing ninja cat.",
"Impressed with google map feedback.",
"Key promoter extension for Google Chrome."]

vectorizer = TfidfVectorizer(stop_words='english')
X = vectorizer.fit_transform(documents)

true_k = 2
model = KMeans(n_clusters=true_k, init='k-means++', max_iter=100, n_init=1)
model.fit(X)

print("Top terms per cluster:")
order_centroids = model.cluster_centers_.argsort()[:, ::-1]
terms = vectorizer.get_feature_names()
for i in range(true_k):
print("Cluster %d:" % i),
for ind in order_centroids[i, :10]:
print(' %s' % terms[ind]),
print

print("\n")
print("Prediction")

Y = vectorizer.transform(["chrome browser to open."])
prediction = model.predict(Y)
print(prediction)

Y = vectorizer.transform(["My cat is hungry."])
prediction = model.predict(Y)
print(prediction)

Nếu bạn chưa quen với việc học máy, tôi đánh giá cao cuốn sách này

Tải xuống các ví dụ học máy

Bạn có thể phân cụm dữ liệu văn bản không?

Phân cụm văn bản là phân cụm một số tài liệu có nội dung tương tự từ nhiều tài liệu.Nói một cách đơn giản, đó là tìm hai thông tin văn bản có liên quan nhất trong không gian thông tin văn bản và thoái hóa chúng thành một thông tin văn bản, để giảm lượng thông tin.. Simply speaking, it is to find any two most relevant text information in the text information space and degenerate them into one text information, so as to reduce the amount of information.

Một ví dụ về phân cụm văn bản là gì?

Công cụ tìm kiếm của Google có lẽ là ví dụ tốt nhất và được biết đến rộng rãi nhất.Khi bạn tìm kiếm một thuật ngữ trên Google, nó sẽ tăng các trang áp dụng cho thuật ngữ đó, nhưng bạn đã bao giờ tự hỏi làm thế nào Google có thể phân tích hàng tỷ trang web để mang lại kết quả chính xác và nhanh chóng?Đó là vì phân cụm văn bản! is probably the best and most widely known example. When you search for a term on Google, it pulls up pages that apply to that term, but have you ever wondered how Google can analyze billions of web pages to deliver an accurate and fast result? It's because of text clustering!

Phân cụm văn bản có nghĩa là gì?

Sự định nghĩa.Phân cụm văn bản là tự động nhóm các tài liệu văn bản (ví dụ: tài liệu trong văn bản thuần túy, trang web, email và v.v.) thành các cụm dựa trên sự tương đồng nội dung của chúng.to automatically group textual documents (for example, documents in plain text, web pages, emails and etc) into clusters based on their content similarity.