Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python实现数据匿名_Python - Fatal编程技术网

使用python实现数据匿名

使用python实现数据匿名,python,Python,我有一个非结构化的、自由格式的文本(取自电子邮件、电话对话记录)、一个名字列表和一个姓氏列表。 根据我的列表,用--FIRSTNAME--“替换文本中的所有名字,用--LASTNAME--”替换姓氏,最有效的方法是什么? 我可以迭代每个名字列表,然后做一个 text.replace(firstname--firstname--) 但这似乎效率很低,尤其是对于一个很长的名字列表和许多需要处理的长文本。有更好的选择吗 例如: 文字:“你好,我是大卫,有什么可以帮你的吗?你好,我叫亚历克斯·本德,我

我有一个非结构化的、自由格式的文本(取自电子邮件、电话对话记录)、一个名字列表和一个姓氏列表。 根据我的列表,用--FIRSTNAME--“替换文本中的所有名字,用--LASTNAME--”替换姓氏,最有效的方法是什么? 我可以迭代每个名字列表,然后做一个 text.replace(firstname--firstname--) 但这似乎效率很低,尤其是对于一个很长的名字列表和许多需要处理的长文本。有更好的选择吗

例如:

  • 文字:“你好,我是大卫,有什么可以帮你的吗?你好,我叫亚历克斯·本德,我正在安装我的新咖啡机。”
  • 名字列表:['Abe','Alex','Andy','David','Mark','Timothy']
  • 姓氏列表:['Baxter',Bender','King',McCloud']

预期输出:“您好,我是--FIRSTNAME--,有什么可以帮您的吗?您好,我的名字是--FIRSTNAME--LASTNAME--我正在尝试安装我的新咖啡机。”

我遵照@furas的建议,检查了flashtext模块。这几乎完全满足了我的需要。 我确实遇到了一个问题,因为我正在使用希伯来语(非ASCII字符),文本替换不会遵循单词边界。
类关键字处理器有一种方法(添加非单词边界(self,character)),由于某些原因,该方法未被记录,该方法允许添加不被视为边界字符的字符(除了默认的[a-zA-Z0-9\],仅允许整词替换。

这取决于您的数据结构。它是熊猫表吗?列表吗?您可以提供示例数据吗?如我所述,非结构化。这是免费文本如果您可以逐字获取,则可以使用名称将其签入
set()
,并签入
set()
应该更快-
如果word在集合(名称):
中,我也可以将文本拆分为较小的部分,并发送到子进程以同时运行它们。或者你应该在Google中查看是否有用于此的模块-也许它们会工作得更快。也许?@furas FlashText正是我所需要的!你一针见血。非常感谢