oroszgy commited on
Commit
b27f1b3
2 Parent(s): ff20e6e 167b14f

Merge pull request #2

Browse files

feat: Added option to select entities in anonymizer demo

Files changed (1) hide show
  1. examples/anon.py +21 -7
examples/anon.py CHANGED
@@ -10,7 +10,7 @@ from faker import Faker
10
  from presidio_anonymizer.entities.engine import OperatorConfig
11
 
12
 
13
- def process(text: str, fake_data: bool) -> Tuple[str, List]:
14
  configuration = {
15
  "nlp_engine_name": "spacy",
16
  "models": [{"lang_code": "hu", "model_name": "hu_core_news_lg", }],
@@ -20,35 +20,49 @@ def process(text: str, fake_data: bool) -> Tuple[str, List]:
20
  nlp_engine = provider.create_engine()
21
 
22
  analyzer = AnalyzerEngine(nlp_engine=nlp_engine,
23
- supported_languages=["hu"])
24
 
25
  results = analyzer.analyze(
26
- text=text, entities=["PERSON", "LOCATION"], language="hu")
27
 
28
  fake = Faker(locale=["hu_HU"])
29
 
30
  fake_operators = {
31
  "PERSON": OperatorConfig("custom", {"lambda": lambda x: fake.name()}),
32
  "LOCATION": OperatorConfig("custom", {"lambda": lambda x: fake.address()}),
 
 
 
 
 
 
 
 
33
  }
34
 
35
  anonymizer = AnonymizerEngine()
36
  anonymized_text = anonymizer.anonymize(
37
  text=text, analyzer_results=results, operators=fake_operators) if fake_data else anonymizer.anonymize(text=text, analyzer_results=results)
 
38
  return anonymized_text.text, anonymized_text.items
39
 
40
 
41
  EXAMPLES = [
42
- ["Vespucci 1450-es években született Firenzében, és 1497 és 1504 között legalább két felfedező úton vett részt – az egyiket spanyol, a másikat portugál támogatással.", False],
43
- ["Elon Musk 1971-ben született a Dél-afrikai Köztársaságban, anyja Maye Musk (született: Haldeman) modell, apja Errol Musk mérnök, pilóta.", True]
 
 
 
44
  ]
45
 
46
  demo = gr.Interface(
47
  fn=process,
48
  inputs=[gr.Textbox(value=EXAMPLES[0][0], lines=10, label="Input text", show_label=True),
49
- gr.Checkbox(value=EXAMPLES[0][1], label="Use fake data", show_label=True),],
 
 
50
  outputs=[gr.Textbox(label="Anonymized text", show_label=True),
51
  gr.Textbox(label="Tags", show_label=True)],
52
  examples=EXAMPLES,
53
- cache_examples=True,
54
  )
 
10
  from presidio_anonymizer.entities.engine import OperatorConfig
11
 
12
 
13
+ def process(text: str, fake_data: bool, entities: List) -> Tuple[str, List]:
14
  configuration = {
15
  "nlp_engine_name": "spacy",
16
  "models": [{"lang_code": "hu", "model_name": "hu_core_news_lg", }],
 
20
  nlp_engine = provider.create_engine()
21
 
22
  analyzer = AnalyzerEngine(nlp_engine=nlp_engine,
23
+ supported_languages=["hu"],)
24
 
25
  results = analyzer.analyze(
26
+ text=text, entities=entities, language="hu")
27
 
28
  fake = Faker(locale=["hu_HU"])
29
 
30
  fake_operators = {
31
  "PERSON": OperatorConfig("custom", {"lambda": lambda x: fake.name()}),
32
  "LOCATION": OperatorConfig("custom", {"lambda": lambda x: fake.address()}),
33
+ "EMAIL_ADDRESS": OperatorConfig("custom", {"lambda": lambda x: fake.email()}),
34
+ "PHONE_NUMBER": OperatorConfig("custom", {"lambda": lambda x: fake.phone_number()}),
35
+ "CRYPTO": OperatorConfig("custom", {"lambda": lambda x: fake.password()}),
36
+ "IP_ADDRESS": OperatorConfig("custom", {"lambda": lambda x: fake.ipv4()}),
37
+ "URL": OperatorConfig("custom", {"lambda": lambda x: fake.url()}),
38
+ "DATE_TIME": OperatorConfig("custom", {"lambda": lambda x: fake.date()}),
39
+ "CREDIT_CARD": OperatorConfig("custom", {"lambda": lambda x: fake.credit_card_number()}),
40
+ "IBAN_CODE": OperatorConfig("custom", {"lambda": lambda x: fake.iban()}),
41
  }
42
 
43
  anonymizer = AnonymizerEngine()
44
  anonymized_text = anonymizer.anonymize(
45
  text=text, analyzer_results=results, operators=fake_operators) if fake_data else anonymizer.anonymize(text=text, analyzer_results=results)
46
+
47
  return anonymized_text.text, anonymized_text.items
48
 
49
 
50
  EXAMPLES = [
51
+ ["Vespucci 1450-es években született Firenzében, és 1497 és 1504 között legalább két felfedező úton vett részt – az egyiket spanyol, a másikat portugál támogatással.", False, ["PERSON", "LOCATION"]],
52
+ ["Elon Musk 1971-ben született a Dél-afrikai Köztársaságban, anyja Maye Musk (született: Haldeman) modell, apja Errol Musk mérnök, pilóta.", True, [
53
+ "PERSON", "LOCATION"]],
54
+ ["Vespucci 1450-es években született Firenzében, és 1497 és 1504 között legalább két felfedező úton vett részt. Bárorító leveleket a vespucci@deojeda.es email-címre várt, mellette működött egy hangrögzítője is a +3903827802737 telefonszámon. Adományokat a bitcoin tárcájába (1Fsb3io3hj1jKaRCTRQ89Du88Dp7NxgEcU), bankkártyájára (5200 8282 8282 8210) és IBAN számlaszámára (ES8201289482186115378819) fogadott. Utazási blogja a https://firenze.it/vespucci címen volt elérhető. Legutóbb 1503-03-15-én publikált, ezt a 192.168.0.1 ip-címről tette meg.", True,
55
+ ["PERSON", "LOCATION", "EMAIL_ADDRESS", "PHONE_NUMBER", "CRYPTO", "IP_ADDRESS", "URL", "DATE_TIME", "CREDIT_CARD", "IBAN_CODE"]],
56
  ]
57
 
58
  demo = gr.Interface(
59
  fn=process,
60
  inputs=[gr.Textbox(value=EXAMPLES[0][0], lines=10, label="Input text", show_label=True),
61
+ gr.Checkbox(value=EXAMPLES[0][1],
62
+ label="Apply de-identification", show_label=True),
63
+ gr.CheckboxGroup(['PERSON', 'LOCATION', 'DATE_TIME', 'IP_ADDRESS', 'URL', 'EMAIL_ADDRESS', 'PHONE_NUMBER', 'CREDIT_CARD', 'IBAN_CODE', 'CRYPTO'], label="Entities", show_label=True, value=EXAMPLES[0][2])],
64
  outputs=[gr.Textbox(label="Anonymized text", show_label=True),
65
  gr.Textbox(label="Tags", show_label=True)],
66
  examples=EXAMPLES,
67
+ # cache_examples=True,
68
  )