* @author Vitaliy.Bibaev
*/
class FeatureManagerImpl : FeatureManager, ApplicationComponent {
+ private var arrayLength = 0
+
override lateinit var binaryFactors: List<BinaryFeature> private set
override lateinit var doubleFactors: List<DoubleFeature> private set
override lateinit var categorialFactors: List<CatergorialFeature> private set
override lateinit var ignoredFactors: Set<String> private set
private lateinit var allFeatures: List<Feature>
+ override val featureArrayLength: Int
+ get() = arrayLength
+
override fun isUserFeature(name: String): Boolean = false
override fun initComponent() {
ignoredFactors = FeatureReader.ignoredFactors()
+ arrayLength = order.size
val features: ArrayList<Feature> = ArrayList(binaryFactors)
features.addAll(doubleFactors)
features.addAll(categorialFactors)
*/
package com.intellij.sorting
+import com.intellij.completion.FeatureManager
import com.intellij.openapi.components.ApplicationComponent
import com.intellij.openapi.components.ServiceManager
import com.jetbrains.completion.ranker.CompletionRanker
-import com.jetbrains.completion.ranker.features.FeatureReader.binaryFactors
-import com.jetbrains.completion.ranker.features.FeatureReader.categoricalFactors
-import com.jetbrains.completion.ranker.features.FeatureReader.completionFactors
-import com.jetbrains.completion.ranker.features.FeatureReader.doubleFactors
-import com.jetbrains.completion.ranker.features.FeatureReader.featuresOrder
-import com.jetbrains.completion.ranker.features.FeatureReader.ignoredFactors
-import com.jetbrains.completion.ranker.features.FeatureTransformer
-import com.jetbrains.completion.ranker.features.IgnoredFactorsMatcher
+import com.jetbrains.completion.ranker.features.NewFeatureTransformer
import com.jetbrains.completion.ranker.features.Transformer
private set
override fun initComponent() {
- val binary = binaryFactors()
- val double = doubleFactors()
- val categorical = categoricalFactors()
- val factors = completionFactors()
- val order = featuresOrder()
- val ignored = ignoredFactors()
-// featureTransformer = NewFeatureTransformer(FeatureManager.getInstance().allFeatures().associate { it.name to it })
-
- featureTransformer = FeatureTransformer(
- binary,
- double,
- categorical,
- order,
- factors,
- IgnoredFactorsMatcher(ignored)
- )
+ val featureManager = FeatureManager.getInstance()
+ val factors = featureManager.completionFactors
+ val ignored = featureManager.ignoredFactors
+ val features = featureManager.allFeatures().associate { it.name to it }
+ featureTransformer = NewFeatureTransformer(features, ignored, factors, featureManager.featureArrayLength)
}
-
}
-
class MLRanker(val provider: FeatureTransformerProvider) : Ranker {
private val featureTransformer = provider.featureTransformer