Skip to content

Latest commit

 

History

History
389 lines (331 loc) · 32.7 KB

README_v212.md

File metadata and controls

389 lines (331 loc) · 32.7 KB

namsor-sdk2 Java SDK classifies personal names by gender, country of origin, or ethnicity.

NamSor API v2 : enpoints to process personal names (gender, cultural origin or ethnicity) in all alphabets or languages. Use GET methods for small tests, but prefer POST methods for higher throughput (batch processing of up to 100 names at a time). Need something you can't find here? We have many more features coming soon. Let us know, we'll do our best to add it!

NamSor API v2

  • API version: 2.0.12
    • Build date: 2021-02-01T08:53:23.316+01:00[Europe/Berlin]

NamSor API v2 : enpoints to process personal names (gender, cultural origin or ethnicity) in all alphabets or languages. Use GET methods for small tests, but prefer POST methods for higher throughput (batch processing of up to 100 names at a time). Need something you can't find here? We have many more features coming soon. Let us know, we'll do our best to add it!

Refer to the NamSor API Doc for detailed API documentation.

Also, have a look at the Wiki NamSor Wiki Doc for release notes and taxonomies.

For more information, please visit http://www.namsor.com/

*Automatically generated by the OpenAPI Generator*11

Release Notes

NamSorAPIv2.0.12 (2021-01-31)

-Improvements for gender classification of full names -Split Diaspora taxonomy classes Irish,British -> Irish,English,Scottish,Welsh (British remains as first/second best alternative for now) -Improve Diaspora classification with non LATIN names -Added Corridor API for classifying names in cross-border contexts (relevant for : diaspora remittances, international travel, foreign direct investment, crowdfunding etc.) -Added a general name classification API (nameType), accuracy in range 90-95% -[BETA] UI : added an online CSV tool to process files from JavaScript client, append gender, origin, country, diaspora or US 'race'/ethnicity to a list of names in Excel/CSV format.

Requirements

Building the API client library requires:

  1. Java 1.7+
  2. Maven/Gradle

Installation

To install the API client library to your local Maven repository, simply execute:

mvn clean install

To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:

mvn clean deploy

Refer to the OSSRH Guide for more information.

Maven users

Add this dependency to your project's POM:

<dependency>
  <groupId>com.namsor</groupId>
  <artifactId>namsor-sdk2</artifactId>
  <version>2.0.12</version>
  <scope>compile</scope>
</dependency>

Gradle users

Add this dependency to your project's build file:

compile "com.namsor:namsor-sdk2:2.0.12"

Others

At first generate the JAR by executing:

mvn clean package

