private def computeSimilarityScoresPerTweet()

in representation-scorer/server/src/main/scala/com/twitter/representationscorer/twistlyfeatures/Scorer.scala [157:369]


  private def computeSimilarityScoresPerTweet(
    engagements: Engagements,
    tweetScores: Map[TweetId, Seq[ScoreResult]],
    authorScores: Map[UserId, Seq[ScoreResult]]
  ): SimClustersRecentEngagementSimilarities = {
    val favs7d = engagements.favs7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val favs1d = engagements.favs1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val retweets7d = engagements.retweets7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val retweets1d = engagements.retweets1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val follows30d = engagements.follows30d.view
      .flatMap(s => authorScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val follows7d = engagements.follows7d.view
      .flatMap(s => authorScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val shares7d = engagements.shares7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val shares1d = engagements.shares1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val replies7d = engagements.replies7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val replies1d = engagements.replies1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val originalTweets7d = engagements.originalTweets7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val originalTweets1d = engagements.originalTweets1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val videoViews7d = engagements.videoPlaybacks7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val videoViews1d = engagements.videoPlaybacks1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val block30d = engagements.block30d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val block7d = engagements.block7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val block1d = engagements.block1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val mute30d = engagements.mute30d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val mute7d = engagements.mute7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val mute1d = engagements.mute1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val report30d = engagements.report30d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val report7d = engagements.report7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val report1d = engagements.report1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val dontlike30d = engagements.dontlike30d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val dontlike7d = engagements.dontlike7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val dontlike1d = engagements.dontlike1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val seeFewer30d = engagements.seeFewer30d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val seeFewer7d = engagements.seeFewer7d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val seeFewer1d = engagements.seeFewer1d.view
      .flatMap(s => tweetScores.get(s.targetId))
      .flatten.flatMap(_.score)
      .force

    val result = SimClustersRecentEngagementSimilarities(
      fav1dLast10Max = max(favs1d),
      fav1dLast10Avg = avg(favs1d),
      fav7dLast10Max = max(favs7d),
      fav7dLast10Avg = avg(favs7d),
      retweet1dLast10Max = max(retweets1d),
      retweet1dLast10Avg = avg(retweets1d),
      retweet7dLast10Max = max(retweets7d),
      retweet7dLast10Avg = avg(retweets7d),
      follow7dLast10Max = max(follows7d),
      follow7dLast10Avg = avg(follows7d),
      follow30dLast10Max = max(follows30d),
      follow30dLast10Avg = avg(follows30d),
      share1dLast10Max = max(shares1d),
      share1dLast10Avg = avg(shares1d),
      share7dLast10Max = max(shares7d),
      share7dLast10Avg = avg(shares7d),
      reply1dLast10Max = max(replies1d),
      reply1dLast10Avg = avg(replies1d),
      reply7dLast10Max = max(replies7d),
      reply7dLast10Avg = avg(replies7d),
      originalTweet1dLast10Max = max(originalTweets1d),
      originalTweet1dLast10Avg = avg(originalTweets1d),
      originalTweet7dLast10Max = max(originalTweets7d),
      originalTweet7dLast10Avg = avg(originalTweets7d),
      videoPlayback1dLast10Max = max(videoViews1d),
      videoPlayback1dLast10Avg = avg(videoViews1d),
      videoPlayback7dLast10Max = max(videoViews7d),
      videoPlayback7dLast10Avg = avg(videoViews7d),
      block1dLast10Max = max(block1d),
      block1dLast10Avg = avg(block1d),
      block7dLast10Max = max(block7d),
      block7dLast10Avg = avg(block7d),
      block30dLast10Max = max(block30d),
      block30dLast10Avg = avg(block30d),
      mute1dLast10Max = max(mute1d),
      mute1dLast10Avg = avg(mute1d),
      mute7dLast10Max = max(mute7d),
      mute7dLast10Avg = avg(mute7d),
      mute30dLast10Max = max(mute30d),
      mute30dLast10Avg = avg(mute30d),
      report1dLast10Max = max(report1d),
      report1dLast10Avg = avg(report1d),
      report7dLast10Max = max(report7d),
      report7dLast10Avg = avg(report7d),
      report30dLast10Max = max(report30d),
      report30dLast10Avg = avg(report30d),
      dontlike1dLast10Max = max(dontlike1d),
      dontlike1dLast10Avg = avg(dontlike1d),
      dontlike7dLast10Max = max(dontlike7d),
      dontlike7dLast10Avg = avg(dontlike7d),
      dontlike30dLast10Max = max(dontlike30d),
      dontlike30dLast10Avg = avg(dontlike30d),
      seeFewer1dLast10Max = max(seeFewer1d),
      seeFewer1dLast10Avg = avg(seeFewer1d),
      seeFewer7dLast10Max = max(seeFewer7d),
      seeFewer7dLast10Avg = avg(seeFewer7d),
      seeFewer30dLast10Max = max(seeFewer30d),
      seeFewer30dLast10Avg = avg(seeFewer30d),
    )
    trackStats(result)
    result
  }