Skip to content

imagineobjects/linguin-ai-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

linguin-ai-java

Java 11 API Wrapper for https://linguin.ai

Managed By Self XDSD DevOps By Rultor.com We recommend IntelliJ IDEA

To get the latest release from Maven Central, simply add the following to your pom.xml:

<dependency>
    <groupId>io.imagineobjects.web</groupId>
    <artifactId>linguin-ai-java</artifactId>
    <version>0.0.1</version>
</dependency>

or download the fat jar.

If you use Gradle, add this to your dependencies:

implementation group: 'io.imagineobjects.web', name: 'linguin-ai-java', version: '0.0.1'

The releases are also available on Github Packages!

Usage

For a given text, the library returns an instance of Languages, representing the possible languages of the given text. Each Language has a code and a confidence. Call .bestMatch() to get the most probable Language.

Single detection

To detect the Language of a single text:

final LinguinAi linguin = new RestLinguinAi("API-TOKEN-HERE");
final Languages detected = linguin.detect("What language is this?");
System.out.println("Possible languages: ")
for(final Language language : detected) {
    System.out.println("Code: " + language.code());
    System.out.println("Confidence: " + language.confidence());
}
System.out.println("Most probable language: " + detected.bestMatch().code());

Bulk Detection

You can detect the possible Languages of multpile texts at the same time. It will return an instance of BulkDetection which is an iterable of Languages. Each Languages in the iterable represents the possible languages of the text given at the same index.

final LinguinAi linguinAi = new RestLinguinAi("API-TOKEN-HERE");
final BulkDetection bulk = linguinAi.bulkDetect(
    "What's up??",
    "Woher kommst du?",
    "Eu vin din Romania.",
    "La langue Francaise..."
);
final Iterator<Languages> languages = bulk.iterator();
languages.next().bestMatch().code(); // "en"
languages.next().bestMatch().code(); // "de"
languages.next().bestMatch().code(); // "ro"
languages.next().bestMatch().code(); // "fr"

Account Status

You can fetch the account Status, containing info about the API limits of your account:

final LinguinAi linguinAi = new RestLinguinAi("API-TOKEN-HERE");
final Status status = linguinAi.status();
status.dailyLimit(); //100
status.detectionsToday(); //5
status.remainingToday(); //95

Supported Languages

You can get all the supported languages of the API like this:

final LinguinAi linguinAi = new RestLinguinAi("API-TOKEN-HERE");
final SupportedLanguages supported = linguiAi.languages();
for(final SupportedLanguage language : supported) {
    System.out.println("Code: " + language.code());
    System.out.println("English names: " + Arrays.toString(language.englishNames()));
    System.out.println("Native names: " + Arrays.toString(language.nativeNames()));
}

Exceptions

At the moment the library will throw IllegalStateException if the API responds with any status code other than 200 OK.

Contributing

If you would like to contribute, just open an issue or a PR.

Make sure the maven build:

$mvn clean install -Pcheckstyle,itcases -Dlinguin-ai-token=<YOUR_API_TOKEN>

passes before making a PR. Checkstyle will make sure you're following our code style and guidlines.