Class SuggestionsChanges
- java.lang.Object
-
- org.languagetool.rules.spelling.suggestions.SuggestionsChanges
-
public class SuggestionsChanges extends java.lang.ObjectHelper class for SuggestionChangesTest, tracks experiment configuration and results Rules should use getInstance() != null -> getInstance().getCurrentExperiment() in constructors to fetch relevant parameters Use isRunningExperiment if no parameters are needed
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classSuggestionsChanges.Report
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Long>computationTimeprivate SuggestionChangesTestConfigconfigprivate java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>correctSuggestionsprivate SuggestionChangesExperimentcurrentExperimentprivate java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Long>datasetComputationTimeprivate java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>datasetCorrectSuggestionsprivate java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>datasetNotFoundSuggestionsprivate java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>datasetNumSamplesprivate java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>datasetSuggestionPosSumprivate java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>datasetTextSizeprivate java.util.List<SuggestionChangesExperiment>experimentsprivate static SuggestionsChangesinstanceprivate java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>notFoundSuggestionsprivate java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>numSamplesprivate java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>suggestionPosSumprivate java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>textSize
-
Constructor Summary
Constructors Modifier Constructor Description privateSuggestionsChanges(SuggestionChangesTestConfig config, java.io.BufferedWriter reportWriter)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.util.List<SuggestionChangesExperiment>generateExperiments(java.util.List<SuggestionChangesExperimentRuns> experimentSpecs)SuggestionChangesTestConfiggetConfig()@Nullable SuggestionChangesExperimentgetCurrentExperiment()java.util.List<SuggestionChangesExperiment>getExperiments()static @Nullable SuggestionsChangesgetInstance()null if nothing is configured, i.e.private java.util.List<java.util.Map<java.lang.String,java.lang.Object>>gridsearch(java.util.SortedMap<java.lang.String,java.util.List<java.lang.Object>> grid, java.util.List<java.util.Map<java.lang.String,java.lang.Object>> current)(package private) static voidinit(@NotNull SuggestionChangesTestConfig config, @Nullable java.io.BufferedWriter reportWriter)static booleanisRunningExperiment(java.lang.String name)voidsetCurrentExperiment(@Nullable SuggestionChangesExperiment experiment)For testing changes to suggestion ordering using a data corpus; iterate over experiments (including grid search for parameters) original behavior (for A/B testing) can be modeled by an experiment without parameters and an arbitrary namevoidtrackExperimentResult(org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset> source, int position, int resultTextSize, long resultComputationTime)
-
-
-
Field Detail
-
instance
private static SuggestionsChanges instance
-
config
private final SuggestionChangesTestConfig config
-
experiments
private final java.util.List<SuggestionChangesExperiment> experiments
-
correctSuggestions
private final java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer> correctSuggestions
-
notFoundSuggestions
private final java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer> notFoundSuggestions
-
suggestionPosSum
private final java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer> suggestionPosSum
-
textSize
private final java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer> textSize
-
computationTime
private final java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Long> computationTime
-
numSamples
private final java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer> numSamples
-
datasetCorrectSuggestions
private final java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer> datasetCorrectSuggestions
-
datasetNotFoundSuggestions
private final java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer> datasetNotFoundSuggestions
-
datasetSuggestionPosSum
private final java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer> datasetSuggestionPosSum
-
datasetNumSamples
private final java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer> datasetNumSamples
-
datasetTextSize
private final java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer> datasetTextSize
-
datasetComputationTime
private final java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Long> datasetComputationTime
-
currentExperiment
private SuggestionChangesExperiment currentExperiment
-
-
Constructor Detail
-
SuggestionsChanges
private SuggestionsChanges(SuggestionChangesTestConfig config, java.io.BufferedWriter reportWriter)
-
-
Method Detail
-
getInstance
@Nullable public static @Nullable SuggestionsChanges getInstance()
null if nothing is configured, i.e. in most normal use cases
-
init
static void init(@NotNull @NotNull SuggestionChangesTestConfig config, @Nullable @Nullable java.io.BufferedWriter reportWriter)
-
gridsearch
private java.util.List<java.util.Map<java.lang.String,java.lang.Object>> gridsearch(java.util.SortedMap<java.lang.String,java.util.List<java.lang.Object>> grid, java.util.List<java.util.Map<java.lang.String,java.lang.Object>> current)
-
generateExperiments
private java.util.List<SuggestionChangesExperiment> generateExperiments(java.util.List<SuggestionChangesExperimentRuns> experimentSpecs)
-
getConfig
public SuggestionChangesTestConfig getConfig()
-
getCurrentExperiment
@Nullable public @Nullable SuggestionChangesExperiment getCurrentExperiment()
-
setCurrentExperiment
public void setCurrentExperiment(@Nullable @Nullable SuggestionChangesExperiment experiment)For testing changes to suggestion ordering using a data corpus; iterate over experiments (including grid search for parameters) original behavior (for A/B testing) can be modeled by an experiment without parameters and an arbitrary name
-
isRunningExperiment
public static boolean isRunningExperiment(java.lang.String name)
-
trackExperimentResult
public void trackExperimentResult(org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset> source, int position, int resultTextSize, long resultComputationTime)
-
getExperiments
public java.util.List<SuggestionChangesExperiment> getExperiments()
-
-