Class SuggestionsChanges
- java.lang.Object
-
- org.languagetool.rules.spelling.suggestions.SuggestionsChanges
-
public class SuggestionsChanges extends java.lang.Object
Helper 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 class
SuggestionsChanges.Report
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Long>
computationTime
private SuggestionChangesTestConfig
config
private java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>
correctSuggestions
private SuggestionChangesExperiment
currentExperiment
private java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Long>
datasetComputationTime
private java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>
datasetCorrectSuggestions
private java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>
datasetNotFoundSuggestions
private java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>
datasetNumSamples
private java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>
datasetSuggestionPosSum
private java.util.concurrent.ConcurrentMap<org.apache.commons.lang3.tuple.Pair<SuggestionChangesExperiment,SuggestionChangesDataset>,java.lang.Integer>
datasetTextSize
private java.util.List<SuggestionChangesExperiment>
experiments
private static SuggestionsChanges
instance
private java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>
notFoundSuggestions
private java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>
numSamples
private java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>
suggestionPosSum
private java.util.concurrent.ConcurrentMap<SuggestionChangesExperiment,java.lang.Integer>
textSize
-
Constructor Summary
Constructors Modifier Constructor Description private
SuggestionsChanges(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)
SuggestionChangesTestConfig
getConfig()
@Nullable SuggestionChangesExperiment
getCurrentExperiment()
java.util.List<SuggestionChangesExperiment>
getExperiments()
static @Nullable SuggestionsChanges
getInstance()
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 void
init(@NotNull SuggestionChangesTestConfig config, @Nullable java.io.BufferedWriter reportWriter)
static boolean
isRunningExperiment(java.lang.String name)
void
setCurrentExperiment(@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 namevoid
trackExperimentResult(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()
-
-