Bagikan melalui


Mengadaptasi Informasi Identifikasi Pribadi (PII) ke domain Anda

Gambaran Umum

Untuk mengakomodasi dan beradaptasi dengan kosakata kustom pelanggan yang digunakan untuk mengidentifikasi entitas (juga dikenal sebagai "konteks"), fitur ini entitySynonyms memungkinkan pelanggan untuk menentukan sinonim mereka sendiri untuk jenis entitas tertentu. Tujuan dari fitur ini adalah untuk membantu mendeteksi entitas dalam konteks yang tidak terbiasa dengan model tetapi digunakan dalam input pelanggan dengan memastikan bahwa istilah unik pelanggan dikenali dan dikaitkan dengan benar selama proses deteksi.

Ini menyesuaikan layanan PII bawaan yang dilatih untuk mendeteksi entitas berdasarkan teks domain umum yang mungkin tidak cocok dengan kosakata input kustom pelanggan, seperti menulis "BAN" alih-alih "InternationalBankAccountNumber".

Ini berarti deteksi PII dapat menangkap informasi sensitif bahkan ketika ditulis dalam gaya, slang, atau bahasa kasual yang berbeda. Itu membuat sistem lebih baik dalam melindungi privasi dalam situasi dunia nyata.

Kami sangat menyarankan agar pelanggan terlebih dahulu menguji kualitas prediksi tanpa memperkenalkan sinonim dan hanya menggunakannya jika model tidak berkinerja baik. Misalnya, "Org" mungkin sesuatu yang sudah dipahami model sebagai "organisasi" dan tidak perlu menggunakan fitur Sinonim.

Setelah menguji layanan pada data mereka, pelanggan dapat menggunakan entitySynonyms untuk:

  • Tentukan entitas tertentu dalam layanan bawaan yang ada kata konteks sinonim kustom dalam kosakata inputnya.
  • Mencantumkan sinonim kustom.
  • Tentukan bahasa setiap sinonim.

Skema API untuk parameter 'entitySynoyms'

{ 
    "parameter":  
    "entitySynonyms": [  
        { 
            "entityType": "InternationalBankAccountNumber", 
            "synonyms": [ {"synonym": "BAN", "language": "en"} ] 
        } 
    ]
} 

Panduan penggunaan

  1. Sinonim harus dibatasi untuk frasa yang secara langsung merujuk pada jenis, dan mempertahankan kebenaran semantik. Misalnya, untuk jenis InternationalBankAccountNumberentitas , sinonim yang valid bisa menjadi "Nomor Akun Keuangan" atau "FAN". Namun, kata "deposit" mungkin dikaitkan dengan jenis tertentu karena tidak secara langsung memiliki arti sebagai nomor rekening bank, dan oleh karena itu tidak boleh digunakan.
  2. Sinonim seharusnya tidak bersifat khusus untuk negara tertentu. Misalnya, "paspor Jerman" tidak akan membantu untuk disertakan.
  3. Sinonim tidak dapat digunakan kembali untuk lebih dari satu jenis entitas.
  4. Fitur pengenalan sinonim ini hanya menerima subset jenis entitas yang didukung oleh layanan. Jenis entitas yang didukung dan contoh sinonim meliputi:
Jenis entitas yang didukung Jenis Entitas Contoh sinonim
Nomor Perutean ABA Nomor Rute ABA (ABARoutingNumber) Nomor transit perutean (RTN)
Alamat Alamat Tempatku adalah
Usia Usia Usia dalam tahun, usia saat ini, usia seseorang, usia biologis
Nomor Rekening Bank Nomor Rekening Bank No. rekening bank, nomor rekening tabungan, nomor rekening giro, nomor rekening keuangan
Nomor Kartu Kredit Nomor Kartu Kredit Nomor Cc, nomor kartu pembayaran, no akte kredit.
Tanggal Tanggal dan Waktu Tanggal yang diberikan, tanggal yang ditetapkan
Tanggal Lahir Tanggal Lahir Ulang Tahun, DOB, tanggal lahir
Nomor Rekening Bank Internasional Nomor Rekening Bank Internasional IBAN, nomor rekening bank internasional.
Organisasi Organisasi perusahaan, bisnis, perusahaan, perusahaan, badan, kelompok, lembaga, entitas, badan hukum, pihak, responden, penggugat, tergugat, yurisdiksi, mitra, penyedia, fasilitas, praktik, jaringan, institusi, perusahaan, LLC, Inc, LLP, berbadan hukum, majikan, merek, anak perusahaan
Orang Orang Nama, individu, pemegang akun
Tipe Orang TipeOrang Peran, judul, posisi
Nomor telepon Nomor Telepon Telepon rumah, sel, seluler
Kode SWIFT SWIFTCode Kode SWIFT, BIC (Kode Pengidentifikasi Bank), Pengidentifikasi SWIFT