Then manually install the following JARs:

  • target/namsor-sdk2-2.0.12.jar
  • target/lib/*.jar

Getting Started

Please follow the installation instruction and execute the following Java code:

package com.namsor.namsorsample;

import com.namsor.sdk2.invoke.*;
import com.namsor.sdk2.invoke.auth.*;
import com.namsor.sdk2.model.*;
import com.namsor.sdk2.api.PersonalApi;

import java.io.File;
import java.util.*;

public class PersonalApiSample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();
        
        // Configure API key authorization: api_key
        ApiKeyAuth api_key = (ApiKeyAuth) defaultClient.getAuthentication("api_key");
        api_key.setApiKey("YOUR API KEY");
        // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
        //api_key.setApiKeyPrefix("Token");

        PersonalApi apiInstance = new PersonalApi();
        
        // should contain 10 to 100 names at a time, per API call
        BatchFirstLastNameIn batchFirstLastNameIn = new BatchFirstLastNameIn(); // BatchFirstLastNameIn | A list of personal names
        batchFirstLastNameIn.setPersonalNames(new ArrayList());
        FirstLastNameIn name1 = new FirstLastNameIn();
        name1.setId("123");
        name1.setFirstName("Mary");
        name1.setLastName("O'Neil");
        batchFirstLastNameIn.getPersonalNames().add(name1);
        FirstLastNameIn name2 = new FirstLastNameIn();
        name2.setId("234");
        name2.setFirstName("Roberto");
        name2.setLastName("Rossini");
        batchFirstLastNameIn.getPersonalNames().add(name2);
        try {
            BatchFirstLastNameOriginedOut result = apiInstance.originBatch(batchFirstLastNameIn);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling PersonalApi#originBatch");
            e.printStackTrace();
        }
    }
}

This will output the following :

class BatchFirstLastNameOriginedOut {
    personalNames: [class FirstLastNameOriginedOut {
        id: 123
        firstName: Mary
        lastName: O'Neil
        countryOrigin: IE
        countryOriginAlt: GB
        countriesOriginTop: [IE, GB, KE, GH, LR, FR, TZ, NG, IL, EG]
        score: 26.729154354675913
        regionOrigin: Europe
        topRegionOrigin: Europe
        subRegionOrigin: Northern Europe
        probabilityCalibrated: 0.9303604468868103
        probabilityAltCalibrated: 0.9930598411485871
    }, class FirstLastNameOriginedOut {
        id: 123
        firstName: Roberto
        lastName: Rossini
        countryOrigin: IT
        countryOriginAlt: ES
        countriesOriginTop: [IT, ES, CH, ID, PT, ZA, IL, AT, FI, FR]
        score: 36.490714227516584
        regionOrigin: Europe
        topRegionOrigin: Europe
        subRegionOrigin: Southern Europe
        probabilityCalibrated: 0.9824811693994274
        probabilityAltCalibrated: 0.9930598411485871
    }]
}

Documentation for Authorization

Authentication schemes defined for the API:

api_key

  • Type: API key
  • API key parameter name: X-API-KEY
  • Location: HTTP header

Documentation for API Endpoints

All URIs are relative to https://v2.namsor.com/NamSorAPIv2

Class Method HTTP request Description
PersonalApi corridor GET /api2/json/corridor/{countryIso2From}/{firstNameFrom}/{lastNameFrom}/{countryIso2To}/{firstNameTo}/{lastNameTo} [USES 20 UNITS PER NAME COUPLE] Infer several classifications for a cross border interaction between names (ex. remit, travel, intl com)
PersonalApi corridorBatch POST /api2/json/corridorBatch [USES 20 UNITS PER NAME PAIR] Infer several classifications for up to 100 cross border interaction between names (ex. remit, travel, intl com)
PersonalApi country GET /api2/json/country/{personalNameFull} [USES 10 UNITS PER NAME] Infer the likely country of residence of a personal full name, or one surname. Assumes names as they are in the country of residence OR the country of origin.
PersonalApi countryBatch POST /api2/json/countryBatch [USES 10 UNITS PER NAME] Infer the likely country of residence of up to 100 personal full names, or surnames. Assumes names as they are in the country of residence OR the country of origin.
PersonalApi diaspora GET /api2/json/diaspora/{countryIso2}/{firstName}/{lastName} [USES 20 UNITS PER NAME] Infer the likely ethnicity/diaspora of a personal name, given a country of residence ISO2 code (ex. US, CA, AU, NZ etc.)
PersonalApi diasporaBatch POST /api2/json/diasporaBatch [USES 20 UNITS PER NAME] Infer the likely ethnicity/diaspora of up to 100 personal names, given a country of residence ISO2 code (ex. US, CA, AU, NZ etc.)
PersonalApi gender GET /api2/json/gender/{firstName}/{lastName} Infer the likely gender of a name.
PersonalApi genderBatch POST /api2/json/genderBatch Infer the likely gender of up to 100 names, detecting automatically the cultural context.
PersonalApi genderFull GET /api2/json/genderFull/{fullName} Infer the likely gender of a full name, ex. John H. Smith
PersonalApi genderFullBatch POST /api2/json/genderFullBatch Infer the likely gender of up to 100 full names, detecting automatically the cultural context.
PersonalApi genderFullGeo GET /api2/json/genderFullGeo/{fullName}/{countryIso2} Infer the likely gender of a full name, given a local context (ISO2 country code).
PersonalApi genderFullGeoBatch POST /api2/json/genderFullGeoBatch Infer the likely gender of up to 100 full names, with a given cultural context (country ISO2 code).
PersonalApi genderGeo GET /api2/json/genderGeo/{firstName}/{lastName}/{countryIso2} Infer the likely gender of a name, given a local context (ISO2 country code).
PersonalApi genderGeoBatch POST /api2/json/genderGeoBatch Infer the likely gender of up to 100 names, each given a local context (ISO2 country code).
PersonalApi origin GET /api2/json/origin/{firstName}/{lastName} [USES 10 UNITS PER NAME] Infer the likely country of origin of a personal name. Assumes names as they are in the country of origin. For US, CA, AU, NZ and other melting-pots : use 'diaspora' instead.
PersonalApi originBatch POST /api2/json/originBatch [USES 10 UNITS PER NAME] Infer the likely country of origin of up to 100 names, detecting automatically the cultural context.
PersonalApi parseName GET /api2/json/parseName/{nameFull} Infer the likely first/last name structure of a name, ex. John Smith or SMITH, John or SMITH; John.
PersonalApi parseNameBatch POST /api2/json/parseNameBatch Infer the likely first/last name structure of a name, ex. John Smith or SMITH, John or SMITH; John.
PersonalApi parseNameGeo GET /api2/json/parseName/{nameFull}/{countryIso2} Infer the likely first/last name structure of a name, ex. John Smith or SMITH, John or SMITH; John. For better accuracy, provide a geographic context.
PersonalApi parseNameGeoBatch POST /api2/json/parseNameGeoBatch Infer the likely first/last name structure of a name, ex. John Smith or SMITH, John or SMITH; John. Giving a local context improves precision.
PersonalApi parsedGenderBatch POST /api2/json/parsedGenderBatch Infer the likely gender of up to 100 fully parsed names, detecting automatically the cultural context.
PersonalApi parsedGenderGeoBatch POST /api2/json/parsedGenderGeoBatch Infer the likely gender of up to 100 fully parsed names, detecting automatically the cultural context.
PersonalApi usRaceEthnicity GET /api2/json/usRaceEthnicity/{firstName}/{lastName} [USES 10 UNITS PER NAME] Infer a US resident's likely race/ethnicity according to US Census taxonomy W_NL (white, non latino), HL (hispano latino), A (asian, non latino), B_NL (black, non latino).
PersonalApi usRaceEthnicityBatch POST /api2/json/usRaceEthnicityBatch [USES 10 UNITS PER NAME] Infer up-to 100 US resident's likely race/ethnicity according to US Census taxonomy.
PersonalApi usRaceEthnicityZIP5 GET /api2/json/usRaceEthnicityZIP5/{firstName}/{lastName}/{zip5Code} [USES 10 UNITS PER NAME] Infer a US resident's likely race/ethnicity according to US Census taxonomy, using (optional) ZIP5 code info. Output is W_NL (white, non latino), HL (hispano latino), A (asian, non latino), B_NL (black, non latino).
PersonalApi usZipRaceEthnicityBatch POST /api2/json/usZipRaceEthnicityBatch [USES 10 UNITS PER NAME] Infer up-to 100 US resident's likely race/ethnicity according to US Census taxonomy, with (optional) ZIP code.
SocialApi phoneCode GET /api2/json/phoneCode/{firstName}/{lastName}/{phoneNumber} [USES 11 UNITS PER NAME] Infer the likely country and phone prefix, given a personal name and formatted / unformatted phone number.
SocialApi phoneCodeBatch POST /api2/json/phoneCodeBatch [USES 11 UNITS PER NAME] Infer the likely country and phone prefix, of up to 100 personal names, detecting automatically the local context given a name and formatted / unformatted phone number.
SocialApi phoneCodeGeo GET /api2/json/phoneCodeGeo/{firstName}/{lastName}/{phoneNumber}/{countryIso2} [USES 11 UNITS PER NAME] Infer the likely phone prefix, given a personal name and formatted / unformatted phone number, with a local context (ISO2 country of residence).
SocialApi phoneCodeGeoBatch POST /api2/json/phoneCodeGeoBatch [USES 11 UNITS PER NAME] Infer the likely country and phone prefix, of up to 100 personal names, with a local context (ISO2 country of residence).
SocialApi phoneCodeGeoFeedbackLoop GET /api2/json/phoneCodeGeoFeedbackLoop/{firstName}/{lastName}/{phoneNumber}/{phoneNumberE164}/{countryIso2} [CREDITS 1 UNIT] Feedback loop to better infer the likely phone prefix, given a personal name and formatted / unformatted phone number, with a local context (ISO2 country of residence).
AdminApi apiStatus GET /api2/json/apiStatus Prints the current status of the classifiers.
AdminApi apiUsage GET /api2/json/apiUsage Print current API usage.
AdminApi apiUsageHistory GET /api2/json/apiUsageHistory Print historical API usage.
AdminApi apiUsageHistoryAggregate GET /api2/json/apiUsageHistoryAggregate Print historical API usage (in an aggregated view, by service, by day/hour/min).
AdminApi addCredits GET /api2/json/addCredits/{apiKey}/{usageCredits}/{userMessage} Add usage credits to an API Key.
AdminApi anonymize GET /api2/json/anonymize/{source}/{anonymized} Activate/deactivate anonymization for a source.
AdminApi availablePlans GET /api2/json/availablePlans/{token} List all available plans in the user's preferred currency.
AdminApi availablePlans1 GET /api2/json/availablePlans List all available plans in the default currency (usd).
AdminApi availableServices GET /api2/json/apiServices List of API services and usage cost in Units (default is 1=ONE Unit).
AdminApi billingCurrencies GET /api2/json/billingCurrencies List possible currency options for billing (USD, EUR, GBP, ...)
AdminApi billingHistory GET /api2/json/billingHistory/{token} Read the history billing information (invoices paid via Stripe or manually).
AdminApi billingInfo GET /api2/json/billingInfo/{token} Read the billing information (company name, address, phone, vat ID)
AdminApi charge POST /api2/json/charge Create a Stripe Customer, based on a payment card token (from secure StripeJS) and email.
AdminApi corporateKey GET /api2/json/corporateKey/{apiKey}/{corporate} Setting an API Key to a corporate status.
AdminApi debugLevel GET /api2/json/debugLevel/{logger}/{level} Update debug level for a classifier
AdminApi flush GET /api2/json/flush Flush counters.
AdminApi invalidateCache GET /api2/json/invalidateCache Invalidate system caches.
AdminApi learnable GET /api2/json/learnable/{source}/{learnable} Activate/deactivate learning from a source.
AdminApi namsorCounter GET /api2/json/namsorCounter Get the overall API counter
AdminApi paymentInfo GET /api2/json/paymentInfo/{token} Get the Stripe payment information associated with the current google auth session token.
AdminApi procureKey GET /api2/json/procureKey/{token} Procure an API Key (sent via Email), based on an auth token. Keep your API Key secret.
AdminApi removeUserAccount GET /api2/json/removeUserAccount/{token} Remove the user account.
AdminApi removeUserAccountOnBehalf GET /api2/json/removeUserAccountOnBehalf/{apiKey} Remove (on behalf) a user account.
AdminApi shutdown GET /api2/json/shutdown Stop learning and shutdown system.
AdminApi softwareVersion GET /api2/json/softwareVersion Get the current software version
AdminApi sourceStats GET /api2/json/sourceStats/{source} Print basic source statistics.
AdminApi stats GET /api2/json/stats Print basic system statistics.
AdminApi stripeConnect GET /api2/json/stripeConnect Connects a Stripe Account.
AdminApi subscribePlan GET /api2/json/subscribePlan/{planName}/{token} Subscribe to a give API plan, using the user's preferred or default currency.
AdminApi subscribePlanOnBehalf GET /api2/json/subscribePlanOnBehalf/{planName}/{apiKey} Subscribe to a give API plan, using the user's preferred or default currency (admin only).
AdminApi taxonomyClasses GET /api2/json/taxonomyClasses/{classifierName} Print the taxonomy classes valid for the given classifier.
AdminApi updateBillingInfo POST /api2/json/updateBillingInfo/{token} Sets or update the billing information (company name, address, phone, vat ID)
AdminApi updateLimit GET /api2/json/updateLimit/{usageLimit}/{hardOrSoft}/{token} Modifies the hard/soft limit on the API plan's overages (default is 0$ soft limit).
AdminApi updatePaymentDefault GET /api2/json/updatePaymentDefault/{defautSourceId}/{token} Update the default Stripe card associated with the current google auth session token.
AdminApi userInfo GET /api2/json/userInfo/{token} Get the user profile associated with the current google auth session token.
AdminApi verifyEmail GET /api2/json/verifyEmail/{emailToken} Verifies an email, based on token sent to that email
AdminApi verifyRemoveEmail GET /api2/json/verifyRemoveEmail/{emailToken} Verifies an email, based on token sent to that email
AdminApi vet GET /api2/json/vetting/{source}/{vetted} Vetting of a source.
ChineseApi chineseNameCandidates GET /api2/json/chineseNameCandidates/{chineseSurnameLatin}/{chineseGivenNameLatin} Identify Chinese name candidates, based on the romanized name ex. Wang Xiaoming
ChineseApi chineseNameCandidatesBatch POST /api2/json/chineseNameCandidatesBatch Identify Chinese name candidates, based on the romanized name (firstName = chineseGivenName; lastName=chineseSurname), ex. Wang Xiaoming
ChineseApi chineseNameCandidatesGenderBatch POST /api2/json/chineseNameCandidatesGenderBatch Identify Chinese name candidates, based on the romanized name (firstName = chineseGivenName; lastName=chineseSurname) ex. Wang Xiaoming.
ChineseApi chineseNameGenderCandidates GET /api2/json/chineseNameGenderCandidates/{chineseSurnameLatin}/{chineseGivenNameLatin}/{knownGender} Identify Chinese name candidates, based on the romanized name ex. Wang Xiaoming - having a known gender ('male' or 'female')
ChineseApi chineseNameMatch GET /api2/json/chineseNameMatch/{chineseSurnameLatin}/{chineseGivenNameLatin}/{chineseName} Return a score for matching Chinese name ex. 王晓明 with a romanized name ex. Wang Xiaoming
ChineseApi chineseNameMatchBatch POST /api2/json/chineseNameMatchBatch Identify Chinese name candidates, based on the romanized name (firstName = chineseGivenName; lastName=chineseSurname), ex. Wang Xiaoming
ChineseApi genderChineseName GET /api2/json/genderChineseName/{chineseName} Infer the likely gender of a Chinese full name ex. 王晓明
ChineseApi genderChineseNameBatch POST /api2/json/genderChineseNameBatch Infer the likely gender of up to 100 full names ex. 王晓明
ChineseApi genderChineseNamePinyin GET /api2/json/genderChineseNamePinyin/{chineseSurnameLatin}/{chineseGivenNameLatin} Infer the likely gender of a Chinese name in LATIN (Pinyin).
ChineseApi genderChineseNamePinyinBatch POST /api2/json/genderChineseNamePinyinBatch Infer the likely gender of up to 100 Chinese names in LATIN (Pinyin).
ChineseApi parseChineseName GET /api2/json/parseChineseName/{chineseName} Infer the likely first/last name structure of a name, ex. 王晓明 -> 王(surname) 晓明(given name)
ChineseApi parseChineseNameBatch POST /api2/json/parseChineseNameBatch Infer the likely first/last name structure of a name, ex. 王晓明 -> 王(surname) 晓明(given name).
ChineseApi pinyinChineseName GET /api2/json/pinyinChineseName/{chineseName} Romanize the Chinese name to Pinyin, ex. 王晓明 -> Wang (surname) Xiaoming (given name)
ChineseApi pinyinChineseNameBatch POST /api2/json/pinyinChineseNameBatch Romanize a list of Chinese name to Pinyin, ex. 王晓明 -> Wang (surname) Xiaoming (given name).
GeneralApi nameType GET /api2/json/nameType/{properNoun} Infer the likely type of a proper noun (personal name, brand name, place name etc.)
GeneralApi nameTypeBatch POST /api2/json/nameTypeBatch Infer the likely common type of up to 100 proper nouns (personal name, brand name, place name etc.)
GeneralApi nameTypeGeo GET /api2/json/nameTypeGeo/{properNoun}/{countryIso2} Infer the likely type of a proper noun (personal name, brand name, place name etc.)
GeneralApi nameTypeGeoBatch POST /api2/json/nameTypeGeoBatch Infer the likely common type of up to 100 proper nouns (personal name, brand name, place name etc.)
JapaneseApi genderJapaneseNameFull GET /api2/json/genderJapaneseNameFull/{japaneseName} Infer the likely gender of a Japanese full name ex. 王晓明
JapaneseApi genderJapaneseNameFullBatch POST /api2/json/genderJapaneseNameFullBatch Infer the likely gender of up to 100 full names
JapaneseApi genderJapaneseNamePinyin GET /api2/json/genderJapaneseName/{japaneseSurname}/{japaneseGivenName} Infer the likely gender of a Japanese name in LATIN (Pinyin).
JapaneseApi genderJapaneseNamePinyinBatch POST /api2/json/genderJapaneseNameBatch Infer the likely gender of up to 100 Japanese names in LATIN (Pinyin).
JapaneseApi japaneseNameKanjiCandidates GET /api2/json/japaneseNameKanjiCandidates/{japaneseSurnameLatin}/{japaneseGivenNameLatin} Identify japanese name candidates in KANJI, based on the romanized name ex. Yamamoto Sanae
JapaneseApi japaneseNameKanjiCandidatesBatch POST /api2/json/japaneseNameKanjiCandidatesBatch Identify japanese name candidates in KANJI, based on the romanized name (firstName = japaneseGivenName; lastName=japaneseSurname), ex. Yamamoto Sanae
JapaneseApi japaneseNameLatinCandidates GET /api2/json/japaneseNameLatinCandidates/{japaneseSurnameKanji}/{japaneseGivenNameKanji} Romanize japanese name, based on the name in Kanji.
JapaneseApi japaneseNameLatinCandidatesBatch POST /api2/json/japaneseNameLatinCandidatesBatch Romanize japanese names, based on the name in KANJI
JapaneseApi japaneseNameMatch GET /api2/json/japaneseNameMatch/{japaneseSurnameLatin}/{japaneseGivenNameLatin}/{japaneseName} Return a score for matching Japanese name in KANJI ex. 山本 早苗 with a romanized name ex. Yamamoto Sanae
JapaneseApi japaneseNameMatchBatch POST /api2/json/japaneseNameMatchBatch Return a score for matching a list of Japanese names in KANJI ex. 山本 早苗 with romanized names ex. Yamamoto Sanae
JapaneseApi japaneseNameMatchFeedbackLoop GET /api2/json/japaneseNameMatchFeedbackLoop/{japaneseSurnameLatin}/{japaneseGivenNameLatin}/{japaneseName} [CREDITS 1 UNIT] Feedback loop to better perform matching Japanese name in KANJI ex. 山本 早苗 with a romanized name ex. Yamamoto Sanae
JapaneseApi parseJapaneseName GET /api2/json/parseJapaneseName/{japaneseName} Infer the likely first/last name structure of a name, ex. 山本 早苗 or Yamamoto Sanae
JapaneseApi parseJapaneseNameBatch POST /api2/json/parseJapaneseNameBatch Infer the likely first/last name structure of a name, ex. 山本 早苗 or Yamamoto Sanae

Documentation for Models

Recommendation

It's recommended to create an instance of ApiClient per thread in a multithreaded environment to avoid any potential issues.

Author

contact@namsor.com