NLP筆記之文字聚類

2021-10-20 07:23:58 字數 1067 閱讀 1895

文字聚類是聚類在文字上的應用。由淺入深,需要先介紹聚類的思想。

聚類是將給定物件的集合劃分為不同子集的過程,目標是使每個子集內部的元素盡量相似,不同子集(簇)之間的元素盡量不相似。根據元素從屬集合的確定程度,聚類分為硬聚類和軟聚類。

1.硬聚類:每個元素被確定地分入乙個類

2.軟聚類:每個元素與每個簇都存在一定的隸屬程度,只不過該程度有大有小。

在實際工程尤其是nlp任務中,由於硬聚類更加簡潔,所以使用得更頻繁。

文字聚類指的是對文件進行的聚類分析,被廣泛應用於文字挖掘和資訊檢索領域。最初文字聚類僅僅用於文字歸檔,後來人們又挖掘出了許多新用途,比如改善搜尋結果、生成同義詞,等等。

如果能將文件表示為向量,那麼剩下的演算法就與文件無關了。那麼,如何能將一篇文件表示為乙個向量呢?

步驟如下

(1)將訓練集文件的所有詞語構成乙個詞表,詞表之外的詞語稱為oov。設該詞表大小為n。

(2)對未知的新文件,只統計該文件中的屬於詞表中的詞的詞頻,構成長度為n的向量,視為該文字的特徵向量。

詞袋模型的計算成本很低。同時,『人吃魚』和『魚吃人』的向量特徵是一模一樣的,因為詞袋模型只關注詞頻資料。這好像很荒謬,但是詞袋模型依然是乙個很難打敗的基線模型。

聚類演算法包括但不限於:k-means聚類,密度聚類,層次聚類,本文以k-means聚類演算法為例,解釋聚類演算法的思想,其步驟如下:

(1)選取k個點作為k個簇的初始質心

(2)將所有的點分別分配給最近的質心所在的簇

(3)重新計算每個簇的質心

(4)重複步驟(2)和(3)直到質心不再變化

由於該演算法不保證收斂到全域性最優,因此初始質心的選取對該演算法的執行結果影響非常大。如果選取不當,則可能收斂到乙個較差的區域性最優點。

樸素的實現經常隨機選取質心,相當於逃避了這個問題。使用這種方式時,使用者需要多執行幾次,根據準則函式選取最佳結果。當資料量很大,往往不夠經濟。

一種更高效的方法是,將質心的選取也視作準則函式進行迭代式優化的過程。質心先只取乙個,然後每多選取乙個質心,都需要該質心滿足使得準則函式的值下降乙個隨機比例k。直到質心列表的質心數目達到要求為止。而樸素的實現相當於每次增加質心都是完全隨機的,孰優孰劣,一目了然。

K means 無監督NLP文字聚類

用kmeans對有標註少量文字做了個無監督分類,效果一般般。原因可能是 1.停用詞不全面 2.kmeans等分類器對於 高緯度向量 分類能力交叉,可以考慮降維再分類 3.部分詞頻在多個型別的文字中重複高頻出現 coding utf 8 created on wed sep 5 13 23 31 20...

文字挖掘之聚類演算法之CLARA聚類演算法

clara 大型應用中的聚類方法 kaufmann and rousseeuw in 1990 不考慮整個資料集,而是選擇資料的一小部分作為樣本.clara演算法的步驟 它從資料集中抽取多個樣本集,對每個樣本集使用pam,並以最好的聚類作為輸出 clara 演算法的步驟 1 for i 1 to v...

文字聚類 用k means對文字進行聚類

coding utf 8 created on thu nov 16 10 08 52 2017 author li pc import jieba from sklearn.feature extraction.text import tfidfvectorizer from sklearn.cl...