個人を識別可能な情報

言語は、非構造化テキストで個人識別可能情報(PII)の識別を解除するオプションを検出、分類および提供します。

ユース・ケース

ユーザー・フィードバックでのプライベート情報の検出およびキュレーション

多くの組織では、製品レビュー、返品要求、サポート・チケット、フィードバック・フォーラムなどの様々なチャネルを通じてユーザー・フィードバックを収集しています。PIIエンティティの自動検出に言語PII検出サービスを使用すると、事前に警告するだけでなく、投稿されたフィードバックを保存する前に匿名化することもできます。PIIエンティティの自動検出を使用すると、プライベート・データの共有についてプロアクティブに警告したり、マスクされたデータの格納などのメジャーを実装するためのアプリケーションを実装できます。

機密データの存在をスキャンするオブジェクト・ストレージ

OCI Object Storageなどのクラウド・ストレージ・ソリューションは、多くのチームがローカルで管理または共有する場所にビジネス・ドキュメントを格納するために、従業員によって広く使用されています。このような共有場所が従業員名、人口統計、給与情報などの個人情報を格納しないようにするには、PIIの存在のためにすべての文書を自動スキャンする必要があります。OCI Language PIIモデルは、大量のテキスト・ドキュメントを大規模に処理するためのバッチAPIを提供します。

サポートされているエンティティ

次の表に、PIIで抽出できる様々なエンティティを示します。

エンティティ・タイプ 説明
PERSON ユーザー名
ADDRESS アドレス
AGE 期間
DATE_TIME 日付または時間
SSN_OR_TAXPAYER 社会保障番号または納税者ID (US)
EMAIL 電子メール
PASSPORT_NUMBER_US パスポート番号(US)
TELEPHONE_NUMBER 電話またはFAX(米国)
DRIVER_ID_US ドライバ識別番号(US)
BANK_ACCOUNT_NUMBER 銀行口座番号(US)
BANK_SWIFT 銀行口座(SWIFT)
BANK_ROUTING 銀行ルーティング番号
CREDIT_DEBIT_NUMBER クレジットまたはデビット・カード番号
IP_ADDRESS IPアドレス(IPV4とIPV6の両方)
MAC_ADDRESS MACアドレス

シークレット・タイプは次のとおりです:

COOKIE WebサイトCookie
XSRF TOKEN クロスサイト・リクエスト・フォージェリ(XSRF)トークン
AUTH_BASIC Basic認証
AUTH_BEARER Bearer認証
JSON_WEB_TOKEN JSON Web Token
PRIVATE_KEY 暗号化秘密キー
PUBLIC_KEY 暗号化公開キー

OCI内のリソースへのアクセスおよび管理に必要な認証情報であるOCIアカウント資格証明を次に示します。これらの資格証明は、OCIサービスおよびリソースと対話するためのユーザー、アプリケーションおよびサービスのセキュアな認証を保証する目的で使用されます。

OCI_OCID_USER OCIユーザー
OCI_OCID_TENANCY テナントOCID (Oracle Cloud Identifier)
OCI_SMTP_USERNAME SMTP (Simple Mail Transfer Protocol)ユーザー名
OCI_OCID_REFERENCE OCID参照
OCI_FINGERPRINT OCIフィンガープリント
OCI_CREDENTIAL このタイプには、OCI認証トークン、OAuth資格証明およびSMTP資格証明が含まれます
OCI_PRE_AUTH_REQUEST OCI事前認証済リクエスト
OCI_STORAGE_SIGNED_URL OCIストレージ・シング済URL
OCI_CUSTOMER_SECRET_KEY OCI顧客秘密キー
OCI_ACCESS_KEY OCIアクセス・キーまたはセキュリティ資格証明

入力テキスト "*"でマスクされた出力テキスト

Hello Support Team,

I am reaching out to seek help with my credit card number 5111 1111 1111 1118 expiring on 11/23. There was a suspicious transaction on 12-Aug-2022 which I reported by calling from my mobile number +1 (650) 555-0190 also I emailed from my email id sarah.jones1234@hotmail.com. Would you please let me know the refund status?

