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.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
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.
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["\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