2017-06-17 39 views
0

所以我對python(和R)和單詞向量很陌生,一直在堅持如何完成我的下一步學習如何可視化。雖然我正在嘗試使用python,但我仍然願意將其應用於R。我將簡要解釋我得到了多少以及我想去哪裏。聚類和繪製單詞向量-python or R

因此,我有一個用戶列表,收到與該用戶關聯的10部電影的列表。我已經設法得到清單,創建一個輸出csv文件,並匹配用戶屬性,如性別,年齡,位置等。我已經提取和創建了電影的屬性,以及類型和製作年份。

但接下來,我試圖將用戶聚類,以查看電影列表與每個用戶的相似程度。我這樣做的方式是,我已經提取了每部電影的類型並將它們放入列表中。因此,具有說用戶1'喜劇',戲劇',浪漫喜劇'的用戶的用戶將類似於喜歡喜劇,浪漫但不喜歡'恐怖','犯罪'的用戶3的另一用戶2, 「驚悚片」。我想象的是基於這些流派的5-6個羣組(如'行動','喜劇','戲劇','家庭','恐怖')。如果我策劃,我會看到喜歡看用戶1和用戶2在一個羣組中(圍繞喜劇羣集),用戶3在另一羣組(靠近恐怖羣集)等等。然後,我可以根據年齡,性別等對這些情節進行着色,以查看與同類電影相同的年齡組,還是會看到更多的男性更接近「動作」電影集羣,更多的女性更喜歡「浪漫」?

這就是我卡住的地方。我已經看着sckit來試圖描繪這一點,但不知道該去哪裏。這些列表也有不同的長度,我已經能夠獲得用戶相對於其他用戶的餘弦相似度。我設法創建了用戶號碼的數據框和第二列中的流派列表。我已經設法創建一個csv文件,並將用戶和流派分開放在自己的專欄中。我現在如何獲取這些信息並將其聚集或繪製在向量空間中?下面是我已經能夠構造並用於計算不同用戶之間的餘弦相似度的數據幀。

ID Genre 
0 1 ['Adventure', ""Children's"", 'Drama', 'Comedy', 'Musical', 'Horror', 'Drama', 'Drama', 'Mystery', 'Documentary', 'Comedy', 'Drama', 'Romance', 'Drama', 'Comedy', 'Romance']" 
1 2 ['Horror', 'Mystery', 'Thriller', 'Documentary', 'Action', 'Comedy', 'Musical', 'Sci-Fi', 'Horror', 'Sci-Fi', 'Thriller', 'Adventure', 'Animation', ""Children's"", 'Musical', 'Romance', 'Documentary', 'Action', 'Adventure', 'Western', 'Comedy', 'Drama', 'Comedy']" 
2 3 ['Documentary', 'Drama', 'Thriller', 'Documentary', 'Comedy', 'Horror', 'Drama', 'Romance', 'Documentary', 'Comedy', 'Drama', 'Romance', 'Action', 'Adventure', 'Sci-Fi', 'War', 'Drama'] 
3 4 ['Drama', 'War', 'Drama', 'Drama', 'Romance', 'Action', 'Thriller', 'Comedy', 'Horror', 'Horror', 'Comedy', 'Musical', 'Crime', 'Drama', 'Horror', 'Comedy', 'Horror'] 
4 5 ['Documentary', 'Drama', 'Documentary', 'Comedy', 'Romance', 'Drama', 'Horror', 'Comedy', 'Drama', 'Animation', ""Children's"", 'Action', 'Drama', 'Drama', 'Comedy', 'Romance']" 
5 6 ['Horror', 'Documentary', 'Comedy', 'Horror', 'Drama', 'Drama', 'Drama', 'Action', 'Comedy', 'Comedy', 'Horror'] 
... 

回答

1

我不確定你真的想做什麼,但如果情感分析是你的目標,我會建議你這樣做。

a = ['Horror', 'Mystery', 'Thriller', 'Documentary', 'Action', 'Comedy', 'Musical', 'Sci-Fi', 'Horror', 'Sci-Fi', 'Thriller', 'Adventure', 'Animation', 'Musical', 'Romance', 'Documentary', 'Action', 'Adventure', 'Western', 'Comedy', 'Drama', 'Comedy'] 

>>> b= set(a) 

>>> b 
{'Action', 'Romance', 'Documentary', 'Sci-Fi', 'Adventure', 'Musical', 'Animation', 'Thriller', 'Western', 'Drama', 'Comedy', 'Horror', 'Mystery'} 

現在,您可以電影類型轉換爲數值,如

'Action' = 1 

之後,你可以集羣中的數據,但算法的選擇也不是那麼simple.You可以使用k均值,模糊c表示或其他一些算法。您可以閱讀更多關於此的信息here