Regards,

Sarah

Hello Support Team, I am reaching out to seek help with my credit card number ******************* expiring on ***** . There was a suspicious transaction on *********** which I reported by calling from my mobile number ** ************** also I emailed from my email id *************************** . Would you please let me know the refund status? Regards, *****

この例のJSONは次のとおりです:

サンプル・リクエスト
POST https://<region-url>/20210101/actions/batchDetectLanguagePiiEntities
APIリクエスト形式:
{
  "documents": [
    {
      "languageCode": "en",
      "key": "1",
      "text": "Hello Support Team, I am reaching out to seek help with my credit card number 5111 1111 1111 1118 expiring on 11/23. There was a suspicious transaction on 12-Aug-2022 which I reported by calling from my mobile number +1 (650) 555-0190 also I emailed from my email id sarah.jones1234@hotmail.com. Would you please let me know the refund status? Regards, Sarah"
    }
  ],
  "compartmentId": "ocid1.tenancy.oc1..aaaaaaaadany3y6wdh3u3jcodcmm42ehsdno525pzyavtjbpy72eyxcu5f7q",
  "masking": {
    "ALL": {
      "mode": "MASK",
      "isUnmaskedFromEnd": true,
      "leaveCharactersUnmasked": 4
    }
  }
}
レスポンスJSON:
{
    "documents": [
        {
            "key": "1",
            "entities": [
                {
                    "offset": 79,
                    "length": 19,
                    "type": "CREDIT_DEBIT_NUMBER",
                    "text": "5111 1111 1111 1118",
                    "score": 0.75,
                    "isCustom": false
                },
                {
                    "offset": 111,
                    "length": 5,
                    "type": "DATE_TIME",
                    "text": "11/23",
                    "score": 0.9992455840110779,
                    "isCustom": false
                },
                {
                    "offset": 156,
                    "length": 11,
                    "type": "DATE_TIME",
                    "text": "12-Aug-2022",
                    "score": 0.998766303062439,
                    "isCustom": false
                },
                {
                    "offset": 218,
                    "length": 2,
                    "type": "TELEPHONE_NUMBER",
                    "text": "+1",
                    "score": 0.6941494941711426,
                    "isCustom": false
                },
                {
                    "offset": 221,
                    "length": 14,
                    "type": "TELEPHONE_NUMBER",
                    "text": "(650) 555-0190",
                    "score": 0.9527066349983215,
                    "isCustom": false
                },
                {
                    "offset": 268,
                    "length": 27,
                    "type": "EMAIL",
                    "text": "sarah.jones1234@hotmail.com",
                    "score": 0.95,
                    "isCustom": false
                },
                {
                    "offset": 354,
                    "length": 5,
                    "type": "PERSON",
                    "text": "Sarah",
                    "score": 0.9918518662452698,
                    "isCustom": false
                }
            ],
            "languageCode": "en",
            "maskedText": "Hello Support Team, \nI am reaching out to seek help with my credit card number ***************2345 expiring on *1/23. There was a suspicious transaction on *******2022 which I reported by calling from my mobile number +1 **********9999 also I emailed from my email id ***********************.com. Would you please let me know the refund status?\nRegards,\n*arah"
        }
    ],
    "errors": []
}

PIIまたはPHIテキスト出力の構成

言語サービスでは、テキストの分析時にPII/PHI出力を構成できます。

  1. 「テキストの分析」に入力します。
  2. 「PIIまたはPHI」セクションで、「出力」セクションの「構成」をクリックします。
  3. ドロップダウンから「PII」を選択します。
  4. 次から選択します:
    • マスク: エンティティを含めるまたは除外する場合に選択します。
      1. 匿名化除外リスト: UI出力およびSDK出力から除外するエンティティを入力します。
      2. 検出されたエンティティにマスキングから除外されたエンティティを含める: 出力から除外されたエンティティをUIに含めるが、エンティティをSDK出力に引き続き含める場合に選択します。
      3. マスキング文字: 入力テキストをマスクするマスキング文字。
    • 置換: PIIエンティティを特定の文字シーケンスで置換します。
    • 削除: PIIエンティティを出力から削除します。
  5. 「変更の保存」をクリックします。

