Home chevron_right Products chevron_right Email Marketing chevron_right GoLangSorter - Name-Based Language Estimator for Email Lists

GoLangSorter - Name-Based Language Estimator for Email Lists

star star star star star
0.0 (0 reviews)
update Updated 1 week ago
GoLangSorter - Name-Based Language Estimator for Email Lists

GoLangSorter analyzes the name found in an email address, or a name supplied alongside it, to estimate a likely associated country. It then uses configurable country-to-language mappings to infer the email address owner's possible language and organize records into language or writing-system categories.

For example, anna.mueller@example.com provides the name Anna Mueller, which may suggest an association with Germany and, through the configured mapping, German as a possible language. This is an illustrative example, not a guaranteed detection result.

Results are estimates and are not 100% accurate. A name does not verify a person's nationality, country of residence, native language, or preferred communication language. The application analyzes name patterns, not mailbox contents or the language of the email domain.

Important: Results Are Not 100% Accurate

GoLangSorter produces heuristic estimates. It does not guarantee the correct language, country, or writing system for every email address.

An email username cannot reliably establish a person's spoken language or preferred communication language. Names may be shared across countries, transliterated, abbreviated, fictional, or unrelated to the mailbox owner. Multilingual countries introduce additional uncertainty.

Treat the output as a starting point for organization and manual review, not as verified personal information. No specific accuracy percentage is guaranteed.

How It Works

  1. Read input records: The application loads supported records from TXT files in your configured input directory.
  2. Select the name source: Depending on your settings, it uses a supplied name, the portion of an email address before the @ symbol, or an automatic selection between the two.
  3. Prepare name candidates: It separates name components, applies configurable cleanup rules, and filters ignored nickname parts.
  4. Analyze the candidate: Name-detection heuristics estimate whether the components resemble a personal name and return an associated country when available.
  5. Apply your mappings: The country is mapped to candidate languages and their presumed writing systems.
  6. Save categorized results: Records are written to output TXT files according to the selected sorting mode.

For example, ivan.petrov@example.com can provide the name components ivan and petrov. A joined username such as ivanpetrov@example.com can be evaluated using possible first-name and surname splits. Neither example guarantees a successful or correct classification.

Key Features

  • Batch TXT processing: Process multiple input files with configurable file-level and record-level concurrency.
  • Independent language and script sorting: Enable language classification, writing-system classification, or both.
  • Flexible name-source selection: Choose email usernames, supplied names, or automatic source selection.
  • Joined-name analysis: Attempt to separate suitable single-token usernames into a first name and surname, using configurable length and score requirements.
  • Adjustable detection thresholds: Control the minimum name-detection score and the requirements for accepting a joined-name split.
  • Configurable nickname filtering: Ignore generic components such as admin, support, sales, and other terms you specify.
  • Editable JSON dictionaries: Update language-country relationships and script rules without changing the application source code.
  • Country-specific script rules: Define exceptions when a language uses different writing systems in different countries.
  • Optional duplicate removal: Remove identical lines within individual output files.
  • Diagnostic logging: Enable detailed output to inspect name candidates, detection scores, inferred countries, and classification results.
  • Completed-file tracking: Previously completed input files are marked so they can be skipped on subsequent runs.

Editable Language and Script Dictionaries

Two external JSON files control the classification mappings:

  • country_languages.json - defines the countries associated with each language.
  • language_groups.json - defines each language's default writing-system group and any country-specific exceptions.

Configure their locations through country_languages_file and language_groups_file in settings.ini. Mapping changes are applied on the next application startup.

These dictionaries control how detection results are interpreted. Editing them does not train the name detector or expand its underlying name database.

Language vs. Writing System

A language and its writing system are different classification targets. For example, multiple languages use Latin letters, while some languages can use more than one writing system.

GoLangSorter infers the presumed writing system from its country and language mappings. It does not simply label an email address latin because its characters are Latin letters. Email domains and domain extensions are not used to establish the mailbox owner's language.

A specific language is returned only when the configured country mapping leaves one candidate. A script group can still be returned when several candidate languages share the same mapped writing system.

Sorting Modes and Uncertain Results

  • Separate categories: Save selected recognized languages or groups separately, with other recognized results placed in other.
  • Inclusion mode: Place selected recognized results in cleandb and other recognized results in trash.
  • Exclusion mode: Reverse the inclusion rule to separate selected categories from the remaining recognized results.
  • Unknown category: Keep unclassified or ambiguous results in unknown in every enabled sorting mode.

Output labels such as cleandb and trash describe your sorting rules. They do not indicate whether an email address exists or can receive messages.

Understanding Detection Scores

The configurable confidence value is an internal name-detection score, not a calibrated probability that the inferred language is correct. A score of 0.80 does not mean 80% language accuracy.

Higher thresholds can reject more uncertain name candidates and increase the number of unknown results. Lower thresholds may classify more records but can also introduce more incorrect matches.

Single first names, initials, random usernames, business mailboxes, unfamiliar names, and ambiguous joined usernames may remain unknown. Even a high-scoring name match can produce an incorrect country or language inference.

Requirements and Processing Notes

  • A Windows environment capable of running the supplied executable.
  • A valid license and an internet connection for license verification.
  • TXT input files and the required INI and JSON configuration files.
  • Sufficient memory and storage for your input files, output files, and selected concurrency settings.

Name analysis and list processing take place locally. License verification requires an external connection, so the application should not be considered fully offline.

This is a configuration-driven command-line utility. It does not access inboxes, send emails, translate messages, or verify mailbox deliverability.

Completed files marked with .checked are skipped. Changing configuration files does not automatically reprocess previously completed inputs. Results are appended to existing output files, so use separate output directories when comparing different configurations.

Debug logs may contain names and email addresses. Store them securely and process only datasets you are authorized to use.

A Practical Tool for Preliminary Organization

GoLangSorter provides configurable, name-based sorting for email datasets, with editable mappings and a dedicated place for uncertain results. Use it to assist your workflow, then validate important classifications against reliable information or explicit user language preferences.

Select Plan

Total Due Today $9.00

One-time payment. No recurring fees.

USDT + More
verified_user

Secure Checkout

help_center

24/7 Support