Binonymizer是一个Python工具,旨在对平行语料库中的个人数据进行标记。
项目描述
binonymizer
Binonymizer是一个Python工具,旨在对平行语料库中的个人数据进行标记1。
例如,对于以下输入:
URL1 URL2 My name is Marta and my email is fake@email.com Mi nombre es Marta y mi email es fake@email.com
Binonymizer的输出将是:
URL1 URL2 My name is <entity class="PER">Marta</entity> and my email is <entity class="EMAIL">fake@email.com</entity> Mi nombre es <entity class="PER">Marta</entity> y mi email es <entity class="EMAIL">fake@email.com</entity>
可检测实体类型
目前,Binonymizer能够检测和标记以下类型的实体
- PER:人名
- ORG:组织和公司名称
- EMAIL:电子邮件地址
- PHONE:电话号码
- ADDRESS:地址
- ID:个人卡片ID(例如西班牙的DNI)
- MISC:其他个人数据,或当类型不确定时
- OTHER:其他
安装与要求
Binonymizer与Python 3.6兼容,可以使用pip
安装。
python3.6 -m pip install binonymizer
安装后,两个二进制文件(binonymizer
和binonymizer-lite
)将位于您的python/installation/prefix
/bin目录中。
如果需要,会自动下载和安装与语言相关的包和模型。
巴斯克语的额外说明
如果您计划对巴斯克语数据进行binonymize,您需要从github下载binonymizer
,并执行以下步骤
cd binonymizer
git submodule sync
git submodule update --init --recursive --remote
cd prompsit_python_bindings
python3.6 setup.py install
请注意,您需要访问Prompsit的私有仓库。如果您需要更多信息,请联系我们。
用法
Binonymizer可以使用以下方式运行
binonymizer [-h] --format {tmx,cols} [--tmp_dir TMP_DIR]
[-b BLOCK_SIZE] [-p PROCESSES] [-q] [--debug]
[--logfile LOGFILE] [-v]
input [output] srclang trglang
参数
- 位置参数
- 输入:待匿名化的文件(见以下格式)
- 输出:包含匿名化注解的文件(默认:标准输出)
- srclang:输入的源语言代码
- trglang:输入的目标语言代码
- 可选参数
- -h, --help:显示此帮助信息并退出
- 必须
- --format {tmx,cols}:输入文件格式。值:cols, tmx("cols"格式:URL1 URL2 SOURCE_SENTENCE TARGET_SENTENCE [extra columns] tab-separated)
- 可选
- --tmp_dir TMP_DIR:创建此程序临时文件的临时目录(默认:系统默认临时目录,由Unix中的环境变量TMPDIR定义)
- -b BLOCK_SIZE, --block_size BLOCK_SIZE:每块的句子对数(默认:10000)
- -p PROCESSES, --processes PROCESSES:要使用的进程数(默认:所有CPU减一)
- 日志记录
- -q, --quiet:静默日志模式(默认:False)
- --debug:调试日志模式(默认:False)
- --logfile LOGFILE:将日志存储到文件中(默认:标准错误输出)
- -v, --version:显示此脚本的版本并退出
示例
binonymizer corpus.en-es.raw corpus.en-es.anon en es --format cols --tmp_dir /tmpdir -b50000 -p31
这将读取名为"corpus.en-es.raw"的语料库,该语料库采用基于列的格式,提取个人信息,并将标记输出写入"corpus.en-es.anon"。Binonymizer将在50000个句子的块中运行,使用31个核心,并在/tmpdir中写入临时文件
轻量版
虽然binonymizer
通过将工作负载分配给可用核心来实现并行化,但一些用户可能更喜欢实现自己的并行化策略。为此,提供了一个脚本的单线程版本:binonymizer_lite
。用法与完整版完全相同,但省略了块大小(-b)和进程(-p)参数。
待办事项
- 完全支持TMX输入/输出
- 地址识别
- GPU支持
- 自动处理Prompsit-python-bindings子模块(git submodule update --remote, python3.6 setup.py install)
1:见EC对“个人信息”的定义:https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en
项目详情
下载文件
下载适用于您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。