Menyesuaikan output PII dengan menentukan nilai yang akan dikecualikan

Opsi ini valueExclusionPolicy memungkinkan pelanggan untuk menyesuaikan layanan PII untuk skenario di mana pelanggan lebih suka istilah tertentu tidak terdeteksi dan diredaksi bahkan jika istilah tersebut termasuk dalam kategori PII yang mereka minati terdeteksi. Misalnya, departemen kepolisian mungkin ingin pengidentifikasi pribadi diredaksi dalam banyak kasus kecuali untuk istilah seperti "petugas polisi", "tersangka", dan "saksi".

Dalam contoh berikut, pelanggan dapat menggunakan opsi valueExclusionPolicy untuk menentukan daftar nilai yang tidak ingin dideteksi atau disensor dari teks input. Dalam contoh di bawah ini, jika pengguna menentukan nilai "1 Microsoft Way, Redmond, WA 98052, US", bahkan jika entitas Alamat diaktifkan, nilai ini tidak diredaksi atau tercantum dalam output payload API yang dikembalikan.

Subset dari nilai yang telah ditentukan untuk dikecualikan, seperti "1 Microsoft Way", tidak dikecualikan.

Masukan

{ 
  "kind": "PiiEntityRecognition", 
  "parameters": { 
    "modelVersion": "latest", 
    "redactionPolicy": { 
      "policyKind": "characterMask", 
      "redactionCharacter": "-" 
    }, 
    "valueExclusionPolicy": { 
      "caseSensitive": false, 
      "excludedValues": { 
        "1 Microsoft Way, Redmond, WA 98052", 
        "1045 La Avenida St, Mountain View, CA 94043" 
      } 
    } 
  }, 
  "analysisInput": { 
    "documents": [ 
      { 
        "id": "1", 
        "text": "The police and John Doe inspected the storage garages located at 123 Main St, 1 Microsoft Way, Redmond, WA 98052, 456 Washington Blvd, Portland, OR, and 1045 La Avenida St, Mountain View, CA 94043" 
      } 
    ] 
  } 
} 

Keluaran

{ 
    "kind": "PiiEntityRecognitionResults", 
    "results": { 
        "documents": [ 
            { 
                "redactedText": "The police and John Doe inspected the storage garages located at **********, 1 Microsoft Way, Redmond, WA 98052, ********************************, and 1045 La Avenida St, Mountain View, CA 94043" 
                "id": "1", 
                "entities": [ 
                    { 
                        "text": "John Doe", 
                        "category": "Person", 
                        "offset": 16, 
                        "length": 5, 
                        "confidenceScore": 0.98 
                    } 
                ], 
                "warnings": [] 
            } 
        ], 
        "errors": [], 
        "modelVersion": "2021-01-15" 
    } 
} 

Menyesuaikan deteksi PII menggunakan regex Anda sendiri (hanya tersedia untuk kontainer PII Teks)

Pelanggan sekarang dapat menyesuaikan deteksi layanan PII dengan menentukan regex mereka sendiri menggunakan file konfigurasi pengenalan regex. Lihat panduan cara menggunakan kontainer kami untuk tutorial tentang cara menginstal dan menjalankan kontainer Deteksi Informasi Pengenal Pribadi (PII).

Nota

Ini hanya tersedia untuk kontainer TEXT PII

docker run --rm -it -p 5000:5000 --memory 8g --cpus 1 \ 
mcr.microsoft.com/azure-cognitive-services/textanalytics/pii:{IMAGE_TAG} \ 
Eula=accept \ 
Billing={ENDPOINT_URI} \ 
ApiKey={API_KEY} \ 
UserRegexRuleFilePath={REGEX_RULE_FILE_PATH} 