PIIルール

カスタムPIIルール
キー タイプ 内容
ruleId 文字列 ルールの一意の識別子です。
regex 文字列 カスタム・データ型と一致する正規表現パターン。たとえば、([A-Z]{5}[0-9]{4}[A-Z]{1})はパン・カードと一致します。
type 文字列 照合するエンティティ・タイプの名前。たとえば、PAN_CARDです。
prefix リスト<String> 検出されたregexmaxDistance内で検索する単語またはフレーズ。
suffix リスト<String> 検出されたregexmaxDistance内で検索する単語またはフレーズ。
isCaseSensitive Boolean 照合プロセスで大文字と小文字を個別とみなすかどうかを決定します。値は大/小文字の区別を示すtrue、大/小文字の区別を示すfalseです。
maxDistance Integer prefix/suffixと照合済パターンの間の最大許容距離を文字数で定義し、パターンがprefix/suffixに一定の近接度内で検出されるようにします。
priority Integer ルールの優先順位優先度1が最も高い1から50の範囲。たとえば、同じregexを持つ2つのルールがあり、prefixsuffixが異なる場合、優先度が高いルールが考慮されます。
regexOnly Boolean

trueの場合、ルールregexと同じregexを持つモデル検出済エンティティが削除されます。

たとえば:

"I am 25 years old and he is 11 months old、" with the suffix set to ["years"]: 文では、「私は25歳で、彼は11か月齢です。

  • regexOnlyがtrueの場合、接尾辞"months"が指定された接尾辞"years"と一致しないため、25のみが検出されます。
  • regexOnlyがfalseの場合、25と11の両方が検出され、ルールから25 (接尾辞"years"のため)およびモデルから11が検出されます。
filterEntityTypes リスト<String>

フィルタするOCIエンティティ・タイプ。たとえば、[PERSON、 AGE]は、モデル検出からエンティティ・タイプPERSONおよびAGEをフィルタします。フィルタを[ALL]に設定すると、検出されたすべてのモデル・エンティティがフィルタで除外されます。

[All]をリストする場合、regexベースを検出し、事前定義済モデル・エンティティを無視します。

disable Boolean trueに設定すると、このルールが無効になります。

サンプル・ルール・ファイル

[
          {
          "ruleId": "rule 1",
          "regex": "([A-Z]{2}[0-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{3}\/[0-9]{3})",
          "type": "NAREGA_ID",
          "isCaseSensitive": true,
          "suffix": ["id", "narega"],
          "regexOnly": true,
          "maxDistance": 10,
          "priority": 2
          },
          {
          "ruleId": "rule 2",
          "regex": "([A-Z]{5}[0-9]{4}[A-Z]{3})",
          "type": "PAN_CARD",
          "prefix": ["pan", "pancard"],
          "isCaseSensitive": false,
          "regexOnly": false,
          "maxDistance": 10,
          "priority": 2,
          "filterEntityTypes": ["PERSON"]
          },
          {
          "ruleId": "rule 3",
          "regex": "([A-Z]{4}[0-9]{7})",
          "type": "IFSC_CODE",
          "prefix": ["IFSC"],
          "isCaseSensitive": false,
          "regexOnly":false,
          "maxDistance": 20,
          "priority": 2,
          "disable": false
          },
          {
          "ruleId": "rule 4",
          "regex": "([A-Z]{2}[0-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{3}\/[0-9]{3})",
          "type": "TIRA_ID",
          "isCaseSensitive": false,
          "prefix": ["Narega"],
          "regexOnly": false,
          "maxDistance": 10,
          "priority": 1
          }
          ]