Spaces:
Runtime error
Runtime error
from typing import Tuple, List | |
import gradio as gr | |
from presidio_analyzer import AnalyzerEngine | |
from presidio_analyzer.nlp_engine import NlpEngineProvider | |
from presidio_anonymizer import AnonymizerEngine | |
from faker import Faker | |
from presidio_anonymizer.entities.engine import OperatorConfig | |
def process(text: str, fake_data: bool) -> Tuple[str, List]: | |
configuration = { | |
"nlp_engine_name": "spacy", | |
"models": [{"lang_code": "hu", "model_name": "hu_core_news_lg", }], | |
} | |
provider = NlpEngineProvider(nlp_configuration=configuration) | |
nlp_engine = provider.create_engine() | |
analyzer = AnalyzerEngine(nlp_engine=nlp_engine, | |
supported_languages=["hu"]) | |
results = analyzer.analyze( | |
text=text, entities=["PERSON", "LOCATION"], language="hu") | |
fake = Faker(locale=["hu_HU"]) | |
fake_operators = { | |
"PERSON": OperatorConfig("custom", {"lambda": lambda x: fake.name()}), | |
"LOCATION": OperatorConfig("custom", {"lambda": lambda x: fake.address()}), | |
} | |
anonymizer = AnonymizerEngine() | |
anonymized_text = anonymizer.anonymize( | |
text=text, analyzer_results=results, operators=fake_operators) if fake_data else anonymizer.anonymize(text=text, analyzer_results=results) | |
return anonymized_text.text, anonymized_text.items | |
EXAMPLES = [ | |
["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], | |
["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] | |
] | |
demo = gr.Interface( | |
fn=process, | |
inputs=[gr.Textbox(value=EXAMPLES[0][0], lines=10, label="Input text", show_label=True), | |
gr.Checkbox(value=EXAMPLES[0][1], label="Use fake data", show_label=True),], | |
outputs=[gr.Textbox(label="Anonymized text", show_label=True), | |
gr.Textbox(label="Tags", show_label=True)], | |
examples=EXAMPLES, | |
cache_examples=True, | |
) | |