我想创造一袋文字的电影文本,我已经存储在一个熊猫对象名为top100。我的熊猫对象有三个栏:
现在,我希望使用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个小句子,并尝试用它创建一个单词云,它也会创建一个字典,其中包含所有的单词和一些高值。
我真正想让CountVectorizer返回的东西
函数不应该为每部电影创建一个字典。这本词典的关键词应该是所有出现在莫比语的所有文本中的单词。值应该是这些词在这一特定电影的文本中出现的次数。
提前感谢!
发布于 2017-05-27 21:41:08
试试这个:
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+版本。
https://stackoverflow.com/questions/44221776
复制相似问题