Skip to content

Commit

Permalink
[Java - Choice] Base classes porting (#957)
Browse files Browse the repository at this point in the history
* WIP for base classes port

* Fixed implements and base classes

* Modified Resource-Generator POM to include Choice resources
  • Loading branch information
joseques authored and tellarin committed Nov 12, 2018
1 parent ca137ac commit ba48160
Show file tree
Hide file tree
Showing 25 changed files with 555 additions and 0 deletions.
66 changes: 66 additions & 0 deletions Java/libraries/recognizers-text-choice/pom.xml
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 Java/libraries/recognizers-text-choice/resource-definitions.json
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": [
"}"
]
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.microsoft.recognizers.text.choice;

public enum ChoiceOptions {
None
}
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();
}
}
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";
}
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;
}
}
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();
}
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);
}
}
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;
}
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();
}
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();
}
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();
}
}
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();
}
}
Loading

0 comments on commit ba48160

Please sign in to comment.