BabelStrike 用户名字典生成器

BabelStrike 用户名字典生成器

BabelStrike简介

该工具的目的是从全名列表中标准化并生成可能的用户名,该全名列表可能包括用多种(非英语)语言编写的名称,这是从员工姓名列表(例如来自 Linkedin)中抓取的常见问题。

BabelStrike 将完整姓名列表作为输入并执行
1. 非英语姓名的罗马化(基于语言字母音译映射)
2. 基于各种命名约定规则实现姓名到用户名的转换。

罗马化功能目前支持:希腊语、印地语、西班牙语、法语、波兰语、葡萄牙语和匈牙利语。

视频演示

使用示例

该工具的目的是从全名列表中标准化并生成可能的用户名,该全名列表可能包括用多种(非英语)语言编写的名称,这是从员工姓名列表(例如来自 Linkedin)中抓取的常见问题。

BabelStrike 用户名字典生成器

通过使用 [-a],规则也可以自动应用于全名的反转版本。

{firstname}{lastname}{f}{l}{lastname}{f}{f}{la}{firstname}
{firstname}.{lastname}{f}.{l}{lastname}.{f}{f}.{la}{lastname}
{firstname}_{lastname}{f}_{l}{lastname}_{f}{f}_{la}
{firstname}-{lastname}{f}-{l}{lastname}-{f}{f}-{la}
{firstname} {lastname}{f} {l}{lastname} {f}{f} {la}
{f}{lastname}{fi}{lastname}{lastname}{fi}{la}{f}
{f}.{lastname}{fi}.{lastname}{lastname}.{fi}{la}.{f}
{f}_{lastname}{fi}_{lastname}{lastname}_{fi}{la}_{f}
{f}-{lastname}{fi}-{lastname}{lastname}-{fi}{la}-{f}
{f} {lastname}{fi} {lastname}{lastname} {fi}{la} {f}

检测到中间名时的转换规则

{firstname}{middle}{lastname}{f}{m}{l}{lastname}{middle}{f}{f}{m}{l}
{firstname}.{middle}.{lastname}{f}.{m}.{l}{lastname}.{middle}.{f}{f}.{m}.{l}
{firstname}_{middle}_{lastname}{f}_{m}_{l}{lastname}_{middle}_{f}{f}_{m}_{l}
{firstname}-{middle}-{lastname}{f}-{m}-{l}{lastname}-{middle}-{f}{f}-{m}-{l}
{firstname} {middle} {lastname}{f} {m} {l}{lastname} {middle} {f}{f} {m} {l}
{f}{middle}{lastname}{fi}{middle}{lastname}{lastname}{middle}{fi}{firstname}
{f}.{middle}.{lastname}{fi}.{middle}.{lastname}{lastname}.{middle}.{fi}{middle}
{f}_{middle}_{lastname}{fi}_{middle}_{lastname}{lastname}_{middle}_{fi}{lastname}
{f}-{middle}-{lastname}{fi}-{middle}-{lastname}{lastname}-{middle}-{fi}
{f} {middle} {lastname}{fi} {middle} {lastname}{lastname} {middle} {fi}

安装与使用

使用 pip 安装需求

pip3 install -r requirements.txt

为语言安装附加字体

为了能够处理某些语言,您可能需要在计算机上安装其他字体。以下是如何安装印地语字体的示例:

  1. 从此处下载字体: https: //fonts.google.com/specimen/Hind
  2. 解压缩并将字体移入~/.local/share/fonts(如果目录不存在,则创建它)。

如果你现在打开一个新终端,字符将被正确表示(这是在 kali linux 上测试的)。

用法

babelstrike.py [-h] -f FILE [-r] [-c] [-a] [-d DOMAIN] [-u] [-q]

options:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  File to process.
  -r, --romanization    Transliterate names to the latin alphabet.
  -c, --convertion      Perform name-to-username convertions.
  -a, --auto-reverse    Perform name-to-username convertion patterns against the reversed version of each name as well.
  -d DOMAIN, --domain DOMAIN
                        Comma seperated list of domains to add as prefix to each generated username (e.g. EVILCORP\scott.henderson).
  -u, --update          Pull the latest version from the original repo.
  -q, --quiet           Do not print the banner on startup.

贡献

为了使罗马化功能准确,我决定对每种语言(最好是由母语人士制作)使用自定义字符替换映射。我正在世界各地寻找一些很酷的人来创建这样的地图,这些地图基本上是一个 Python 字典。

指示

如果您想贡献语言课程,您所要做的就是:

  • 找到您语言字母表的官方罗马化标准(例如在维基百科中),
  • 从language_classes文件夹中复制语言类文件以用作模板(我建议您使用 Greek.py),
  • 编辑文件名和类名以代表您的语言,
  • 编辑char_substitution_map字典并创建字符替换映射(重要提示:不要更改字典的名称),
    • 仅映射小写字母,考虑可能以拉丁字母表的单个字符音译的双字母或三字母发音,考虑重音字符(例如 à、è、ì、ò、ù),当一个字母有多个音译对应项时,请使用列表来包含所有这些字母(BabelStrike 将处理所有变体)。例子:
# In Greek, the letter 'υ' may be transliterated as 'y' or 'u'. # This is how it should be declared in the character mapping dictionary: char_substitution_map = { 'ά' : 'a', 'έ' : 'e', 'υ' : ['y','u'] }
  • 将新类保存在适当命名的language_classes文件夹中。

项目地址

GitHub:
https://github.com/t3l3machus/BabelStrike

下载地址

BabelStrike

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注