なお、このガイドでは Limina クラウド API を実際に利用しながら確認を進めることができます。こちらからサインアップして下さい。無償 API キーの取得Limina コンテナのセットアップに進む場合はこちらをご覧ください。コンテナ クイックスタート コンテナ利用時には API エンドポイントをコンテナ環境に合わせてサンプルコードを実行して下さい。
テキストの秘匿化処理
process/text エンドポイントはテキストのリストを受け取ります。テキスト内の PII 情報が検出され、リクエスト送信時のパラメータ (MARKER、MASKなど) によって指定された形で秘匿化されレスポンスが返されます。
processed_text秘匿化されたテキスト情報。秘匿化の種類はリクエスト送信時に渡す同名のパラメータprocessed_textによって指定することができます。entities検出された PII 情報のテキストがどのエンティティ (ラベル) として判定されたのか (NER - Named Entity Recognition) を参照することができます。
レスポンス
関連テキストのリンク
エンドポイントに送信するテキストのリストを、関連する一つのまとまり (バッチ) として処理させることができます。(link_batch パラメータ)
link_batch により、Limina の言語モデルは My phone number is と 2345435 という 2 つの要素としてではなく、一つのまとまりとして My phone number is 2345435 を扱います。ここでは電話番号としての検出を強固にします。
エンティティ検出対象をカスタマイズする
ここまでのサンプルは全てのエンティティ (beta エンティティ以外) を秘匿化しましたが、秘匿化の対象エンティティ (PII のタイプ) を選択 (あるいは除外) することができます。 対象エンティティの選択 以下の例ではSSN のみを秘匿化対象にします。
Regex によるフィルタリングの追加
PII の検出と秘匿化の対象を Regex によってフィルタリングすることも可能です。 フィルタリングの設定 企業固有の特定の書式を持つ PII 例えば従業員 ID、内部のデータベース ID、文書 ID 等の情報を秘匿化対象 (あるいは除外) を定義できます。 この例では 対象エンティティの選択 と フィルタリングの設定 を同時に指定します。ある従業員からの、怪我とそれに伴い出勤が困難になりそうだという人事関連の申告があった際のログテキストを処理してみます。- 2 つの Regex フィルタリングの設定 で、それぞれ指定するパターンに合致するものを EMPLOYEE_ID と BUSINESS_UNIT というカスタムエンティティとして秘匿化します。
- INJURY については、怪我の状態情報は保険請求等の事務手続きに重要なため秘匿化せず閲覧したいというシナリオとします。
- この例での
textはリストですが、一連の口頭でのやり取りとなっており、リスト間に関連があるためlink_batchをtrueに設定しています。 - 連番を付けない MARKER を指定しています。
Redacted Text
合成エンティティの生成 (Beta)
MARKER、トークン、MASK 文字による秘匿化の他に、Limina では偽の合成語を生成し秘匿化を行うことができます。機械学習ベースのアプローチにより、周辺テキストから現実的な合成語を生成します。以下の利点が考えられます。- 全く新しい合成語を生成するようなシステムと異なり、 Limina では元の語句と同等の合成語を生成します。これにより元の文脈などを損なう率を低くし、例えばセンチメント分析等に悪影響を与えない運用が期待できます。
- PII 検出のマーケットリーダー である一方で、検出成功率 100% を実現することは困難です。合成語生成を組み合わせることにより、復号化の試みを防ぐより強固な PII 保護を実現することができます。
- 合成語生成により、自然なアウトプットを期待できるため、ワークフローの先の機械学習システム等への予期しない影響を低減することが可能です。
processed_text パラメータに SYNTHETIC を指定します。(現在テキスト処理のみベータ版として対応)