36 lines
1.4 KiB
Scala
36 lines
1.4 KiB
Scala
package com.twitter.timelines.prediction.common.aggregates.real_time
|
|
|
|
import com.twitter.ml.api.DataRecord
|
|
import com.twitter.ml.api.Feature
|
|
import com.twitter.ml.api.FeatureContext
|
|
import com.twitter.ml.featurestore.catalog.entities.core.Tweet
|
|
import com.twitter.ml.featurestore.catalog.features.trends.TweetTrendsScores
|
|
import com.twitter.ml.featurestore.lib.TweetId
|
|
import com.twitter.ml.featurestore.lib.data.PredictionRecord
|
|
import com.twitter.ml.featurestore.lib.data.PredictionRecordAdapter
|
|
import com.twitter.ml.featurestore.lib.feature.BoundFeature
|
|
import com.twitter.ml.featurestore.lib.feature.BoundFeatureSet
|
|
import com.twitter.timelines.prediction.common.adapters.TimelinesAdapterBase
|
|
import java.util
|
|
import scala.collection.JavaConverters._
|
|
|
|
object TweetFeaturesAdapter extends TimelinesAdapterBase[PredictionRecord] {
|
|
|
|
private val ContinuousFeatureMap: Map[BoundFeature[TweetId, Double], Feature.Continuous] = Map()
|
|
|
|
val TweetFeaturesSet: BoundFeatureSet = new BoundFeatureSet(ContinuousFeatureMap.keys.toSet)
|
|
|
|
val AllFeatures: Seq[Feature[_]] =
|
|
ContinuousFeatureMap.values.toSeq
|
|
|
|
private val adapter = PredictionRecordAdapter.oneToOne(TweetFeaturesSet)
|
|
|
|
override def getFeatureContext: FeatureContext = new FeatureContext(AllFeatures: _*)
|
|
|
|
override def commonFeatures: Set[Feature[_]] = Set.empty
|
|
|
|
override def adaptToDataRecords(record: PredictionRecord): util.List[DataRecord] = {
|
|
List(adapter.adaptToDataRecord(record)).asJava
|
|
}
|
|
}
|