the-algorithm/src/scala/com/twitter/simclusters_v2/common/SimClustersMultiEmbedding.scala
twitter-team ef4c5eb65e Twitter Recommendation Algorithm
Please note we have force-pushed a new initial commit in order to remove some publicly-available Twitter user information. Note that this process may be required in the future.
2023-03-31 17:36:31 -05:00

33 lines
1017 B
Scala

package com.twitter.simclusters_v2.common
import com.twitter.simclusters_v2.common.SimClustersMultiEmbeddingId._
import com.twitter.simclusters_v2.thriftscala.SimClustersMultiEmbedding.{Ids, Values}
import com.twitter.simclusters_v2.thriftscala.{
SimClustersMultiEmbedding,
SimClustersEmbeddingId,
SimClustersMultiEmbeddingId
}
/**
* Helper methods for SimClustersMultiEmbedding
*/
object SimClustersMultiEmbedding {
// Convert a multiEmbedding to a list of (embeddingId, score)
def toSimClustersEmbeddingIdWithScores(
simClustersMultiEmbeddingId: SimClustersMultiEmbeddingId,
simClustersMultiEmbedding: SimClustersMultiEmbedding
): Seq[(SimClustersEmbeddingId, Double)] = {
simClustersMultiEmbedding match {
case Values(values) =>
values.embeddings.zipWithIndex.map {
case (embeddingWithScore, i) =>
(toEmbeddingId(simClustersMultiEmbeddingId, i), embeddingWithScore.score)
}
case Ids(ids) =>
ids.ids.map(_.toTuple)
}
}
}