https://github.com/bellingcat/alias-generator
Node module to generate likely aliases for a given human name
https://github.com/bellingcat/alias-generator
alias generator javascript nodejs open-source-research
Last synced: 8 months ago
JSON representation
Node module to generate likely aliases for a given human name
- Host: GitHub
- URL: https://github.com/bellingcat/alias-generator
- Owner: bellingcat
- License: mit
- Created: 2023-07-19T09:24:24.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-08-04T10:29:43.000Z (over 2 years ago)
- Last Synced: 2025-05-30T00:42:04.767Z (9 months ago)
- Topics: alias, generator, javascript, nodejs, open-source-research
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/@bellingcat/alias-generator
- Size: 111 KB
- Stars: 20
- Watchers: 5
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# alias-generator
Node module to generate likely aliases for a given human name.
## Usage
In node
```
import getAliases from '@bellingcat/alias-generator';
let list = getAliases("William Randolph Hearst");
console.log(list);
```
In the browser
```
let list = aliasGenerator.getAliases("William Randolph Hearst");
console.log(list);
```
Output:
```
[
'william hearst',
'hearst, william',
'william randolph hearst',
'hearst, william randolph',
'william r hearst',
'hearst, william r',
'w hearst',
'w randolph hearst',
'w r hearst',
'wr hearst'
]
```
## Considerations
When generating name variants, many considerations apply and may be culturally specific. See https://en.wikipedia.org/wiki/Personal_name
**Initials** may be substituted for first or middle names, and middle names may be omitted.
Example: The name "Alfred Jodocus Kwak" may appear online as any of the following equivalents:
* Alfred Kwak
* Alfred J. Kwak
* AJ Kwak
* A. J. Kwak
* Kwak, Alfred J
* Al Kwak
**Name order** is culturally specific: East Asian names are often written surname-givenname instead of the western style of givenname-surname, not to mention in a different character sets:
Example: Hayao Miyazaki
* Miyazaki Hayao
* 宮崎 駿
**Patronyms/matronyms** (names derived from the given name of a parent) may appear before, after, or in place of a surname.
Example: Abel Janszoon Tasman ("Abel, son of Jan Tasman")
* Abel Tasman
* Abel Janszoon
**Shortened or diminuitive** versions of a name may exist and are culturally specific.
Example: Mike for Michael, Bill for William, Bob for Robert in the West. Katya for Ekaterina in Eastern Europe.
**Marriage** may result in surname changes, hyphenation or combination of one's original name(s).
**Tussenvoegsels** in Dutch names such as "van der Laan" may be abbreviated "v.d. Laan"
## Possibly Helpful Libraries
* https://nameparser.readthedocs.io/en/latest/ (python)
* https://github.com/theiconic/name-parser (php)
* https://github.com/berkmancenter/namae (ruby)
* https://github.com/carltonnorthern/nicknames (python)
* https://www.nameapi.org/en/demos/name-parser/
* https://searchgizmos.com/generate-and-search-for-name-variants-with-carls-name-net/