我试图在PySpark中使用https://nlp.stanford.edu/projects/GloVe/预先训练的手套模型实现一个简单的Doc2Vec算法。
我有两个RDD:
假设您有一个函数tokenize
将字符串转换为单词列表。然后您可以FlatMap
Documents
获取元组的RDD
(word,document id)
:
flattened_docs = documents.flatMap(lambda x: [(word, x[0]) for word in tokenize(x[1])])
然后与
单词
连接将得到(word,(document id,vector))
元组,此时可以删除单词:
doc_vectors = flattened_docs.join(words).values
请注意,这是一个内部连接,因此您将丢弃一个没有嵌入的单词。因为您可能希望将这些单词计算在平均值中,所以左联接可能更合适,然后您必须用零向量(或您选择的任何向量)替换任何生成的
none
。
final_vectors = doc_vectors.groupByKey().mapValues(average)
(请原谅我受Scala影响的Python。我已经有一段时间没有使用pyspark了,我还没有检查它是
FlatMap
还是Flat_Map
等等。)
问题内容: 我必须在Python中找到列表的平均值。到目前为止,这是我的代码 我已经知道了,所以它可以将列表中的值相加,但是我不知道如何将其划分为它们? 问题答案: 在Python 3.4+上,你可以使用 statistics.mean() 在旧版本的Python上,你可以执行 在Python 2上,你需要转换len为浮点数才能进行浮点数除法 无需使用。它慢得多,并已在Python 3 中删除。
我正在尝试使用用户输入将数字放入一个数组,然后找到这些数字的平均值,也找到哪些数字大于平均值。这些数字进入一个数组,但当我试图求平均数时,我无法求出平均数,以及哪些数字大于平均数,因为对于试图求出大于平均数的数字的部分,并非所有变量都是可见的。但是,当我允许这个部分看到所有的变量(don't But{}围绕某些部分)时,它会找到每一个数的平均值。现在,它为每个数字打印平均值,而为大于平均值的数字打
我试图理解新的Java8流API。 http://docs.oracle.com/javase/tutorial/collections/streams/reduction.html 我找到了使用collect API查找数字平均值的示例。但我觉得,使用reduce()也可以做到这一点。
我似乎无法从用户输入的分数中计算出平均分数。我也不能让它停止例外输入大于100或小于0。有人能告诉我我做错了什么吗?谢谢
avg 获得某个列字段的平均值avg($table, $column, $where) table [string] 表名. column [string] 列字段 where (optional) [array] WHERE 条件.avg($table, $join, $column, $where) table [string] The table name. join [array] Tab
avg 获得某个列字段的平均值avg($table, $column, $where) table [string] 表名. column [string] 列字段 where (optional) [array] WHERE 条件.avg($table, $join, $column, $where) table [string] The table name. join [array] Tab