Skip to main content

Pseudonymization library for COMtext.SR

Project description

COMtext.SR pseudonimizator

COMtext.SR pseudonimizator je programska biblioteka za pseudonimizaciju poverljivih podatka, tj. njihovu zamenu izmišljenim podacima istog tipa, u pravno-administrativnim tekstovima na srpskom jeziku. Ova biblioteka je razvijena u okviru projekta COMtext.SR.

COMtext.SR pseudonimizator je u stanju da izvrši pseudonimizaciju sledećih tipova poverljivih podataka:

  • Imena i prezimena osoba
  • Adresa i toponima
  • Naziva kompanija i nevladinih organizacija
  • Identifikatora fizičkih lica (JMBG, broj lične karte/pasoša) i pravnih lica (PIB, matični broj)
  • Brojeva registarskih tablica
  • Brojeva parcela
  • Novčanih iznosa
  • Brojeva računa u banci
  • Kontakt informacija - brojeva telefona, URLova i email adresa
  • Datuma

Za izvršavanje biblioteke neophodno je korišćenje Python verzije 3.11. ili novije.

Ulazni podaci

Rad pseudonimizatora se zasniva na pravilno obeleženim imenovanim entitetima za svaki od tipova poverljivih informacija koje treba pseudonimizovati. COMtext.SR pseudonimizator se stoga oslanja na prethodno korišćenje modela za prepoznavanje imenovanih entiteta u pravno-administrativnim tekstovima koji su izrađeni u okviru COMtext.SR projekta.

Priprema dokumenta za pseudonimizaciju podrazumeva da se sirov tekstualni sadržaj dokumenta prethodno tokenizuje i propusti kroz COMtext.SR.legal modele za morfosintaktičko obeležavanje reči, lematizaciju i prepoznavanje imenovanih entiteta radi dobijanja potrebnih oznaka. Alternativno, moguće je za te potrebe adaptirati neke druge modele istog tipa za obradu tekstova na srpskom, tako da njihov izlaz odgovara oznakama koje koriste COMtext.SR modeli.

Biblioteka očekuje da ulazni podaci budu formatirani u .conllu formatu, sa sledećim kolonama:

  1. Redni broj tokena
  2. Token
  3. Lema
  4. Morfosintaktički tag (po MULTEXT-East v6 standardu)
  5. Imenovani entiteti (prema šemi entiteta iz COMtext.SR projekta, obeleženi po IOB2 standardu)

Ukoliko ulazni .conllu fajl sadrži više dokumenata, početak svakog dokumenta bi trebalo da bude naznačen pomoću:

# newdoc id = DOC123

gde je DOC123 proizvoljan identifikator posmatranog dokumenta.

Način rada

COMtext.SR pseudonimizator se u radu oslanja na srLex, najveći javno dostupni flektivni leksikon srpskog jezika. To mu omogućava da izvrši zamenu imena i prezimena osoba i adresa u adekvatnom padežnom obliku u kome se originalni entitet nalazio.

Identifikatori fizičkih i pravnih lica (JMBG, broj lične karte/pasoša, PIB, matični broj) se zamenjuju vodeći računa o zadržavanju validnog formata navedenih identifikatora. Isto važi i za brojeve registarskih tablica, parcela, računa u banci. Pritom, zamene identifikatora fizičkih i pravnih lica se uvek generišu sa pogrešnom kontrolnom cifrom, tako da se izbegne preklapanje sa nekim drugim realno postojećim vrednostima identifikatora.

COMtext.SR pseudonimizator koristi vreme pokretanja i ID ulaznog dokumenta kao seed vrednosti za interni generator slučajnih brojeva. To omogućava da zamene budu slučajne, tj. da se razlikuju između dva pokretanja pseudonimizatora nad istim ulaznim podacima, a da istovremeno budu konzistentne, tako da se u okviru istog dokumenta jedan isti ulazni entitet uvek zamenjuje fiksnim zamenskim entitetom.

Ograničenja

  • Prisvojni pridevi: Zbog izuzetno ograničene pokrivenosti prisvojnih prideva izvedenih iz ličnih imena u srLex leksikonu, COMtext.SR pseudonimizator trenutno nije u stanju da izvrši zamenu takvih oblika imenovanih entiteta.
  • Toponimi: Pseudonimizator je trenutno ograničen u zameni toponima na nazive 145 gradova i opština u Republici Srbiji. Pored toga, biblioteka trenutno ne vrši zamenu toponima koji se javljaju u okviru naziva institucija tj. u okviru imenovanih entiteta tog tipa, dok se za toponime u okviru zvaničnih naziva sudova vrši zamena.
  • Kompanije: Zamena imena realnih kompanija i nevladinih organizacija je trenutno ograničena na njihov oblik u nominativu.
  • Pravna dokumenta: Pseduonimizacija poverljivih informacija sadržanih u okviru pominjanja pravnih dokumenata, poput opštih i pojedinačnih pravnih akata, trenutno nije podržana.

Instalacija i pokretanje

COMtext.SR pseudonimizator je dostupan u vidu PyPI paketa koji se može instalirati sledećom komandom:

pip install comtext-sr-pseudonymizer

Pokretanje

Biblioteka se može pokrenuti direktno iz komandne linije komandom: comtext-sr-pseudonymizer

Argumenti