UserRegexRuleFilePath adalah jalur file dari aturan regex yang ditentukan pengguna.

Format pengenalan file regex

[ 
    { 
      "name": "USSocialSecurityNumber", // category, type and tag to be returned. This name must be unique 
      "description": "Rule to identify USSocialSecurityNumber in text", // used to describe the category 
      "regexPatterns": [ // list of regex patterns to identify the entities 
        { 
          "id": "StrongSSNPattern", // id for the regex pattern 
          "pattern": "(?<!\\d)([0-9]{3}-[0-9]{2}-[0-9]{4}|[0-9]{3} [0-9]{2} [0-9]{4}|[0-9]{3}.[0-9]{2}.[0-9]{4})(?!\\d)", // regex pattern to provide matches 
          "matchScore": 0.65, // score to assign if the regex matches 
          "locales": [ // list of languages valid for this regex 
            "en" 
         ] 
        }, 
        { 
          "id": "WeakSSNPattern", 
          "pattern": "(?<!\\d)([0-9]{9})(?!\\d)", 
          "matchScore": 0.55, 
          "locales": [ 
            "en" 
          ] 
        } 
      ], 
      "matchContext": { // patterns to give matches context 
        "hints": [ 
          { 
            "hintText": "ssa(\\s*)number", // regex pattern to find to give a match context. 
            "boostingScore": 0.2, // score to boost match confidence if hint is found 
            "locales": [ // list of languages valid for this context 
              "en" 
            ] 
          }, 
          { 
            "hintText": "social(\\s*)security(\\s*)(#*)", 
            "boostingScore": 0.2, 
            "locales": [ 
              "en" 
            ] 
          } 
        ], 
      } 
    } 
] 

Gambaran umum setiap parameter file pengenalan regex

Pengaturan Subparameter dan Deskripsi
name Kategori, jenis, dan tag untuk dikembalikan jika ada kecocokan regex.
decription (opsional) Deskripsi aturan yang dapat dibaca pengguna.
regexPatterns Daftar pola regex yang digunakan untuk menemukan entitas.
- id: Pengidentifikasi pola regex.
- matchScore: Skor keyakinan untuk kecocokan regex.
- locales: Bahasa yang valid untuk pola regex.
matchcontext Pola regex menyediakan konteks untuk entitas yang cocok. Pencocokan konteks adalah pencarian dua arah dari entitas yang cocok yang meningkatkan skor keyakinan jika ditemukan. Jika beberapa petunjuk mendukung kecocokan petunjuk dengan skor tertinggi digunakan.
- hints: Daftar pola regex yang memberikan konteks ke entitas yang cocok.
- hintText: Pola regex menyediakan konteks untuk entitas yang cocok.
- boostingScore: (opsional) Skor ditambahkan ke skor kepercayaan dari entitas yang cocok.
- locales: Bahasa yang valid untuk teks petunjuk.
- contextLimit: (opsional) Jarak dari entitas yang cocok untuk mencari konteks.

Penebangan kayu

Untuk menampilkan informasi tentang proses yang sedang berjalan regexRules, tambahkan properti berikut untuk mengaktifkan pencatatan log debug: Logging:Console:LogLevel:Default=Debug

docker run --rm -it -p 5000:5000 --memory 8g --cpus 1 \ 
mcr.microsoft.com/azure-cognitive-services/textanalytics/pii:{IMAGE_TAG} \ 
Eula=accept \ 
Billing={ENDPOINT_URI} \ 
ApiKey={API_KEY} \ 
UserRegexRuleFilePath={REGEX_RULE_FILE_PATH} \ 
Logging:Console:LogLevel:Default=Debug 

Batasan aturan regex

  • Nama aturan harus dimulai dengan "CE_"
  • Nama aturan harus unik.
  • Nama aturan hanya boleh menggunakan karakter alfanumerik dan garis bawah ("_")
  • Pola regex mengikuti format .NET regular Expressions. Lihat dokumentasi kami tentang ekspresi reguler .NET untuk informasi selengkapnya.