Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan teknik pengelompokan teks dalam Python?

Bagaimana untuk menggunakan teknik pengelompokan teks dalam Python?

王林
王林asal
2023-06-04 14:01:381846semak imbas

Dalam era maklumat hari ini, jumlah data teks yang perlu kami proses terus meningkat. Oleh itu, adalah perlu untuk mengelompokkan dan mengklasifikasikan data teks. Ini membolehkan kami mengurus dan memproses data teks dengan lebih cekap, dengan itu membolehkan analisis dan membuat keputusan yang lebih tepat. Python ialah bahasa pengaturcaraan yang cekap yang menyediakan banyak perpustakaan dan alatan terbina dalam untuk pengelompokan dan pengelasan teks. Artikel ini akan memperkenalkan cara menggunakan teknologi pengelompokan teks dalam Python.

  1. Penghimpunan Teks

Penghimpunan teks ialah proses mengumpulkan data teks ke dalam kategori yang berbeza. Proses ini bertujuan untuk meletakkan data teks yang serupa dalam kumpulan yang sama. Algoritma pengelompokan ialah algoritma yang digunakan untuk mencari persamaan ini. Dalam Python, K-Means ialah salah satu algoritma pengelompokan yang paling biasa digunakan.

  1. Prapemprosesan data

Sebelum menggunakan K-Means untuk pengelompokan teks, beberapa kerja prapemprosesan data diperlukan. Pertama, data teks hendaklah ditukar kepada bentuk vektor untuk memudahkan pengiraan persamaan. Dalam Python, anda boleh menggunakan kelas TfidfVectorizer untuk menukar teks kepada vektor. Kelas TfidfVectorizer menerima sejumlah besar data teks sebagai input dan mengira nilai "Document Frequency-Inverse Document Frequency" (TF-IDF) bagi setiap perkataan berdasarkan perkataan dalam artikel. TF-IDF mewakili nisbah kekerapan perkataan dalam fail kepada kekerapan dalam keseluruhan korpus. Nilai ini mencerminkan kepentingan perkataan dalam keseluruhan korpus.

Kedua, beberapa perkataan yang tidak berguna harus dialih keluar sebelum pengelompokan teks, seperti perkataan hentian biasa dan tanda baca. Dalam Python, anda boleh menggunakan perpustakaan nltk untuk melaksanakan proses ini. nltk ialah perpustakaan Python khusus untuk pemprosesan bahasa semula jadi. Anda boleh menggunakan koleksi stopwords yang disediakan oleh perpustakaan nltk untuk memadamkan perkataan henti, seperti "a", "an", "the", "and", "or", "but" dan perkataan lain.

  1. K-Means Clustering

Selepas prapemprosesan, algoritma K-Means boleh digunakan untuk pengelompokan teks. Dalam Python, proses ini boleh dilaksanakan menggunakan kelas KMeans yang disediakan oleh perpustakaan scikit-learn. Kelas ini menerima vektor yang dijana oleh TfidfVectorizer sebagai input, memisahkan data vektor kepada nombor yang telah ditetapkan. Di sini kita boleh memilih bilangan kluster yang sesuai melalui percubaan.

Berikut ialah kod pengelompokan KMeans asas:

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=5)
kmeans.fit(vector_data)

Dalam kod di atas, "n_clusters" mewakili bilangan gugusan dan "vector_data" ialah tatasusunan vektor yang dijana oleh kelas TfidfVectorizer. Selepas pengelompokan selesai, kelas KMeans menyediakan atribut labels_, yang boleh menunjukkan kategori mana teks itu tergolong.

  1. Visualisasi hasil

Akhir sekali, beberapa alat visualisasi boleh digunakan untuk mempersembahkan hasil pengelompokan. Dalam Python, perpustakaan matplotlib dan perpustakaan seaborn ialah dua alat visualisasi yang biasa digunakan. Sebagai contoh, seseorang boleh menggunakan fungsi scatterplot seaborn untuk memplot titik data dengan warna yang berbeza untuk setiap kategori, seperti ini:

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
 
df = pd.DataFrame(dict(x=X[:,0], y=X[:,1], label=kmeans.labels_))
colors = {0:'red', 1:'blue', 2:'green', 3:'yellow', 4:'purple'}
fig, ax = plt.subplots()
grouped = df.groupby('label')
for key, group in grouped:
    group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key])
plt.show()

Dalam kod di atas, "X" ialah tatasusunan vektor yang dijana oleh TfidfVectorizer, kmeans. labels_ ialah atribut kelas KMeans, yang menunjukkan nombor kategori teks.

  1. Ringkasan

Artikel ini memperkenalkan cara menggunakan teknologi pengelompokan teks dalam Python. Prapemprosesan data diperlukan, termasuk menukar teks ke dalam bentuk vektor dan mengalih keluar perkataan henti dan tanda baca. Kemudian, algoritma K-Means boleh digunakan untuk pengelompokan, dan akhirnya hasil pengelompokan boleh dipaparkan secara visual. Perpustakaan nltk, perpustakaan scikit-learn dan perpustakaan seaborn dalam Python memberikan sokongan yang baik dalam proses ini, membolehkan kami menggunakan kod yang agak mudah untuk melaksanakan pengelompokan dan visualisasi teks.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan teknik pengelompokan teks dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn