gpt4 book ai didi

python-3.x - 使用 Python 将特定文本替换为编辑版本

转载 作者:行者123 更新时间:2023-12-04 21:01:32 25 4
gpt4 key购买 nike

我希望做与这里所做的相反的事情:

import re

text = '1234-5678-9101-1213 1415-1617-1819-hello'

re.sub(r"(\d{4}-){3}(?=\d{4})", "XXXX-XXXX-XXXX-", text)

output = 'XXXX-XXXX-XXXX-1213 1415-1617-1819-hello'

Partial replacement with re.sub()

我的总体目标是替换所有 XXXX在使用神经网络的文本中。 XXXX可以表示 .csv 文件中的名称、地点、数字、日期等。

最终结果将如下所示:
XXXX went to XXXX XXXXXX

海绵宝宝去了迪斯尼乐园。

简而言之,我正在取消屏蔽文本并将其替换为使用模糊生成的数据集。

最佳答案

您可以使用 named-entity recognition 来做到这一点(NER)。这相当简单,并且有现成的工具可以做到这一点,例如 spaCy .

NER 是 NLP训练神经网络(或其他方法)以检测某些实体(例如姓名、地点、日期和组织)的任务。

例子:

Sponge Bob went to South beach, he payed a ticket of $200!
I know, Michael is a good person, he goes to McDonalds, but donates to charity at St. Louis street.



返回:

NER with spacy

请注意,这不是 100%!

这里有一个小片段供您尝试:
import spacy

phrases = ['Sponge Bob went to South beach, he payed a ticket of $200!', 'I know, Michael is a good person, he goes to McDonalds, but donates to charity at St. Louis street.']
nlp = spacy.load('en')
for phrase in phrases:
doc = nlp(phrase)
replaced = ""
for token in doc:
if token in doc.ents:
replaced+="XXXX "
else:
replaced+=token.text+" "


在此处阅读更多信息: https://spacy.io/usage/linguistic-features#named-entities

您可以不使用 XXXX 替换,而是根据实体类型进行替换,例如:
if ent.label_ == "PERSON":
replaced += "<PERSON> "

然后:
import re, random

personames = ["Jack", "Mike", "Bob", "Dylan"]

phrase = re.replace("<PERSON>", random.choice(personames), phrase)

关于python-3.x - 使用 Python 将特定文本替换为编辑版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59382579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com