-
Notifications
You must be signed in to change notification settings - Fork 429
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Java - Choice] Base classes porting (#957)
* WIP for base classes port * Fixed implements and base classes * Modified Resource-Generator POM to include Choice resources
- Loading branch information
Showing
25 changed files
with
555 additions
and
0 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
<modelVersion>4.0.0</modelVersion> | ||
|
||
<groupId>com.microsoft.recognizers.text.choice</groupId> | ||
<artifactId>recognizers-text-choice</artifactId> | ||
<version>1.0-SNAPSHOT</version> | ||
<packaging>jar</packaging> | ||
|
||
<name>${project.groupId}:${project.artifactId}</name> | ||
<description>Microsoft.Recognizers.Text - Choice Recognizers</description> | ||
<url>https://github.com/Microsoft/Recognizers-Text/</url> | ||
|
||
<parent> | ||
<groupId>com.microsoft.recognizers.text</groupId> | ||
<artifactId>recognizers-text-java</artifactId> | ||
<version>1.0-SNAPSHOT</version> | ||
<relativePath>../../</relativePath> | ||
</parent> | ||
|
||
<licenses> | ||
<license> | ||
<name>MIT License</name> | ||
<url>http://www.opensource.org/licenses/mit-license.php</url> | ||
</license> | ||
</licenses> | ||
|
||
<developers> | ||
<developer> | ||
<name>Microsoft Recognizers-Text</name> | ||
<email></email> | ||
<organization>Microsoft</organization> | ||
<organizationUrl>https://www.microsoft.com/</organizationUrl> | ||
</developer> | ||
</developers> | ||
<properties> | ||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
</properties> | ||
<dependencies> | ||
<dependency> | ||
<groupId>com.microsoft.recognizers.text</groupId> | ||
<artifactId>recognizers-text</artifactId> | ||
<version>1.0-SNAPSHOT</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.google.guava</groupId> | ||
<artifactId>guava</artifactId> | ||
<version>24.1-jre</version> | ||
</dependency> | ||
</dependencies> | ||
<build> | ||
<plugins> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-compiler-plugin</artifactId> | ||
<version>3.7.0</version> | ||
<configuration> | ||
<source>1.8</source> | ||
<target>1.8</target> | ||
</configuration> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
</project> |
80 changes: 80 additions & 0 deletions
80
Java/libraries/recognizers-text-choice/resource-definitions.json
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,80 @@ | ||
{ | ||
"outputPath": "libraries/recognizers-text-choice/src/main/java/com/microsoft/recognizers/text/choice/resources/", | ||
"configFiles": [ | ||
{ | ||
"input": [ | ||
"English", | ||
"English-Choice" | ||
], | ||
"output": "EnglishChoice", | ||
"header": [ | ||
"package com.microsoft.recognizers.text.choice.resources;", | ||
"", | ||
"public class EnglishChoice {" | ||
], | ||
"footer": [ | ||
"}" | ||
] | ||
}, | ||
{ | ||
"input": [ | ||
"Spanish", | ||
"Spanish-Choice" | ||
], | ||
"output": "SpanishChoice", | ||
"header": [ | ||
"package com.microsoft.recognizers.text.choice.resources;", | ||
"", | ||
"public class SpanishChoice {" | ||
], | ||
"footer": [ | ||
"}" | ||
] | ||
}, | ||
{ | ||
"input": [ | ||
"Portuguese", | ||
"Portuguese-Choice" | ||
], | ||
"output": "PortugueseChoice", | ||
"header": [ | ||
"package com.microsoft.recognizers.text.choice.resources;", | ||
"", | ||
"public class PortugueseChoice {" | ||
], | ||
"footer": [ | ||
"}" | ||
] | ||
}, | ||
{ | ||
"input": [ | ||
"Chinese", | ||
"Chinese-Choice" | ||
], | ||
"output": "ChineseChoice", | ||
"header": [ | ||
"package com.microsoft.recognizers.text.choice.resources;", | ||
"", | ||
"public class ChineseChoice {" | ||
], | ||
"footer": [ | ||
"}" | ||
] | ||
}, | ||
{ | ||
"input": [ | ||
"French", | ||
"French-Choice" | ||
], | ||
"output": "FrenchChoice", | ||
"header": [ | ||
"package com.microsoft.recognizers.text.choice.resources;", | ||
"", | ||
"public class FrenchChoice {" | ||
], | ||
"footer": [ | ||
"}" | ||
] | ||
} | ||
] | ||
} |
5 changes: 5 additions & 0 deletions
5
...nizers-text-choice/src/main/java/com/microsoft/recognizers/text/choice/ChoiceOptions.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,5 @@ | ||
package com.microsoft.recognizers.text.choice; | ||
|
||
public enum ChoiceOptions { | ||
None | ||
} |
64 changes: 64 additions & 0 deletions
64
...ers-text-choice/src/main/java/com/microsoft/recognizers/text/choice/ChoiceRecognizer.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,64 @@ | ||
package com.microsoft.recognizers.text.choice; | ||
|
||
import java.util.List; | ||
import com.microsoft.recognizers.text.IModel; | ||
import com.microsoft.recognizers.text.ModelResult; | ||
import com.microsoft.recognizers.text.Recognizer; | ||
|
||
public class ChoiceRecognizer extends Recognizer<ChoiceOptions> { | ||
|
||
public ChoiceRecognizer(String targetCulture, ChoiceOptions options, | ||
boolean lazyInitialization) { | ||
super(targetCulture, options, lazyInitialization); | ||
} | ||
|
||
public ChoiceRecognizer(String targetCulture, int options, boolean lazyInitialization) { | ||
this(targetCulture, ChoiceOptions.values()[options], lazyInitialization); | ||
} | ||
|
||
public ChoiceRecognizer(int options, boolean lazyInitialization) { | ||
this(null, ChoiceOptions.values()[options], lazyInitialization); | ||
} | ||
|
||
public ChoiceRecognizer(ChoiceOptions options, boolean lazyInitialization) { | ||
this(null, options, lazyInitialization); | ||
} | ||
|
||
public ChoiceRecognizer(boolean lazyInitialization) { | ||
this(null, ChoiceOptions.None, lazyInitialization); | ||
} | ||
|
||
public ChoiceRecognizer(int options) { | ||
this(null, ChoiceOptions.values()[options], true); | ||
} | ||
|
||
public ChoiceRecognizer(ChoiceOptions options) { | ||
this(null, options, true); | ||
} | ||
|
||
public ChoiceRecognizer() { | ||
this(null, ChoiceOptions.None, true); | ||
} | ||
|
||
public IModel GetBooleanModel(String culture, boolean fallbackToDefaultCulture) { | ||
throw new UnsupportedOperationException(); | ||
// return GetModel<BooleanModel>(culture, fallbackToDefaultCulture); | ||
} | ||
|
||
public static List<ModelResult> RecognizeBoolean(String query, String culture, ChoiceOptions options, boolean fallbackToDefaultCulture) { | ||
throw new UnsupportedOperationException(); | ||
} | ||
|
||
public static List<ModelResult> RecognizeBoolean(String query, String culture, ChoiceOptions options) { | ||
return RecognizeBoolean(query, culture, options, true); | ||
} | ||
|
||
public static List<ModelResult> RecognizeBoolean(String query, String culture) { | ||
return RecognizeBoolean(query, culture, ChoiceOptions.None); | ||
} | ||
|
||
@Override | ||
protected void initializeConfiguration() { | ||
throw new UnsupportedOperationException(); | ||
} | ||
} |
8 changes: 8 additions & 0 deletions
8
...ecognizers-text-choice/src/main/java/com/microsoft/recognizers/text/choice/Constants.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,8 @@ | ||
package com.microsoft.recognizers.text.choice; | ||
|
||
public class Constants { | ||
public static final String SYS_BOOLEAN_TRUE = "boolean_true"; | ||
public static final String SYS_BOOLEAN_FALSE = "boolean_false"; | ||
// Model type name | ||
public static final String MODEL_BOOLEAN = "boolean"; | ||
} |
12 changes: 12 additions & 0 deletions
12
...rc/main/java/com/microsoft/recognizers/text/choice/config/BooleanParserConfiguration.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,12 @@ | ||
package com.microsoft.recognizers.text.choice.config; | ||
|
||
import java.util.Dictionary; | ||
|
||
public class BooleanParserConfiguration implements IChoiceParserConfiguration<Boolean> { | ||
public Dictionary<String, Boolean> Resolutions; | ||
|
||
@Override | ||
public Dictionary<String, Boolean> getResolutions() { | ||
return this.Resolutions; | ||
} | ||
} |
7 changes: 7 additions & 0 deletions
7
...rc/main/java/com/microsoft/recognizers/text/choice/config/IChoiceParserConfiguration.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,7 @@ | ||
package com.microsoft.recognizers.text.choice.config; | ||
|
||
import java.util.Dictionary; | ||
|
||
public interface IChoiceParserConfiguration<T> { | ||
public Dictionary<String, T> getResolutions(); | ||
} |
7 changes: 7 additions & 0 deletions
7
...oice/src/main/java/com/microsoft/recognizers/text/choice/extractors/BooleanExtractor.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,7 @@ | ||
package com.microsoft.recognizers.text.choice.extractors; | ||
|
||
public class BooleanExtractor extends ChoiceExtractor { | ||
public BooleanExtractor(IBooleanExtractorConfiguration config) { | ||
super(config); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
...hoice/src/main/java/com/microsoft/recognizers/text/choice/extractors/ChoiceExtractor.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,42 @@ | ||
package com.microsoft.recognizers.text.choice.extractors; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
import com.microsoft.recognizers.text.ExtractResult; | ||
import com.microsoft.recognizers.text.IExtractor; | ||
|
||
public class ChoiceExtractor implements IExtractor { | ||
|
||
private IChoiceExtractorConfiguration config; | ||
|
||
public ChoiceExtractor(IChoiceExtractorConfiguration config) { | ||
this.config = config; | ||
} | ||
|
||
@Override | ||
public List<ExtractResult> extract(String text) { | ||
throw new UnsupportedOperationException(); | ||
} | ||
|
||
private final double MatchValue(List<String> source, List<String> match, int startPosition) { | ||
double matched = 0; | ||
return matched; | ||
} | ||
|
||
private static int IndexOfToken(List<String> tokens, String token, int startPos) { | ||
return 0; | ||
} | ||
|
||
private final List<String> Tokenize(String text) { | ||
return new ArrayList<>(); | ||
} | ||
} | ||
class ChoiceExtractDataResult { | ||
|
||
public final List<ExtractResult> OtherMatches = new ArrayList<>(); | ||
|
||
public final String Source = ""; | ||
|
||
public final double Score = 0; | ||
} |
9 changes: 9 additions & 0 deletions
9
...java/com/microsoft/recognizers/text/choice/extractors/IBooleanExtractorConfiguration.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,9 @@ | ||
package com.microsoft.recognizers.text.choice.extractors; | ||
|
||
import java.util.regex.Pattern; | ||
|
||
public interface IBooleanExtractorConfiguration extends IChoiceExtractorConfiguration { | ||
public Pattern getTrueRegex(); | ||
|
||
public Pattern getFalseRegex(); | ||
} |
16 changes: 16 additions & 0 deletions
16
.../java/com/microsoft/recognizers/text/choice/extractors/IChoiceExtractorConfiguration.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,16 @@ | ||
package com.microsoft.recognizers.text.choice.extractors; | ||
|
||
import java.util.Dictionary; | ||
import java.util.regex.Pattern; | ||
|
||
public interface IChoiceExtractorConfiguration { | ||
public Dictionary<Pattern, String> MapRegexes(); | ||
|
||
public Pattern getTokenRegex(); | ||
|
||
public boolean getAllowPartialMatch(); | ||
|
||
public int getMaxDistance(); | ||
|
||
public boolean getOnlyTopMatch(); | ||
} |
24 changes: 24 additions & 0 deletions
24
...-text-choice/src/main/java/com/microsoft/recognizers/text/choice/models/BooleanModel.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 com.microsoft.recognizers.text.choice.models; | ||
|
||
import java.util.Map; | ||
|
||
import com.microsoft.recognizers.text.IExtractor; | ||
import com.microsoft.recognizers.text.IParser; | ||
import com.microsoft.recognizers.text.ParseResult; | ||
import com.microsoft.recognizers.text.choice.Constants; | ||
|
||
public class BooleanModel extends ChoiceModel { | ||
|
||
public BooleanModel(IParser parser, IExtractor extractor) { | ||
super(parser, extractor); | ||
throw new UnsupportedOperationException(); | ||
} | ||
|
||
public String getModelTypeName() { | ||
return Constants.MODEL_BOOLEAN; | ||
} | ||
|
||
protected Map<String, Object> GetResolution(ParseResult parseResult) { | ||
throw new UnsupportedOperationException(); | ||
} | ||
} |
35 changes: 35 additions & 0 deletions
35
...s-text-choice/src/main/java/com/microsoft/recognizers/text/choice/models/ChoiceModel.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,35 @@ | ||
package com.microsoft.recognizers.text.choice.models; | ||
|
||
import java.util.List; | ||
import java.util.Map; | ||
|
||
import com.microsoft.recognizers.text.IExtractor; | ||
import com.microsoft.recognizers.text.IModel; | ||
import com.microsoft.recognizers.text.IParser; | ||
import com.microsoft.recognizers.text.ModelResult; | ||
import com.microsoft.recognizers.text.ParseResult; | ||
import com.microsoft.recognizers.text.choice.Constants; | ||
|
||
public class ChoiceModel implements IModel { | ||
protected IExtractor Extractor; | ||
protected IParser Parser; | ||
|
||
public ChoiceModel(IParser parser, IExtractor extractor) { | ||
this.Parser = parser; | ||
this.Extractor = extractor; | ||
} | ||
|
||
@Override | ||
public String getModelTypeName() { | ||
return Constants.MODEL_BOOLEAN; | ||
} | ||
|
||
@Override | ||
public List<ModelResult> parse(String query) { | ||
throw new UnsupportedOperationException(); | ||
} | ||
|
||
protected Map<String, Object> GetResolution(ParseResult parseResult) { | ||
throw new UnsupportedOperationException(); | ||
} | ||
} |
Oops, something went wrong.