-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
23 changed files
with
184 additions
and
186 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 0 additions & 23 deletions
23
src/main/java/at/medunigraz/imi/bst/n2c2/classifier/factory/BestClassifierFactory.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
32 changes: 32 additions & 0 deletions
32
...n/java/at/medunigraz/imi/bst/n2c2/classifier/factory/CriterionBasedClassifierFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package at.medunigraz.imi.bst.n2c2.classifier.factory; | ||
|
||
import at.medunigraz.imi.bst.n2c2.classifier.CriterionBasedClassifier; | ||
import at.medunigraz.imi.bst.n2c2.model.Criterion; | ||
|
||
import java.util.Arrays; | ||
import java.util.HashMap; | ||
import java.util.Map; | ||
|
||
public class CriterionBasedClassifierFactory implements ClassifierFactory<CriterionBasedClassifier> { | ||
|
||
protected final Map<Criterion, CriterionBasedClassifier> classifierByCriterion = new HashMap<>(); | ||
|
||
protected CriterionBasedClassifierFactory() { | ||
// Only used by subclasses | ||
} | ||
|
||
public CriterionBasedClassifierFactory(Class cls) { | ||
Arrays.stream(Criterion.classifiableValues()).forEach(c -> { | ||
try { | ||
classifierByCriterion.put(c, (CriterionBasedClassifier) cls.getDeclaredConstructor(Criterion.class).newInstance(c)); | ||
} catch (ReflectiveOperationException e) { | ||
throw new RuntimeException(e); | ||
} | ||
}); | ||
} | ||
|
||
@Override | ||
public CriterionBasedClassifier getClassifier(Criterion criterion) { | ||
return classifierByCriterion.get(criterion); | ||
} | ||
} |
48 changes: 48 additions & 0 deletions
48
src/main/java/at/medunigraz/imi/bst/n2c2/classifier/factory/FactoryProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
package at.medunigraz.imi.bst.n2c2.classifier.factory; | ||
|
||
import at.medunigraz.imi.bst.n2c2.classifier.FakeClassifier; | ||
import at.medunigraz.imi.bst.n2c2.classifier.MajorityClassifier; | ||
import at.medunigraz.imi.bst.n2c2.classifier.PatientBasedClassifier; | ||
import at.medunigraz.imi.bst.n2c2.nn.BiLSTMCharacterTrigramClassifier; | ||
import at.medunigraz.imi.bst.n2c2.nn.LSTMPreTrainedEmbeddingsClassifier; | ||
import at.medunigraz.imi.bst.n2c2.nn.LSTMSelfTrainedEmbeddingsClassifier; | ||
import at.medunigraz.imi.bst.n2c2.rules.RuleBasedClassifier; | ||
|
||
public abstract class FactoryProvider { | ||
|
||
public static CriterionBasedClassifierFactory getMajorityFactory() { | ||
return new CriterionBasedClassifierFactory(MajorityClassifier.class); | ||
} | ||
|
||
public static CriterionBasedClassifierFactory getRBCFactory() { | ||
return new CriterionBasedClassifierFactory(RuleBasedClassifier.class); | ||
} | ||
|
||
public static CriterionBasedClassifierFactory getSVMFactory() { | ||
return new SVMClassifierFactory(); | ||
} | ||
|
||
public static CriterionBasedClassifierFactory getSelfTrainedPerceptronFactory() { | ||
return new PerceptronClassifierFactory(); | ||
} | ||
|
||
public static CriterionBasedClassifierFactory getPreTrainedPerceptronFactory() { | ||
return new PerceptronClassifierFactory(true); | ||
} | ||
|
||
public static PatientBasedClassifierFactory getBiLSTMCharacterTrigramFactory() { | ||
return new PatientBasedClassifierFactory(BiLSTMCharacterTrigramClassifier.class); | ||
} | ||
|
||
public static ClassifierFactory<PatientBasedClassifier> getLSTMPreTrainedFactory() { | ||
return new PatientBasedClassifierFactory(LSTMPreTrainedEmbeddingsClassifier.class); | ||
} | ||
|
||
public static PatientBasedClassifierFactory getLSTMSelfTrainedFactory() { | ||
return new PatientBasedClassifierFactory(LSTMSelfTrainedEmbeddingsClassifier.class); | ||
} | ||
|
||
public static CriterionBasedClassifierFactory getFakeClassifierFactory() { | ||
return new CriterionBasedClassifierFactory(FakeClassifier.class); | ||
} | ||
} |
23 changes: 0 additions & 23 deletions
23
src/main/java/at/medunigraz/imi/bst/n2c2/classifier/factory/FakeClassifierFactory.java
This file was deleted.
Oops, something went wrong.
23 changes: 0 additions & 23 deletions
23
src/main/java/at/medunigraz/imi/bst/n2c2/classifier/factory/MajorityClassifierFactory.java
This file was deleted.
Oops, something went wrong.
15 changes: 0 additions & 15 deletions
15
src/main/java/at/medunigraz/imi/bst/n2c2/classifier/factory/NNClassifierFactory.java
This file was deleted.
Oops, something went wrong.
24 changes: 24 additions & 0 deletions
24
...ain/java/at/medunigraz/imi/bst/n2c2/classifier/factory/PatientBasedClassifierFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package at.medunigraz.imi.bst.n2c2.classifier.factory; | ||
|
||
import at.medunigraz.imi.bst.n2c2.classifier.PatientBasedClassifier; | ||
import at.medunigraz.imi.bst.n2c2.model.Criterion; | ||
|
||
|
||
public final class PatientBasedClassifierFactory implements ClassifierFactory<PatientBasedClassifier> { | ||
|
||
private final PatientBasedClassifier classifier; | ||
|
||
public PatientBasedClassifierFactory(Class cls) { | ||
try { | ||
classifier = (PatientBasedClassifier) cls.newInstance(); | ||
} catch (ReflectiveOperationException e) { | ||
throw new RuntimeException(e); | ||
} | ||
} | ||
|
||
@Override | ||
public PatientBasedClassifier getClassifier(Criterion criterion) { | ||
return classifier; | ||
} | ||
|
||
} |
30 changes: 8 additions & 22 deletions
30
src/main/java/at/medunigraz/imi/bst/n2c2/classifier/factory/PerceptronClassifierFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,20 @@ | ||
package at.medunigraz.imi.bst.n2c2.classifier.factory; | ||
|
||
import at.medunigraz.imi.bst.n2c2.classifier.Classifier; | ||
import at.medunigraz.imi.bst.n2c2.classifier.PerceptronClassifier; | ||
import at.medunigraz.imi.bst.n2c2.model.Criterion; | ||
|
||
import java.util.HashMap; | ||
import java.util.Map; | ||
import java.util.Arrays; | ||
|
||
public class PerceptronClassifierFactory implements ClassifierFactory { | ||
public class PerceptronClassifierFactory extends CriterionBasedClassifierFactory { | ||
|
||
private static final Map<Criterion, Classifier> classifierByCriterion = new HashMap<>(); | ||
static { | ||
classifierByCriterion.put(Criterion.MAKES_DECISIONS, new PerceptronClassifier(Criterion.MAKES_DECISIONS)); | ||
classifierByCriterion.put(Criterion.HBA1C, new PerceptronClassifier(Criterion.HBA1C)); | ||
classifierByCriterion.put(Criterion.ASP_FOR_MI, new PerceptronClassifier(Criterion.ASP_FOR_MI)); | ||
classifierByCriterion.put(Criterion.ALCOHOL_ABUSE, new PerceptronClassifier(Criterion.ALCOHOL_ABUSE)); | ||
classifierByCriterion.put(Criterion.ADVANCED_CAD, new PerceptronClassifier(Criterion.ADVANCED_CAD)); | ||
classifierByCriterion.put(Criterion.CREATININE, new PerceptronClassifier(Criterion.CREATININE)); | ||
classifierByCriterion.put(Criterion.ENGLISH, new PerceptronClassifier(Criterion.ENGLISH)); | ||
classifierByCriterion.put(Criterion.MI_6MOS, new PerceptronClassifier(Criterion.MI_6MOS)); | ||
classifierByCriterion.put(Criterion.DRUG_ABUSE, new PerceptronClassifier(Criterion.DRUG_ABUSE)); | ||
classifierByCriterion.put(Criterion.MAJOR_DIABETES, new PerceptronClassifier(Criterion.MAJOR_DIABETES)); | ||
classifierByCriterion.put(Criterion.KETO_1YR, new PerceptronClassifier(Criterion.KETO_1YR)); | ||
classifierByCriterion.put(Criterion.ABDOMINAL, new PerceptronClassifier(Criterion.ABDOMINAL)); | ||
classifierByCriterion.put(Criterion.DIETSUPP_2MOS, new PerceptronClassifier(Criterion.DIETSUPP_2MOS)); | ||
public PerceptronClassifierFactory() { | ||
Arrays.stream(Criterion.classifiableValues()).forEach(c -> | ||
classifierByCriterion.put(c, new PerceptronClassifier(c, false))); | ||
} | ||
|
||
@Override | ||
public Classifier getClassifier(Criterion criterion) { | ||
return classifierByCriterion.get(criterion); | ||
public PerceptronClassifierFactory(boolean preTrained) { | ||
Arrays.stream(Criterion.classifiableValues()).forEach(c -> | ||
classifierByCriterion.put(c, new PerceptronClassifier(c, preTrained))); | ||
} | ||
|
||
} |
23 changes: 0 additions & 23 deletions
23
src/main/java/at/medunigraz/imi/bst/n2c2/classifier/factory/RuleBasedClassifierFactory.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.