我想创建一个包含我存储在名为top100的pandas对象中的电影文本的单词。我的pandas对象有3列:
我现在想使用sklearn中的CountVectorizer函数为我的数据框中的每部电影创建一个“文字”列的词袋:
from sklearn.feature_extraction.text import CountVectorizer
bow = CountVectorizer().fit(top100["Text"])
bow.vocabulary_
这会返回一个字典,其中所有单词都具有极值:
{u'raining': 6487,
u'chieko': 1373,
u'yellow': 9122,
u'four': 3320,
u'woods': 9058,
u'hanging': 3748,
u'francesca': 3330,
u'increase': 4163,
u'electricity': 2667,
u'doppelg\xe4nger': 2495,
u'lori': 4886,
u'demoted': 2164,
u'lord': 4883,
u'immature': 4088,
.....
我尝试了各种各样的东西,但我不知道如何解释这个结果。即使我输入2个小句子并尝试创建一个单词云,它也会创建一个包含所有单词和一些高值的字典。
该函数不应为每部电影创建字典。这本词典的关键词应该是出现在所有组合文本中的所有单词。值应该是这些单词在这部特定电影的文本中出现的次数。
提前致谢!
答案 0 :(得分:0)
试试这个:
cv = CountVectorizer()
bow = cv.fit_transform(top100["Text"])
r = pd.SparseDataFrame(bow, columns=vect.get_feature_names(),
index=top100.index, default_fill_value=0)
print(r) # this will help you to undestand how CountVectorizer works...
注意:此解决方案需要Pandas 0.20.0+版本。