簡體   English   中英

朴素貝葉斯、文本分析、SKLearn

[英]Naive Bayes, Text Analysis, SKLearn

這是來自使用爛番茄數據的文本分析練習。 數據在critics.csv,導入為pandas DataFrame,“critics”。

這部分練習是為了

構建文檔頻率 (df) 的累積分布。 -axis 是文檔計數 (),-axis 是出現少於 () 次的單詞的百分比。 例如,在 =5 處,plot 一個點,表示出現在 5 個或更少文檔中的單詞的百分比或數量。

在之前的練習中,我有一個“詞袋”

from sklearn.feature_extraction.text import CountVectorizer

vectorizer = CountVectorizer()

# build the vocabulary and transform to a "bag of words"
X = vectorizer.fit_transform(critics.quote)

# Convert matrix to Compressed Sparse Column (CSC) format
X = X.tocsc()  

我發現的 Evey 樣本以這種方式從“詞袋”矩陣中計算每個詞的文檔矩陣:

docs_per_word = X.sum(axis=0) 

我相信這行得通; 我看過結果。

但是我對實際發生的事情以及它為什么起作用、總結了什么以及我如何能夠弄清楚如何做到這一點而不需要查看其他人做了什么感到困惑。

我昨晚想通了。 它實際上不起作用; 我誤解了結果。 (我認為它正在工作,因為 Jupyter 筆記本只在一個大數組中顯示了幾個值。但是,仔細檢查,數組值太大了。數組中的最大值大於“文檔”的數量!)

X(我的“詞袋”)是一個詞頻向量。對 X 求和提供了關於每個詞在文檔語料庫中出現頻率的信息。但是關於一個詞出現在多少個文檔中的說明(例如,在 0 到 4 之間四個文檔),而不是它在這些文檔的集合中出現的次數(四個文檔為 0 - n)。

我需要將 X 轉換為 boolean 矩陣。 (現在我只需要弄清楚如何做到這一點。;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM