【发布时间】:2018-03-03 06:55:48
【问题描述】:
我正在学习从文本文档中提取特征,发现this tutorial。我无法理解从末尾开始的第三行中的 np.asarray(doc_counts.sum(axis=0)).ravel() 正在返回什么。我检查了这个,它返回了数字列表。我猜是词频,但我不确定。
idx: -1 * idx[1] 在做什么,尤其是乘以 -1。我检查了zip() 函数是否有.idx 关联到访问元素,但找不到。
代码:
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
docs = <load your docs as an iterable>
count_vect = CountVectorizer()
doc_counts = count_vect.fit_transform(docs)
word_counts = zip(count_vect.get_feature_names(), np.asarray(doc_counts.sum(axis=0)).ravel())
word_counts = sorted(word_counts, key=lambda idx: -1 * idx[1] )
# Display top 100 words by frequency
word_counts[:100]
谁能解释一下这两行。
提前致谢。
【问题讨论】:
-
word_counts中的每个项目idx被排序就像它是-1 * idx[1]。 -
我真的不明白否决这个问题的动机。是不是因为**点击 ***down-vote 按钮**** 比回答问题更容易让初学者远离 SO?
-
@OmPrakash 否决票是因为您将这个网站的问题弄得一团糟,这些问题很容易通过简单的谷歌搜索得到回答。 "what does lambda do in sorted python"
-
你的问题太模糊了。例如,不清楚您是否根本不理解 lambda 函数的概念,在这种情况下,不阅读文档的反对意见是正确的,或者您是否不知道为什么要应用这个特定的 lambda 函数您提供的代码,或者您是否不了解特定的 lambda 函数如何对您的输入进行排序。在任何情况下,对一个不清楚且研究不当的问题投反对票是有道理的。我们不希望网站上出现更多此类问题,因为我们投反对票而不是回答。
-
@gobrewers14,如果问题不清楚,我深表歉意。问题不是关于python的
lambda或zip(),而是关于内部代码是如何工作的。
标签: python numpy lambda scikit-learn nltk