这是来自文本分析练习的,使用了烂番茄的数据。数据位于commentss.csv中,作为pandas DataFrame(“评论家”)导入。
本练习的目的是
构造文档频率(df)的累积分布。𝑥轴是文档计数(𝑥𝑖),而𝑦轴是文档计数(𝑥𝑖)。出现次数少于(times)次的单词所占的百分比。例如,在𝑥= 5处,绘制一个表示单词百分比或数量的点出现在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()
我发现的传送样本以这种方式从那个“单词袋”矩阵计算每个单词的文档矩阵:
docs_per_word = X.sum(axis=0)
我认为这可行;我已经看过结果了。
但是我对实际发生的事情,它为什么起作用,被总结的内容以及如何能够无需查看其他人的工作就能弄清楚如何做到这一点感到困惑。
我昨晚发现了这个。它实际上是行不通的。我误解了结果。
X(我的单词袋)是一个单词频率向量。对X求和可提供有关每个单词在文档语料库中出现的频率的信息。但是有关单词出现在多少文档中的说明(例如,介于0和4(代表四个文档),而不是出现在那些文档集中的次数(四个文档为0-n)。
我需要将X转换为布尔矩阵。 (现在,我只需要弄清楚该怎么做。;-)