Argument Skraćenica Opis
--input -i Obavezno. Putanja do .conllu fajla koji se pseudonimizuje.
--output -o Direktorijum za čuvanje rezultata (default: results).
--types -t Opciona lista entiteta (npr. PER ADR DATE). Ako se izostavi, svi podržani tipovi se pseudonimizuju.

Primer upotrebe

comtext-sr-pseudonymizer --input ./data/my_text.conllu --output ./my_results --types PER TOP ADR

Izlazni podaci

Biblioteka generiše dva izlazna fajla prilikom svakog izvršavanja. Prvi fajl sadrži pseudonimizovane podatke, dok drugi sadrži spisak izvršenih zamena.

1. Pseudonimizovani tekst - File: [FILENAME]_[TIMESTAMP].conllu

Ovo je glavni izlazni fajl. On zadržava strukturu ulaznog fajla, ali zamenjuje poverljive informacije pseudonimizovanim vrednostima.

  • Format: Tabulatorom razdvojen format sa 3 kolone (Redni broj tokena u rečenici, pseudonimizovan token, NER tag po IOB2 formatu).
  • Metapodaci: Originalni metapodaci (# newdoc id, # sent_id, # text) su sačuvani i modifikovani shodno unetim zamenskim vrednostima.
  • Logika: Transformišu se samo tokeni koji pripadaju nekom imenovanom entitetu (B-X, I-X); tokeni sa oznakom "O" ostaju nepromenjeni.

Primer izlaznog formata:

# sent_id = vA001-s1
# text = DUTAN S DOO ul. Božidara Korkocića 82 15300 Loznica
1	DUTAN	B-COM
2	S	I-COM
3	DOO	I-COM
4	ul.	B-ADR
5	Božidara	I-ADR
6	Korkocića	I-ADR
7	82	I-ADR
8	15300	I-ADR
9	Loznica	I-ADR

2. Spisak izvršenih zamena - File: [FILENAME]_[TIMESTAMP]_replacements.tsv

Ovaj fajl služi kao izveštaj o mapiranju, omogućavajući direktno poređenje originalnih podataka sa generisanim zamenama.

Struktura fajla:

Kolona Opis
doc_id Jedinstveni identifikator izvornog dokumenta (npr, vA001).
sentence_id Identifikator konkretne rečenice (npr. vA001-s1).
start_token_num Indeks prvog tokena u entitetu.
end_token_num Indeks poslednjeg tokena u entitetu.
original_text Izvorni tekst entiteta (može se sastojati od više reči).
entity_group Kategorija imenovanih entiteta prema COMtext.SR šemi (npr. COM, ADR, DATE).
anonymized_text Zamena koju je generisala biblioteka.

Primer formata:

doc_id	sentence_id	start_token_num	end_token_num	original_text	entity_group	anonymized_text
vA001	vA001-s1	1	4	Trans Impex Trade d.o.o.	COM	DUTAN S DOO
vA001	vA001-s1	5	11	Bul. Vojvode Stepe 123/2 21000 Novi Sad	ADR	ul. Božidara Korkocića 82 15300 Loznica
vA001	vA001-s12	2	3	Novom Sadu	TOP	Loznici
vA001	vA001-s12	5	9	dana 1. 2. 2011. godine	DATE	dana 20. 03. 2007. godine
vA001	vA001-s3	12	18	Trans Impex Trade d.o.o. iz Novog Sada	COM	DUTAN S DOO
vA001	vA001-s3	21	22	Petar Petrović	PER	Nemanja Kolarski
vA001	vA001-s3	24	25	Novog Sada	TOP	Loznice

Autorstvo

COMtext.SR pseudonimizator je izrađen od strane članova Grupe za obradu prirodnih jezika u okviru Inovacionog centra Elektrotehničkog fakulteta u Beogradu (ICEF):

Licenca

COMtext.SR pseudonimizator je dostupan pod licencom Apache 2.0, što znači da se može slobodno koristiti za bilo koje svrhe, uključujući i komercijalne, uz navođenje informacija o autorstvu.

Zahvalnost

Izrada COMtext.SR pseudonimizatora je omogućena zahvaljujući podršci Fondacije Registar nacionalnog internet domena Srbije - RNIDS.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

comtext_sr_pseudonymizer-0.5.6.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

comtext_sr_pseudonymizer-0.5.6-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

Details for the file comtext_sr_pseudonymizer-0.5.6.tar.gz.

File metadata

File hashes

Hashes for comtext_sr_pseudonymizer-0.5.6.tar.gz
Algorithm Hash digest
SHA256 b9cd871cdc17e9b452de0146a3ddf1482a5122f754e9ba0f9d57c560eb9e96dc
MD5 b5ed935b6273b9e72b577c3f68aa3193
BLAKE2b-256 f86eb7e2657323da08a5900ac9bd0f210b6a1cb6a8aefab53571be036c939b07

See more details on using hashes here.

File details

Details for the file comtext_sr_pseudonymizer-0.5.6-py3-none-any.whl.

File metadata

File hashes

Hashes for comtext_sr_pseudonymizer-0.5.6-py3-none-any.whl
Algorithm Hash digest
SHA256 65f4befc210ec6a939b45d2654cdea82d58473487f2b20a609ab7c072604b23d
MD5 083d3252414d5970e804d8509e0501a8
BLAKE2b-256 259d83a6df22729b56919c0c0830868c9c7ffca835a46ffd5d3d94694be034e5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page