Skip to main content

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.

Metadata

Release files for comtext-sr-pseudonymizer 0.5.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for comtext-sr-pseudonymizer 0.5.12
File Size Uploaded
comtext_sr_pseudonymizer-0.5.12.tar.gz 2.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for comtext-sr-pseudonymizer 0.5.12
File Interpreter ABI Platform
comtext_sr_pseudonymizer-0.5.12-py3-none-any.whl Python 3 none any Details

Total release size: 4.7 MB

Release files / comtext_sr_pseudonymizer-0.5.12.tar.gz

Download URL comtext_sr_pseudonymizer-0.5.12.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
9e9c6c302b24948ad8cdd00d0458398274d2be51917e9d8969ba543b02cc3d68
BLAKE2b-256 checksum
How to use checksums
7830323489ba4cd6301510d15f7224e65760051c9e336ada72078cc2b7fc97f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / comtext_sr_pseudonymizer-0.5.12-py3-none-any.whl

Download URL comtext_sr_pseudonymizer-0.5.12-py3-none-any.whl
Size 2.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
aee22628ece9b3e1565403501260b831f5745c800ef83a8aa192a71e59fe03bf
BLAKE2b-256 checksum
How to use checksums
5a41884527515ed6a69325cac17f6a87cdc07c0a4628451c73b435c4992a9603
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.5.12 This release

2 release files

0.5.11

2 release files

0.5.10

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page