mirror of
https://github.com/data-privacy-stack/presidio.git
synced 2026-07-31 15:20:44 -05:00
3033 lines
110 KiB
HTML
3033 lines
110 KiB
HTML
|
||
<!doctype html>
|
||
<html lang="en" class="no-js">
|
||
<head>
|
||
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
|
||
<meta name="description" content="PII anonymization for text and images.">
|
||
|
||
|
||
<meta name="author" content="Microsoft">
|
||
|
||
|
||
<link rel="canonical" href="https://microsoft.github.io/presidio/samples/python/GPT3_synth_data/">
|
||
|
||
|
||
|
||
|
||
<link rel="icon" href="../../../assets/ms_icon.png">
|
||
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.4">
|
||
|
||
|
||
|
||
<title>GPT3 synth data - Microsoft Presidio</title>
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="../../../assets/stylesheets/main.50c56a3b.min.css">
|
||
|
||
|
||
<link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="../../../assets/_mkdocstrings.css">
|
||
|
||
<link rel="stylesheet" href="../../../css/ansi-colours.css">
|
||
|
||
<link rel="stylesheet" href="../../../css/jupyter-cells.css">
|
||
|
||
<link rel="stylesheet" href="../../../css/pandas-dataframe.css">
|
||
|
||
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||
|
||
<script type="text/javascript">
|
||
(function(c,l,a,r,i,t,y){
|
||
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
|
||
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
|
||
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
|
||
})(window, document, "clarity", "script", "5pd40fk720");
|
||
</script>
|
||
|
||
|
||
|
||
</head>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue-grey" data-md-color-accent="indigo">
|
||
|
||
|
||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
||
<label class="md-overlay" for="__drawer"></label>
|
||
<div data-md-component="skip">
|
||
|
||
|
||
<a href="#use-presidio-gpt-3-to-turn-real-text-into-fake-text" class="md-skip">
|
||
Skip to content
|
||
</a>
|
||
|
||
</div>
|
||
<div data-md-component="announce">
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<header class="md-header md-header--shadow" data-md-component="header">
|
||
<nav class="md-header__inner md-grid" aria-label="Header">
|
||
<a href="../../.." title="Microsoft Presidio" class="md-header__button md-logo" aria-label="Microsoft Presidio" data-md-component="logo">
|
||
|
||
<img src="../../../assets/ms_icon.png" alt="logo">
|
||
|
||
</a>
|
||
<label class="md-header__button md-icon" for="__drawer">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
|
||
</label>
|
||
<div class="md-header__title" data-md-component="header-title">
|
||
<div class="md-header__ellipsis">
|
||
<div class="md-header__topic">
|
||
<span class="md-ellipsis">
|
||
Microsoft Presidio
|
||
</span>
|
||
</div>
|
||
<div class="md-header__topic" data-md-component="header-topic">
|
||
<span class="md-ellipsis">
|
||
|
||
GPT3 synth data
|
||
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<label class="md-header__button md-icon" for="__search">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||
</label>
|
||
<div class="md-search" data-md-component="search" role="dialog">
|
||
<label class="md-search__overlay" for="__search"></label>
|
||
<div class="md-search__inner" role="search">
|
||
<form class="md-search__form" name="search">
|
||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
||
<label class="md-search__icon md-icon" for="__search">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
||
</label>
|
||
<nav class="md-search__options" aria-label="Search">
|
||
|
||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||
</button>
|
||
</nav>
|
||
|
||
</form>
|
||
<div class="md-search__output">
|
||
<div class="md-search__scrollwrap" data-md-scrollfix>
|
||
<div class="md-search-result" data-md-component="search-result">
|
||
<div class="md-search-result__meta">
|
||
Initializing search
|
||
</div>
|
||
<ol class="md-search-result__list" role="presentation"></ol>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="md-header__source">
|
||
<a href="https://github.com/microsoft/presidio/" title="Go to repository" class="md-source" data-md-component="source">
|
||
<div class="md-source__icon md-icon">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
|
||
</div>
|
||
<div class="md-source__repository">
|
||
GitHub
|
||
</div>
|
||
</a>
|
||
</div>
|
||
|
||
</nav>
|
||
|
||
</header>
|
||
|
||
<div class="md-container" data-md-component="container">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<main class="md-main" data-md-component="main">
|
||
<div class="md-main__inner md-grid">
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
||
<div class="md-sidebar__scrollwrap">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
|
||
|
||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
||
<label class="md-nav__title" for="__drawer">
|
||
<a href="../../.." title="Microsoft Presidio" class="md-nav__button md-logo" aria-label="Microsoft Presidio" data-md-component="logo">
|
||
|
||
<img src="../../../assets/ms_icon.png" alt="logo">
|
||
|
||
</a>
|
||
Microsoft Presidio
|
||
</label>
|
||
|
||
<div class="md-nav__source">
|
||
<a href="https://github.com/microsoft/presidio/" title="Go to repository" class="md-source" data-md-component="source">
|
||
<div class="md-source__icon md-icon">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
|
||
</div>
|
||
<div class="md-source__repository">
|
||
GitHub
|
||
</div>
|
||
</a>
|
||
</div>
|
||
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../.." class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Home
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../installation/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Installation
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../getting_started/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Quickstart
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Handling text
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_4">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Handling text
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../text_anonymization/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Home
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Step by step tutorial
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_4_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Step by step tutorial
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Home
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/00_getting_started/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Getting started
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/01_deny_list/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Deny-list recognizers
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/02_regex/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Regex recognizers
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/03_rule_based/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Rule-based recognizers
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/05_languages/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Additional models/languages
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/04_external_services/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
External services
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/06_context/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Context enhancement
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/07_decision_process/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Decision process
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/08_no_code/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
No-code recognizers
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/09_ad_hoc/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Ad-hoc recognizers
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/10_simple_anonymization/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Simple anonymization
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/11_custom_anonymization/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Custom anonymization
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/12_encryption/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Encryption/Decryption
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../tutorial/13_allow_list/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Allow-lists
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_4_3" id="__nav_4_3_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Presidio Analyzer
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_3_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_4_3">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Presidio Analyzer
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../analyzer/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Home
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3_2" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_4_3_2" id="__nav_4_3_2_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Developing PII recognizers
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_3_2_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_4_3_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Developing PII recognizers
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../analyzer/adding_recognizers/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Tutorial
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../analyzer/developing_recognizers/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Best practices in developing recognizers
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../analyzer/languages/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Multi-language support
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3_4" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_4_3_4" id="__nav_4_3_4_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Customizing the NLP model
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_3_4_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_4_3_4">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Customizing the NLP model
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../analyzer/customizing_nlp_models/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Home
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../analyzer/nlp_engines/spacy_stanza/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Spacy/Stanza
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../analyzer/nlp_engines/transformers/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Transformers
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../analyzer/decision_process/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Tracing the decision process
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Presidio Anonymizer
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_4_4">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Presidio Anonymizer
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../anonymizer/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Home
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../anonymizer/adding_operators/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Developing PII operators
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Handling images
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_5">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Handling images
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../image-redactor/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Home
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../image-redactor/evaluating_dicom_redaction/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Evaluating DICOM redaction
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Samples
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
General
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_7">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
General
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../supported_entities/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Supported entities
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_2" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_7_2" id="__nav_7_2_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Development and design
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_2_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_7_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Development and design
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../design/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Design
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../development/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Setting up a development environment
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../build_release/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Build and release process
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../presidio_V2/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Changes from V1 to V2
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_2_5" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_7_2_5" id="__nav_7_2_5_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Python API reference
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_7_2_5_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_7_2_5">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Python API reference
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../api/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Home
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../api/analyzer_python/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Presidio Analyzer Python API
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../api/anonymizer_python/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Presidio Anonymizer Python API
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../api/image_redactor_python/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Presidio Image Redactor Python API
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://microsoft.github.io/presidio/api-docs/api-docs.html" target="_blank" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
REST API reference
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../community/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Community
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../faq/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
FAQ
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://huggingface.co/spaces/presidio/presidio_demo" target="_blank" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Demo
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
||
<div class="md-sidebar__scrollwrap">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__title" for="__toc">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Table of contents
|
||
</label>
|
||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#imports-and-set-up-openai-key" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Imports and set up OpenAI Key
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#define-request-for-the-openai-completion-service" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Define request for the OpenAI Completion service
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#de-identify-data-using-presidio-analyzer-and-anonymizer" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
De-identify data using Presidio Analyzer and Anonymizer
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#create-prompt-instructions-text-to-manipulate" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Create prompt (instructions + text to manipulate)
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#call-gpt-3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Call GPT-3
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="Call GPT-3">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#alternatively-run-on-a-list-of-template-sentences" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Alternatively, run on a list of template sentences:
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-content" data-md-component="content">
|
||
<article class="md-content__inner md-typeset">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
||
<script>
|
||
(function() {
|
||
function addWidgetsRenderer() {
|
||
var requireJsScript = document.createElement('script');
|
||
requireJsScript.src = 'https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js';
|
||
|
||
var mimeElement = document.querySelector('script[type="application/vnd.jupyter.widget-view+json"]');
|
||
var jupyterWidgetsScript = document.createElement('script');
|
||
var widgetRendererSrc = 'https://unpkg.com/@jupyter-widgets/html-manager@*/dist/embed-amd.js';
|
||
var widgetState;
|
||
|
||
// Fallback for older version:
|
||
try {
|
||
widgetState = mimeElement && JSON.parse(mimeElement.innerHTML);
|
||
|
||
if (widgetState && (widgetState.version_major < 2 || !widgetState.version_major)) {
|
||
widgetRendererSrc = 'jupyter-js-widgets@*/dist/embed.js';
|
||
}
|
||
} catch(e) {}
|
||
|
||
jupyterWidgetsScript.src = widgetRendererSrc;
|
||
|
||
document.body.appendChild(requireJsScript);
|
||
document.body.appendChild(jupyterWidgetsScript);
|
||
}
|
||
|
||
document.addEventListener('DOMContentLoaded', addWidgetsRenderer);
|
||
}());
|
||
</script>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="c1"># download presidio</span>
|
||
<span class="err">!</span><span class="n">pip</span> <span class="n">install</span> <span class="n">presidio_analyzer</span> <span class="n">presidio_anonymizer</span>
|
||
<span class="err">!</span><span class="n">pip</span> <span class="n">install</span> <span class="n">openai</span> <span class="n">pandas</span>
|
||
<span class="err">!</span><span class="n">python</span> <span class="o">-</span><span class="n">m</span> <span class="n">spacy</span> <span class="n">download</span> <span class="n">en_core_web_lg</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing text_cell rendered">
|
||
<div class="inner_cell">
|
||
<div class="text_cell_render border-box-sizing rendered_html">
|
||
<p>Path to notebook: <a href="https://www.github.com/microsoft/presidio/blob/main/docs/samples/python/GPT3_synth_data.ipynb">https://www.github.com/microsoft/presidio/blob/main/docs/samples/python/GPT3_synth_data.ipynb</a></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing text_cell rendered">
|
||
<div class="inner_cell">
|
||
<div class="text_cell_render border-box-sizing rendered_html">
|
||
<h1 id="use-presidio-gpt-3-to-turn-real-text-into-fake-text">Use Presidio + GPT-3 to turn real text into fake text</h1>
|
||
<p>This notebook uses Presidio to turn text with PII into text where PII entities are replaced with placeholders, e.g. "<code>My name is David</code>" turns into "<code>My name is {{PERSON}}</code>". Then, it calls the OpenAI GPT-3 API to create a fake record which is based on the original one.</p>
|
||
<p>Flow:
|
||
1. <code>My friend David lives in Paris. He likes it.</code>
|
||
1. <code>My friend {{PERSON}} lives in {{CITY}}. He likes it.</code>
|
||
1. <code>My friend Lucy lives in Beirut. She likes it.</code></p>
|
||
<p>Note that OpenAI completion models could possibly detect PII values and replace them in one call, but it is suggested to validate that all PII entities are indeed detected.</p>
|
||
<h2 id="imports-and-set-up-openai-key">Imports and set up OpenAI Key</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">pprint</span>
|
||
<span class="kn">from</span> <span class="nn">dotenv</span> <span class="kn">import</span> <span class="n">load_dotenv</span>
|
||
<span class="kn">import</span> <span class="nn">os</span>
|
||
<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
|
||
<span class="kn">import</span> <span class="nn">openai</span>
|
||
|
||
<span class="n">load_dotenv</span><span class="p">()</span>
|
||
|
||
<span class="n">openai</span><span class="o">.</span><span class="n">api_key</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">"OPENAI_KEY"</span><span class="p">)</span> <span class="c1">#Or put explicitly in notebook. Find out more here: https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing text_cell rendered">
|
||
<div class="inner_cell">
|
||
<div class="text_cell_render border-box-sizing rendered_html">
|
||
<h2 id="define-request-for-the-openai-completion-service">Define request for the OpenAI Completion service</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">call_completion_model</span><span class="p">(</span><span class="n">prompt</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span><span class="nb">str</span><span class="o">=</span><span class="s2">"text-davinci-003"</span><span class="p">,</span> <span class="n">max_tokens</span><span class="p">:</span><span class="nb">int</span><span class="o">=</span><span class="mi">512</span><span class="p">)</span> <span class="o">-&</span><span class="n">gt</span><span class="p">;</span><span class="nb">str</span><span class="p">:</span>
|
||
<span class="w"> </span><span class="sd">"""Creates a request for the OpenAI Completion service and returns the response.</span>
|
||
|
||
<span class="sd"> :param prompt: The prompt for the completion model</span>
|
||
<span class="sd"> :param model: OpenAI model name</span>
|
||
<span class="sd"> :param max_tokens: Model's max tokens parameter</span>
|
||
<span class="sd"> """</span>
|
||
|
||
<span class="n">response</span> <span class="o">=</span> <span class="n">openai</span><span class="o">.</span><span class="n">Completion</span><span class="o">.</span><span class="n">create</span><span class="p">(</span>
|
||
<span class="n">model</span><span class="o">=</span><span class="n">model</span><span class="p">,</span>
|
||
<span class="n">prompt</span><span class="o">=</span> <span class="n">prompt</span><span class="p">,</span>
|
||
<span class="n">max_tokens</span><span class="o">=</span><span class="n">max_tokens</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="k">return</span> <span class="n">response</span><span class="p">[</span><span class="s1">'choices'</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing text_cell rendered">
|
||
<div class="inner_cell">
|
||
<div class="text_cell_render border-box-sizing rendered_html">
|
||
<h2 id="de-identify-data-using-presidio-analyzer-and-anonymizer">De-identify data using Presidio Analyzer and Anonymizer</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">presidio_analyzer</span> <span class="kn">import</span> <span class="n">AnalyzerEngine</span>
|
||
<span class="kn">from</span> <span class="nn">presidio_anonymizer</span> <span class="kn">import</span> <span class="n">AnonymizerEngine</span>
|
||
|
||
<span class="n">analyzer</span> <span class="o">=</span> <span class="n">AnalyzerEngine</span><span class="p">()</span>
|
||
<span class="n">anonymizer</span> <span class="o">=</span> <span class="n">AnonymizerEngine</span><span class="p">()</span>
|
||
|
||
<span class="n">sample</span> <span class="o">=</span> <span class="s2">"""</span>
|
||
<span class="s2">Hello, my name is David Johnson and I live in Maine.</span>
|
||
<span class="s2">My credit card number is 4095-2609-9393-4932 and my crypto wallet id is 16Yeky6GMjeNkAiNcBY7ZhrLoMSgg1BoyZ.</span>
|
||
|
||
<span class="s2">On September 18 I visited microsoft.com and sent an email to test@presidio.site, from the IP 192.168.0.1.</span>
|
||
|
||
<span class="s2">My passport: 191280342 and my phone number: (212) 555-1234.</span>
|
||
|
||
<span class="s2">This is a valid International Bank Account Number: IL150120690000003111111 . Can you please check the status on bank account 954567876544?</span>
|
||
|
||
<span class="s2">Kate's social security number is 078-05-1126. Her driver license? it is 1234567A.</span>
|
||
<span class="s2">"""</span>
|
||
|
||
<span class="n">results</span> <span class="o">=</span> <span class="n">analyzer</span><span class="o">.</span><span class="n">analyze</span><span class="p">(</span><span class="n">sample</span><span class="p">,</span> <span class="n">language</span><span class="o">=</span><span class="s2">"en"</span><span class="p">)</span>
|
||
<span class="n">anonymized</span> <span class="o">=</span> <span class="n">anonymizer</span><span class="o">.</span><span class="n">anonymize</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="n">sample</span><span class="p">,</span> <span class="n">analyzer_results</span><span class="o">=</span><span class="n">results</span><span class="p">)</span>
|
||
<span class="n">anonymized_text</span> <span class="o">=</span> <span class="n">anonymized</span><span class="o">.</span><span class="n">text</span>
|
||
<span class="nb">print</span><span class="p">(</span><span class="n">anonymized_text</span><span class="p">)</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
<div class="output_wrapper">
|
||
<div class="output">
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>
|
||
Hello, my name is <PERSON> and I live in <LOCATION>.
|
||
My credit card number is <CREDIT_CARD> and my crypto wallet id is <CRYPTO>.
|
||
|
||
On <DATE_TIME> I visited <URL> and sent an email to <EMAIL_ADDRESS>, from the IP <IP_ADDRESS>.
|
||
|
||
My passport: <US_PASSPORT> and my phone number: <PHONE_NUMBER>.
|
||
|
||
This is a valid International Bank Account Number: <IBAN_CODE> . Can you please check the status on bank account <US_BANK_NUMBER>?
|
||
|
||
<PERSON>'s social security number is <US_SSN>. Her driver license? it is <US_DRIVER_LICENSE>.
|
||
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing text_cell rendered">
|
||
<div class="inner_cell">
|
||
<div class="text_cell_render border-box-sizing rendered_html">
|
||
<h2 id="create-prompt-instructions-text-to-manipulate">Create prompt (instructions + text to manipulate)</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">create_prompt</span><span class="p">(</span><span class="n">anonymized_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&</span><span class="n">gt</span><span class="p">;</span> <span class="nb">str</span><span class="p">:</span>
|
||
<span class="w"> </span><span class="sd">"""</span>
|
||
<span class="sd"> Create the prompt with instructions to GPT-3.</span>
|
||
|
||
<span class="sd"> :param anonymized_text: Text with placeholders instead of PII values, e.g. My name is <person>.</span>
|
||
<span class="sd"> """</span>
|
||
|
||
<span class="n">prompt</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"""</span>
|
||
<span class="s2"> Your role is to create synthetic text based on de-identified text with placeholders instead of personally identifiable information.</span>
|
||
<span class="s2"> Replace the placeholders (e.g. , , </span><span class="se">{{</span><span class="s2">DATE</span><span class="se">}}</span><span class="s2">, </span><span class="se">{{</span><span class="s2">ip_address</span><span class="se">}}</span><span class="s2">) with fake values.</span>
|
||
|
||
<span class="s2"> Instructions:</span>
|
||
|
||
<span class="s2"> Use completely random numbers, so every digit is drawn between 0 and 9.</span>
|
||
<span class="s2"> Use realistic names that come from diverse genders, ethnicities and countries.</span>
|
||
<span class="s2"> If there are no placeholders, return the text as is and provide an answer.</span>
|
||
<span class="s2"> input: How do I change the limit on my credit card </span><span class="se">{{</span><span class="s2">credit_card_number</span><span class="se">}}</span><span class="s2">?</span>
|
||
<span class="s2"> output: How do I change the limit on my credit card 2539 3519 2345 1555?</span>
|
||
<span class="s2"> input: </span><span class="si">{</span><span class="n">anonymized_text</span><span class="si">}</span>
|
||
<span class="s2"> output:</span>
|
||
<span class="s2"> """</span>
|
||
<span class="k">return</span> <span class="n">prompt</span>
|
||
</code></pre></div>
|
||
|
||
</person></div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="s2">"This is the prompt with de-identified values:"</span><span class="p">)</span>
|
||
<span class="nb">print</span><span class="p">(</span><span class="n">create_prompt</span><span class="p">(</span><span class="n">anonymized_text</span><span class="p">))</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
<div class="output_wrapper">
|
||
<div class="output">
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>This is the prompt with de-identified values:
|
||
|
||
Your role is to create synthetic text based on de-identified text with placeholders instead of personally identifiable information.
|
||
Replace the placeholders (e.g. , , {DATE}, {ip_address}) with fake values.
|
||
|
||
Instructions:
|
||
|
||
Use completely random numbers, so every digit is drawn between 0 and 9.
|
||
Use realistic names that come from diverse genders, ethnicities and countries.
|
||
If there are no placeholders, return the text as is and provide an answer.
|
||
If there is any additional PII/PHI in the sentence, replace it too.
|
||
|
||
input: How do I change the limit on my credit card {credit_card_number}?
|
||
output: How do I change the limit on my credit card 2539 3519 2345 1555?
|
||
input:
|
||
Hello, my name is <PERSON> and I live in <LOCATION>.
|
||
My credit card number is <CREDIT_CARD> and my crypto wallet id is <CRYPTO>.
|
||
|
||
On <DATE_TIME> I visited <URL> and sent an email to <EMAIL_ADDRESS>, from the IP <IP_ADDRESS>.
|
||
|
||
My passport: <US_PASSPORT> and my phone number: <PHONE_NUMBER>.
|
||
|
||
This is a valid International Bank Account Number: <IBAN_CODE> . Can you please check the status on bank account <US_BANK_NUMBER>?
|
||
|
||
<PERSON>'s social security number is <US_SSN>. Her driver license? it is <US_DRIVER_LICENSE>.
|
||
|
||
output:
|
||
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing text_cell rendered">
|
||
<div class="inner_cell">
|
||
<div class="text_cell_render border-box-sizing rendered_html">
|
||
<h2 id="call-gpt-3">Call GPT-3</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="n">gpt_res</span> <span class="o">=</span> <span class="n">call_completion_model</span><span class="p">(</span><span class="n">create_prompt</span><span class="p">(</span><span class="n">anonymized_text</span><span class="p">))</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">gpt_res</span><span class="p">)</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
<div class="output_wrapper">
|
||
<div class="output">
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code> Hello, my name is Kalyn Carranza and I live in Kenya.
|
||
My credit card number is 9871 8047 5709 9872 and my crypto wallet id is FV7POW12.
|
||
|
||
On 12th August 2021, 12:31pm I visited http://www.example.com and sent an email to vrystrkbnb@example.com, from the IP 109.98.184.102.
|
||
|
||
My passport: 975-56-3481 and my phone number: 501-678-2198.
|
||
|
||
This is a valid International Bank Account Number: GB89 CPFX 4256 1763 8810 31 . Can you please check the status on bank account 855-31-6381?
|
||
|
||
Kalyn Carranza's social security number is 270-10-8543. Her driver license? it is 1183 2066 152 66.
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing text_cell rendered">
|
||
<div class="inner_cell">
|
||
<div class="text_cell_render border-box-sizing rendered_html">
|
||
<h3 id="alternatively-run-on-a-list-of-template-sentences">Alternatively, run on a list of template sentences:</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">urllib</span>
|
||
|
||
<span class="n">templates</span> <span class="o">=</span> <span class="p">[]</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s2">"https://raw.githubusercontent.com/microsoft/presidio-research/master/presidio_evaluator/data_generator/raw_data/templates.txt"</span>
|
||
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="n">url</span><span class="p">):</span>
|
||
<span class="n">templates</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">'utf-8'</span><span class="p">))</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="s2">"Example templates:"</span><span class="p">)</span>
|
||
<span class="n">templates</span><span class="p">[:</span><span class="mi">5</span><span class="p">]</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
<div class="output_wrapper">
|
||
<div class="output">
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>Example templates:
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="output_area">
|
||
<div class="output_text output_subarea output_execute_result">
|
||
<pre>
|
||
<code>['I want to increase limit on my card # {{credit_card_number}} for certain duration of time. is it possible?\n',
|
||
'My credit card {{credit_card_number}} has been lost, Can I request you to block it.\n',
|
||
'Need to change billing date of my card {{credit_card_number}}\n',
|
||
'I want to update my primary and secondary address to the same: {{address}}\n',
|
||
"In case of my child's account, we need to add {{person}} as guardian\n"]</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing code_cell rendered">
|
||
<div class="input">
|
||
|
||
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">time</span>
|
||
<span class="n">pp</span> <span class="o">=</span> <span class="n">pprint</span><span class="o">.</span><span class="n">PrettyPrinter</span><span class="p">(</span><span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">110</span><span class="p">)</span>
|
||
<span class="n">sentences</span> <span class="o">=</span> <span class="p">[]</span>
|
||
<span class="k">for</span> <span class="n">template</span> <span class="ow">in</span> <span class="n">templates</span><span class="p">:</span>
|
||
<span class="n">synth_sentence</span> <span class="o">=</span> <span class="n">call_completion_model</span><span class="p">(</span><span class="n">create_prompt</span><span class="p">(</span><span class="n">template</span><span class="p">))</span>
|
||
<span class="n">sentence_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"original"</span><span class="p">:</span> <span class="n">template</span><span class="p">,</span> <span class="s2">"synthetic"</span><span class="p">:</span><span class="n">synth_sentence</span><span class="o">.</span><span class="n">strip</span><span class="p">()}</span>
|
||
<span class="n">sentences</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sentence_dict</span><span class="p">)</span>
|
||
<span class="n">pp</span><span class="o">.</span><span class="n">pprint</span><span class="p">(</span><span class="n">sentence_dict</span><span class="p">)</span>
|
||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="c1"># wait to not get blocked by service (only applicable for the free tier)</span>
|
||
<span class="nb">print</span><span class="p">(</span><span class="s2">"--------------"</span><span class="p">)</span>
|
||
</code></pre></div>
|
||
|
||
</div>
|
||
<div class="output_wrapper">
|
||
<div class="output">
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>{ 'original': 'I want to increase limit on my card # {{credit_card_number}} for certain duration of time. is '
|
||
'it possible?\n',
|
||
'synthetic': 'I want to increase limit on my card # 2539 3519 2345 1555 for certain duration of time. Is '
|
||
'it possible?'}
|
||
--------------
|
||
{ 'original': 'My credit card {{credit_card_number}} has been lost, Can I request you to block it.\n',
|
||
'synthetic': 'My credit card 2539 3519 2345 1555 has been lost, Can I request you to block it.'}
|
||
--------------
|
||
{ 'original': 'Need to change billing date of my card {{credit_card_number}}\n',
|
||
'synthetic': 'Need to change billing date of my card 2539 3519 2345 1555?'}
|
||
--------------
|
||
{ 'original': 'I want to update my primary and secondary address to the same: {{address}}\n',
|
||
'synthetic': 'I want to update my primary and secondary address to the same: 3241 Tulip Lane, London, NW9 '
|
||
'5RX.'}
|
||
--------------
|
||
{ 'original': "In case of my child's account, we need to add {{person}} as guardian\n",
|
||
'synthetic': "In case of my child's account, we need to add Abigail Jones as guardian."}
|
||
--------------
|
||
{ 'original': 'Are there any charges applied for money transfer from {{iban}} to other bank accounts\n',
|
||
'synthetic': 'Are there any charges applied for money transfer from GB55TRRX92363841637179 to other bank '
|
||
'accounts?'}
|
||
--------------
|
||
{ 'original': 'Are there any charges applied to withdraw money from ATM with the card '
|
||
'{{credit_card_number}}\n',
|
||
'synthetic': 'Are there any charges applied to withdraw money from ATM with the card 2539 3519 2345 1555?'}
|
||
--------------
|
||
{ 'original': 'Not getting bank documents to my address. Can you please validate the following? '
|
||
'{{address}}\n',
|
||
'synthetic': 'Not getting bank documents to my address. Can you please validate the following? 943 Elm '
|
||
'Street, Fort Wayne, IN 46825.'}
|
||
--------------
|
||
{ 'original': 'Please update the billing address with {{address}} for this card: {{credit_card_number}}\n',
|
||
'synthetic': 'Please update the billing address with 3989 Elm Street, San Francisco, CA 94103 for this '
|
||
'card: 2539 3519 2345 1555.'}
|
||
--------------
|
||
{ 'original': 'Need to see last 10 transaction of card {{credit_card_number}}\n',
|
||
'synthetic': 'Need to see last 10 transactions of card 2539 3519 2345 1555'}
|
||
--------------
|
||
{ 'original': 'I have lost my card {{credit_card_number}}. Could you please block my credit card ASAP ? My '
|
||
'name is {{person}}.\n',
|
||
'synthetic': 'I have lost my card 2539 3519 2345 1555. Could you please block my credit card ASAP ? My '
|
||
'name is John Smith.'}
|
||
--------------
|
||
{ 'original': "My card {{credit_card_number}} is expiring this month. Please let me know process to it's "
|
||
'extend validity.\n',
|
||
'synthetic': "My card 2539 3519 2345 1555 is expiring this month. Please let me know process to it's "
|
||
'extend validity.'}
|
||
--------------
|
||
{ 'original': "I have done an online order but didn't get any message on my registered {{phone_number}}. "
|
||
'Could you please look into it ?\n',
|
||
'synthetic': "I have done an online order but didn't get any message on my registered (502) 183-3752. "
|
||
'Could you please look into it?'}
|
||
--------------
|
||
{ 'original': 'What is procedure to redeem points won on credit card {{credit_card_number}} transactions ?\n',
|
||
'synthetic': 'What is procedure to redeem points won on credit card 2539 3519 2345 1555 transactions?'}
|
||
--------------
|
||
{ 'original': 'My card {{credit_card_number}} expires soon <20> when will I get a new one?\n',
|
||
'synthetic': 'My card 2539 3519 2345 1555 expires soon <20> when will I get a new one?'}
|
||
--------------
|
||
{ 'original': 'How do I check my balance on my credit card?\n',
|
||
'synthetic': 'How do I check my balance on my credit card?'}
|
||
--------------
|
||
{ 'original': 'Could I change the payment due date of my credit card?\n',
|
||
'synthetic': 'Could I change the payment due date of my credit card?'}
|
||
--------------
|
||
{ 'original': 'How can I request a new credit card pin ?\n',
|
||
'synthetic': 'How can I request a new credit card pin?'}
|
||
--------------
|
||
{ 'original': 'Can I withdraw cash using my card {{credit_card_number}} at aTM center ?\n',
|
||
'synthetic': 'Can I withdraw cash using my card 2539 3519 2345 1555 at ATM center?'}
|
||
--------------
|
||
{ 'original': 'How do I change the address linked to my credit card to {{address}}?\n',
|
||
'synthetic': 'How do I change the address linked to my credit card to 1325 Valley View Rd, Yelm, WA 98597?'}
|
||
--------------
|
||
{ 'original': 'How do I open my credit card statement?\n',
|
||
'synthetic': 'How do I open my credit card statement?'}
|
||
--------------
|
||
{'original': "I'm originally from {{country}}\n", 'synthetic': "I'm originally from Canada."}
|
||
--------------
|
||
{ 'original': 'I will be travelling to {{country}} next week, so I need my passport to be ready by then\n',
|
||
'synthetic': 'I will be travelling to Mexico next week, so I need my passport to be ready by then.'}
|
||
--------------
|
||
{'original': "Who's coming to {{country}} with me?\n", 'synthetic': "Who's coming to Mexico with me?"}
|
||
--------------
|
||
{'original': '{{country}} was super fun to visit!\n', 'synthetic': 'France was super fun to visit!'}
|
||
--------------
|
||
{ 'original': 'Could you please email me the statement for last month , my credit card number is '
|
||
'{{credit_card_number}}?\n',
|
||
'synthetic': 'Could you please email me the statement for last month, my credit card number is 2539 3519 '
|
||
'2345 1555?'}
|
||
--------------
|
||
{ 'original': 'Could you please send me the last billed amount for cc {{credit_card_number}} on my e-mail '
|
||
'{{email}}?\n',
|
||
'synthetic': 'Could you please send me the last billed amount for cc 2539 3519 2345 1555 on my email '
|
||
'sue.perkins@example.com?'}
|
||
--------------
|
||
{ 'original': 'How do I change my address to {{address}} for post mail?\n',
|
||
'synthetic': 'How do I change my address to 2514 Golden Street, San Diego, CA 90203 for post mail?'}
|
||
--------------
|
||
{ 'original': 'My name appears incorrectly on credit card statement could you please correct it to '
|
||
'{{prefix_male}} {{name_male}}?\n',
|
||
'synthetic': 'My name appears incorrectly on credit card statement could you please correct it to Mr. '
|
||
'Gregor?'}
|
||
--------------
|
||
{ 'original': 'My name appears incorrectly on credit card statement could you please correct it to '
|
||
'{{prefix_female}} {{name_female}}?\n',
|
||
'synthetic': 'My name appears incorrectly on credit card statement could you please correct it to Ms. '
|
||
'Emma?'}
|
||
--------------
|
||
{ 'original': 'card number {{credit_card_number}} is lost, can you please send a new one to {{address}}? I '
|
||
'am in {{city}} for a business trip\n',
|
||
'synthetic': 'card number 2539 3519 2345 1555 is lost, can you please send a new one to 16 Meadow Lane, '
|
||
'Hicksville, NY 11801? I am in New York City for a business trip.'}
|
||
--------------
|
||
{ 'original': "Please transfer all funds from my account to this hackers' {{email}}\n",
|
||
'synthetic': "Please transfer all funds from my account to this hackers' mitchellejess@gmail.com"}
|
||
--------------
|
||
{ 'original': "I can't browse to your site, keep getting address {{ip_address}} blocked error\n",
|
||
'synthetic': "I can't browse to your site, keep getting address 135.238.125.181 blocked error."}
|
||
--------------
|
||
{ 'original': 'My religion does not allow speaking to bots, they are evil and hacked by the Devil\n',
|
||
'synthetic': 'My religion does not allow speaking to bots, they are evil and hacked by the Devil'}
|
||
--------------
|
||
{ 'original': "Excuse me, Sir bot, but I really don't like this tone\n",
|
||
'synthetic': "Excuse me, Sir bot, but I really don't like this tone"}
|
||
--------------
|
||
{ 'original': "WHAT ??? I DON'T KNOW WHAT TO PRESS NEXT!!! ? !! ?!\n",
|
||
'synthetic': "WHAT ??? I DON'T KNOW WHAT TO PRESS NEXT!!! ? !! ?!"}
|
||
--------------
|
||
{ 'original': "Please have the manager call me at {{phone_number}} I'd like to join accounts with ms. "
|
||
'{{first_name}}\n',
|
||
'synthetic': "Please have the manager call me at 443-214-5568 I'd like to join accounts with ms. Tanya."}
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>--------------
|
||
{ 'original': 'Inject SELECT * FROM Users WHERE client_ip = ?%//!%20\\|{{ip_address}}|%20/\n',
|
||
'synthetic': 'Inject SELECT * FROM Users WHERE client_ip = 192.162.94.21'}
|
||
--------------
|
||
{ 'original': '{{first_name}}, can I please speak to your boss?\n',
|
||
'synthetic': 'Abigail, can I please speak to your boss?'}
|
||
--------------
|
||
{ 'original': 'May I request to have the statement sent to {{address}}?\n',
|
||
'synthetic': 'May I request to have the statement sent to 14 Maple Street, Chicago, IL 60647?'}
|
||
--------------
|
||
{ 'original': "Will my account stay active? It's under my partner's name {{person}}\n",
|
||
'synthetic': "Will my account stay active? It's under my partner's name John Smith."}
|
||
--------------
|
||
{'original': 'What are my options?\n', 'synthetic': 'What are my options?'}
|
||
--------------
|
||
{ 'original': 'Bot: Where would you like this to be sent to? User: {{address}}\n',
|
||
'synthetic': 'Bot: Where would you like this to be sent to? User: 369 Center Street, New York, NY 10018'}
|
||
--------------
|
||
{ 'original': "Bot: What's the name on the account? User: {{person}}\n",
|
||
'synthetic': "Bot: What's the name on the account? User: John Smith"}
|
||
--------------
|
||
{ 'original': 'I would like to stop receiving messages to {{phone_number}}\n',
|
||
'synthetic': 'I would like to stop receiving messages to 714-572-8764.'}
|
||
--------------
|
||
{'original': 'CAN I SPEAK TO A REAL PERSON?!?!\n', 'synthetic': 'CAN I SPEAK TO A REAL PERSON?!?!'}
|
||
--------------
|
||
{ 'original': "I'll meet you at {{address}} after the concert.\n",
|
||
'synthetic': "I'll meet you at 4465 West Street after the concert."}
|
||
--------------
|
||
{ 'original': 'I would like to remove my kid {{first_name}} from the will. How do I do that?\n',
|
||
'synthetic': 'I would like to remove my kid Sarah from the will. How do I do that?'}
|
||
--------------
|
||
{ 'original': 'The name in the account is not correct, please change it to {{person}}\n',
|
||
'synthetic': 'The name in the account is not correct, please change it to Mary Smith.'}
|
||
--------------
|
||
{ 'original': 'Hello I moved, please update my new address is {{address}}\n',
|
||
'synthetic': 'Hello I moved, please update my new address is 14 Benson Street, Dolton, Illinois, 60419.'}
|
||
--------------
|
||
{ 'original': 'I need to add my addresses, here they are: {{address}}, and {{address}}\n',
|
||
'synthetic': 'I need to add my addresses, here they are: 4284 Taloncourt Road, Lake Travis, TX 76884, and '
|
||
'12 Needle Street, Lawrenceburg, IN 47025.'}
|
||
--------------
|
||
{ 'original': 'Please send my portfolio to this email {{email}}\n',
|
||
'synthetic': 'Please send my portfolio to this email johnsmith@example.com'}
|
||
--------------
|
||
{ 'original': 'Hello, this is {{prefix_male}} {{name_male}}. Who are you?\n',
|
||
'synthetic': 'Hello, this is Mr. Jackson. Who are you?'}
|
||
--------------
|
||
{ 'original': 'I want to add {{person}} as a beneficiary to my account\n',
|
||
'synthetic': 'I want to add Mary Smith as a beneficiary to my account.'}
|
||
--------------
|
||
{ 'original': 'I want to cancel my card {{credit_card_number}} because I lost it\n',
|
||
'synthetic': 'I want to cancel my card 2539 3519 2345 1555 because I lost it'}
|
||
--------------
|
||
{ 'original': 'Please block card no {{credit_card_number}}\n',
|
||
'synthetic': 'Please block card no 2539 3519 2345 1555'}
|
||
--------------
|
||
{ 'original': 'What is the limit for card {{credit_card_number}}?\n',
|
||
'synthetic': 'What is the limit for card 2539 3519 2345 1555?'}
|
||
--------------
|
||
{ 'original': 'Can someone call me on {{phone_number}}? I have some questions about opening an account.\n',
|
||
'synthetic': 'Can someone call me on 639-243-7534? I have some questions about opening an account.'}
|
||
--------------
|
||
{'original': 'My name is {{first_name}}\n', 'synthetic': 'My name is Olivia.'}
|
||
--------------
|
||
{ 'original': "I'm moving out of the country, so please cancel my subscription\n",
|
||
'synthetic': "I'm moving out of the country, so please cancel my subscription."}
|
||
--------------
|
||
{ 'original': 'My name is {{person}} but everyone calls me {{first_name}}\n',
|
||
'synthetic': 'My name is Zara Smith but everyone calls me Zara.'}
|
||
--------------
|
||
{ 'original': "Please tell me your date of birth. It's {{date_of_birth}}\n",
|
||
'synthetic': "Please tell me your date of birth. It's May 18th 1996."}
|
||
--------------
|
||
{ 'original': 'You said your email is {{email}}. Is that correct?\n',
|
||
'synthetic': 'You said your email is jane.doe99@example.com. Is that correct?'}
|
||
--------------
|
||
{ 'original': 'I once lived in {{address}}. I now live in {{address}}\n',
|
||
'synthetic': 'I once lived in 189 Maple Street. I now live in 45 McLeod Avenue.'}
|
||
--------------
|
||
{ 'original': "I'd like to call a taxi to {{address}}. Please call me when you're here.\n",
|
||
'synthetic': "I'd like to call a taxi to 125 Washington Street. Please call me when you're here."}
|
||
--------------
|
||
{ 'original': 'Please charge my credit card. Number is {{credit_card_number}}\n',
|
||
'synthetic': 'Please charge my credit card. Number is 9147 3623 4882 7568.'}
|
||
--------------
|
||
{'original': "What's your email? {{email}}\n", 'synthetic': "What's your email? janet.smith@example.com"}
|
||
--------------
|
||
{ 'original': "What's your credit card? {{credit_card_number}}\n",
|
||
'synthetic': "What's your credit card? 6527 4235 1093 1522?"}
|
||
--------------
|
||
{'original': "What's your name? {{person}}\n", 'synthetic': "What's your name? Ibrahim Karim"}
|
||
--------------
|
||
{'original': "What's your last name? {{last_name}}\n", 'synthetic': "What's your last name? Lopez"}
|
||
--------------
|
||
{ 'original': 'How can we reach you? You can call {{phone_number}}\n',
|
||
'synthetic': 'How can we reach you? You can call 029 7783 8252.'}
|
||
--------------
|
||
{ 'original': "I'd like it to be sent to {{address}}\n",
|
||
'synthetic': "I'd like it to be sent to 1234 Smith Street, Chicago, IL 60616."}
|
||
--------------
|
||
{'original': 'Meet me at {{address}}\n', 'synthetic': 'Meet me at 328 Anderson Street, Boston, MA 02109.'}
|
||
--------------
|
||
{ 'original': 'The restaurant is located at {{address}}. It serves great {{nationality}} food.\n',
|
||
'synthetic': 'The restaurant is located at 1214 W. Main Ave. It serves great Italian food.'}
|
||
--------------
|
||
{ 'original': "So where are we meeting? There's this nice new {{nationality}} place downtown. Cool, what's "
|
||
"the address? Oh do they serve vegan stuff? It's in {{address}}\n",
|
||
'synthetic': "So where are we meeting? There's this nice new Mexican place downtown. Cool, what's the "
|
||
"address? Oh do they serve vegan stuff? It's in 9083 Holcomb Street."}
|
||
--------------
|
||
{ 'original': "Hi {{first_name}}, I'm contacting you about a problem I have with sending a wire transfer "
|
||
'using this IBAN {{iban}}\n',
|
||
'synthetic': "Hi Kim, I'm contacting you about a problem I have with sending a wire transfer using this "
|
||
'IBAN DE56 8123 6888 0139 8956 61.'}
|
||
--------------
|
||
{ 'original': 'She was born on {{date_of_birth}}. Her maiden name is {{last_name}}\n',
|
||
'synthetic': 'She was born on 02/15/1965. Her maiden name is Garcia.'}
|
||
--------------
|
||
{'original': 'Sometimes people call me {{first_name}}\n', 'synthetic': 'Sometimes people call me Evan'}
|
||
--------------
|
||
{'original': "Maybe it's under {{person}}\n", 'synthetic': "Maybe it's under Malik Robinson"}
|
||
--------------
|
||
{'original': "It's like that since {{date_of_birth}}\n", 'synthetic': "It's like that since 06/14/1988"}
|
||
--------------
|
||
{ 'original': 'Just posted a photo {{url}}\n',
|
||
'synthetic': 'Just posted a photo http://www.example.com/q3jx1zgca2.'}
|
||
--------------
|
||
{'original': 'My website is {{url}}\n', 'synthetic': 'My website is www.synthetictestwebsite.com'}
|
||
--------------
|
||
{'original': 'My IBAN is {{iban}}\n', 'synthetic': 'My IBAN is FR14 2004 1010 0505 0001 3M02 606.'}
|
||
--------------
|
||
{ 'original': "I've shared files with you {{url}}\n",
|
||
'synthetic': "I've shared files with you https://www.myfilesharing.com/agfsosid90"}
|
||
--------------
|
||
{'original': 'I work for {{organization}}\n', 'synthetic': 'I work for CorporationX.'}
|
||
--------------
|
||
{ 'original': '{{person}} from {{organization}} is the keynote speaker\n',
|
||
'synthetic': 'John Smith from Harvard University is the keynote speaker.'}
|
||
--------------
|
||
{'original': '{{first_name}} is from {{organization}}\n', 'synthetic': 'Maxwell is from Acme Corporation.'}
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>--------------
|
||
{ 'original': 'The address of {{organization}} is {{address}}\n',
|
||
'synthetic': 'The address of Acme Corporation is 1020 Grand Avenue, Los Angeles, CA 90015.'}
|
||
--------------
|
||
{ 'original': 'His social security number is {{ssn}}\n',
|
||
'synthetic': 'His social security number is 271-97-6469.'}
|
||
--------------
|
||
{'original': "Here's my SSN: {{ssn}}\n", 'synthetic': "Here's my SSN: 697-18-3566"}
|
||
--------------
|
||
{ 'original': '{{first_name_nonbinary}} is a very sympathetic person. They are also good listeners.\n',
|
||
'synthetic': 'Piper is a very sympathetic person. They are also good listeners.'}
|
||
--------------
|
||
{ 'original': '{{first_name}} is very reliable. You can always depend on him.\n',
|
||
'synthetic': 'Fred is very reliable. You can always depend on him.'}
|
||
--------------
|
||
{'original': 'Why is {{first_name}} so impulsive?\n', 'synthetic': 'Why is Daniella so impulsive?'}
|
||
--------------
|
||
{ 'original': '{{person}} will be talking in the conference\n',
|
||
'synthetic': 'Sally Smith will be talking in the conference.'}
|
||
--------------
|
||
{'original': 'have you heard {{person}} speak yet?\n', 'synthetic': 'Have you heard Keira Emerson speak yet?'}
|
||
--------------
|
||
{ 'original': 'Have you been to a {{person}} concert before?\n',
|
||
'synthetic': 'Have you been to a John Smith concert before?'}
|
||
--------------
|
||
{ 'original': "I'm so jealous! said {{first_name}} to {{first_name}}\n",
|
||
'synthetic': "I'm so jealous! said Veronika to Trevor."}
|
||
--------------
|
||
{ 'original': 'The true gender of {{first_name}} has been under debate for years, but the riff and building '
|
||
'energy is a rock masterpiece regardless.\n',
|
||
'synthetic': 'The true gender of Miguel has been under debate for years, but the riff and building energy '
|
||
'is a rock masterpiece regardless.'}
|
||
--------------
|
||
{ 'original': 'For my take on {{prefix_female}} {{last_name_female}}, see Guilty Pleasures: 5 Musicians Of '
|
||
"The 70s You're Supposed To Hate (But Secretly Love)\n",
|
||
'synthetic': "For my take on Mrs. Miller, see Guilty Pleasures: 5 Musicians Of The 70s You're Supposed To "
|
||
'Hate (But Secretly Love)'}
|
||
--------------
|
||
{ 'original': "Unlike the {{last_name}} novel, it's not about necrophilia. What it is about, I suppose is "
|
||
"anyone's guess. A brilliant piece of baroque pop.\n",
|
||
'synthetic': "Unlike the Smith novel, it's not about necrophilia. What it is about, I suppose is anyone's "
|
||
'guess. A brilliant piece of baroque pop.'}
|
||
--------------
|
||
{ 'original': "One of the most depressing songs on the list. He's injured from the waist down from "
|
||
"{{country}}, but {{first_name}} just has to get laid. Don't go to town, {{first_name}}!\n",
|
||
'synthetic': "One of the most depressing songs on the list. He's injured from the waist down from Uganda, "
|
||
"but Stacey just has to get laid. Don't go to town, Stacey!"}
|
||
--------------
|
||
{ 'original': 'Is there a better crafted pop song on this list? {{last_name}} and {{last_name}} were '
|
||
'precision engineers.\n',
|
||
'synthetic': 'Is there a better crafted pop song on this list? Smith and Jones were precision engineers.'}
|
||
--------------
|
||
{ 'original': 'C\'mon, sing it with me: "You picked a fine time to leave me {{first_name}}, four hungry '
|
||
'children and a crop in the field..."\n',
|
||
'synthetic': 'C\'mon, sing it with me: "You picked a fine time to leave me Lucas, four hungry children and '
|
||
'a crop in the field..."'}
|
||
--------------
|
||
{ 'original': "A tribute to {{person}} – sadly, she wasn't impressed.\n",
|
||
'synthetic': "A tribute to Paula Harris – sadly, she wasn't impressed."}
|
||
--------------
|
||
{ 'original': "When they weren't singing about Hobbits, satanic felines and interstellar journeys, they were "
|
||
"singing about the verses from {{person}}'s Cautionary Tales. Is there a better example of "
|
||
'unbridled creativity than early {{last_name}}?\n',
|
||
'synthetic': "When they weren't singing about Hobbits, satanic felines and interstellar journeys, they "
|
||
"were singing about the verses from Sally Smith's Cautionary Tales. Is there a better example "
|
||
"of unbridled creativity than early Jones'?"}
|
||
--------------
|
||
{ 'original': 'A great song made even greater by a mandolin coda (not by {{person}}).\n',
|
||
'synthetic': 'A great song made even greater by a mandolin coda (not by Justin Bieber).'}
|
||
--------------
|
||
{ 'original': '{{name_male}} listed his top 20 songs for Entertainment Weekly and had the balls to list this '
|
||
'song at #15. (What did he put at #1 you ask? Answer:"Tube Snake Boogie" by {{person}} – go '
|
||
'figure)\n',
|
||
'synthetic': 'John listed his top 20 songs for Entertainment Weekly and had the balls to list this song at '
|
||
'#15. (What did he put at #1 you ask? Answer:"Tube Snake Boogie" by ZZ Top – go figure)'}
|
||
--------------
|
||
{ 'original': "From the film {{nationality}} graffiti (also features {{person}}. What's not to love?\n",
|
||
'synthetic': "From the film Canadian graffiti (also features Zakari Rigori. What's not to love?"}
|
||
--------------
|
||
{ 'original': 'You can tell {{first_name}} was a huge {{person}} fan. Written when he was {{age}}.\n',
|
||
'synthetic': 'You can tell Isabella was a huge basketball fan. Written when she was 19.'}
|
||
--------------
|
||
{ 'original': "This song by ex-Zombie {{last_name}} is a perfect example of why you shouldn't concentrate on "
|
||
'the order of this list. An argument could be made that this should be at number one, and I '
|
||
"wouldn't argue with it.\n",
|
||
'synthetic': "This song by ex-Zombie Williams is a perfect example of why you shouldn't concentrate on the "
|
||
'order of this list. An argument could be made that this should be at number one, and I '
|
||
"wouldn't argue with it."}
|
||
--------------
|
||
{ 'original': 'The title refers to {{street_name}} street in {{city}}. It was on this street that many of '
|
||
'the clubs where Metallica first played were situated. "Battery is found in me" shows that '
|
||
'these early shows on {{street_name}} Street were important to them. Battery is where "lunacy '
|
||
'finds you" and you "smash through the boundaries."\n',
|
||
'synthetic': 'The title refers to Washington Street in Chicago. It was on this street that many of the '
|
||
'clubs where Metallica first played were situated. "Battery is found in me" shows that these '
|
||
'early shows on Washington Street were important to them. Battery is where "lunacy finds you" '
|
||
'and you "smash through the boundaries."'}
|
||
--------------
|
||
{ 'original': 'Blink-182 pay tribute here to the {{country}}. Producer {{person}} explained to Fuse TV: "We '
|
||
"all liked the idea of writing a song about our state, where we live and love. To me it's the "
|
||
'most beautiful place in the world, this song was us giving credit to how lucky we are to have '
|
||
'lived here and grown up here, raising families here, the whole thing."\n',
|
||
'synthetic': 'Blink-182 pay tribute here to the United States. Producer Kim Johnson explained to Fuse TV: '
|
||
'"We all liked the idea of writing a song about our state, where we live and love. To me '
|
||
"it's the most beautiful place in the world, this song was us giving credit to how lucky we "
|
||
'are to have lived here and grown up here, raising families here, the whole thing."'}
|
||
--------------
|
||
{ 'original': 'It may be too that {{last_name}} was influenced by an earlier song, "Carry Me Back To '
|
||
'{{country}}," which was arranged and sung by {{person}} in {{year}} (though {{last_name}}\'s '
|
||
'song was actually about a boat!).\n',
|
||
'synthetic': 'It may be too that Jenkins was influenced by an earlier song, "Carry Me Back To Trinidad," '
|
||
"which was arranged and sung by Mark Twain in 1901 (though Jenkins's song was actually about "
|
||
'a boat!).'}
|
||
--------------
|
||
{ 'original': 'The {{person}} version recorded for {{organization}} became the first celebrity recording by '
|
||
'a classical musician to sell one million copies. The song was awarded the seventh gold disc '
|
||
'ever granted.\n',
|
||
'synthetic': 'The Helen Smith version recorded for Universal Music Group became the first celebrity '
|
||
'recording by a classical musician to sell one million copies. The song was awarded the '
|
||
'seventh gold disc ever granted.'}
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>--------------
|
||
{ 'original': 'In {{country}} they have company songs, musical expressions of employee loyalty sung by '
|
||
'salarymen. Unfortunately, as regular RR commenter {{person}} points out, "most are '
|
||
'horrible".\n',
|
||
'synthetic': 'In Japan they have company songs, musical expressions of employee loyalty sung by salarymen. '
|
||
'Unfortunately, as regular RR commenter Hannah Jackson points out, "most are horrible".'}
|
||
--------------
|
||
{ 'original': '"The big three" of The Big Three Killed My Baby are the car manufacturers that dominate the '
|
||
"economy of the White Stripes' home city {{city}}: {{organization}}, {{organization}} and "
|
||
'{{organization}}. "Don\'t feed me planned obsolescence," says {{person}} in an '
|
||
'uncharacteristically political song, lamenting the demise of the unions in the 60s.\n',
|
||
'synthetic': '"The big three" of The Big Three Killed My Baby are the car manufacturers that dominate the '
|
||
'economy of the White Stripes\' home city Detroit: Ford, General Motors and Chrysler. "Don\'t '
|
||
'feed me planned obsolescence," says Thomas Johnson in an uncharacteristically political '
|
||
'song, lamenting the demise of the unions in the 60s.'}
|
||
--------------
|
||
{ 'original': '{{organization}} songwriter {{name_female}} employs corporate lingo in the first verse of her '
|
||
'{{organization}} resignation Letter\n',
|
||
'synthetic': 'Acme Corporation songwriter Hannah Smith employs corporate lingo in the first verse of her '
|
||
'Acme Corporation resignation Letter.'}
|
||
--------------
|
||
{ 'original': 'Mission Statement: This non-profit founded by radio executives "serves as an advocate for the '
|
||
'value of music" and "supports its songwriters, composers and publishers by taking care of an '
|
||
'important aspect of their careers – getting paid," according to the {{organization}} website. '
|
||
'They offer blanket music licenses to businesses and organizations that allow them to play '
|
||
'nearly 13 million musical works.\n',
|
||
'synthetic': 'Mission Statement: This non-profit founded by radio executives "serves as an advocate for '
|
||
'the value of music" and "supports its songwriters, composers and publishers by taking care '
|
||
'of an important aspect of their careers – getting paid," according to the Music Alliance '
|
||
'website. They offer blanket music licenses to businesses and organizations that allow them '
|
||
'to play nearly 13 million musical works.'}
|
||
--------------
|
||
{ 'original': 'The {{organization}} Orchestra was founded in {{year}}. Since then, it has grown from a '
|
||
'volunteer community orchestra to a fully professional orchestra serving Southern '
|
||
'{{country}}\n',
|
||
'synthetic': 'The Chaz Symphony Orchestra was founded in 2015. Since then, it has grown from a volunteer '
|
||
'community orchestra to a fully professional orchestra serving Southern France.'}
|
||
--------------
|
||
{ 'original': 'Celebrating its 10th year in {{city}}, {{organization}} is a 501(c)3 that invites songwriters '
|
||
'from around the world to {{city}} to share the universal language of music in collaborations '
|
||
'designed to bridge cultures, build friendships and cultivate peace.\n',
|
||
'synthetic': 'Celebrating its 10th year in Honolulu, Artslana is a 501(c)3 that invites songwriters from '
|
||
'around the world to Honolulu to share the universal language of music in collaborations '
|
||
'designed to bridge cultures, build friendships and cultivate peace.'}
|
||
--------------
|
||
{ 'original': '{{organization}} is the brainchild of our 3 founders: {{last_name}}, {{last_name}} and '
|
||
'{{last_name}}. The idea was born (on the beach) while they were constructing a website to be '
|
||
'the basis of another start-up idea.\n',
|
||
'synthetic': 'Acme Co. is the brainchild of our 3 founders: Smith, Nguyen and Takahashi. The idea was born '
|
||
'(on the beach) while they were constructing a website to be the basis of another start-up '
|
||
'idea.'}
|
||
--------------
|
||
{ 'original': '{{organization}} is an {{nationality}} multinational investment bank and financial services '
|
||
'company\n',
|
||
'synthetic': 'Goldman Sachs is an American multinational investment bank and financial services company.'}
|
||
--------------
|
||
{ 'original': 'Zoolander is a {{year}} {{nationality}} action-comedy film directed by {{person}} and '
|
||
'starring {{last_name}}\n',
|
||
'synthetic': 'Zoolander is a 2001 American action-comedy film directed by Ben Stiller and starring '
|
||
'Stiller.'}
|
||
--------------
|
||
{ 'original': 'During {{year}}, {{organization}} invested heavily in new microprocessor designs fostering '
|
||
'the rapid growth of the computer industry.\n',
|
||
'synthetic': 'During 2019, Acme Technologies invested heavily in new microprocessor designs fostering the '
|
||
'rapid growth of the computer industry.'}
|
||
--------------
|
||
{ 'original': 'On {{date_time}}, the {{nationality}} government formally began the process of withdrawal by '
|
||
'invoking Article 50 of the Treaty on European Union\n',
|
||
'synthetic': 'On June 23rd, 2020, the British government formally began the process of withdrawal by '
|
||
'invoking Article 50 of the Treaty on European Union.'}
|
||
--------------
|
||
{ 'original': '{{first_name}} shouted at {{first_name}}: "What are you doing here?"\n',
|
||
'synthetic': 'Shadeed shouted at Latonya: "What are you doing here?"'}
|
||
--------------
|
||
{ 'original': '{{first_name}} spent a year at {{organization}} as the assistant to {{person}}, and the '
|
||
'following year at {{organization}} in {{city}}, which later became {{organization}} in '
|
||
'{{year}}.\n',
|
||
'synthetic': 'Nina spent a year at Kingsley Academy as the assistant to Dean Roberts, and the following '
|
||
'year at Brighty Design in San Francisco, which later became Thompkins Designs in 2005.'}
|
||
--------------
|
||
{ 'original': '{{last_name}} began writing as a teenager, publishing her first story, "The Dimensions of a '
|
||
'Shadow", in {{year}} while studying English and journalism at the University of {{city}}.\n',
|
||
'synthetic': 'Smith began writing as a teenager, publishing her first story, "The Dimensions of a Shadow", '
|
||
'in 1994 while studying English and journalism at the University of Chicago.'}
|
||
--------------
|
||
{ 'original': "My driver's license number is {{us_driver_license}}\n",
|
||
'synthetic': "My driver's license number is VFJ600DN5051EA1N"}
|
||
--------------
|
||
{ 'original': '{{person}}\\n\\n{{building_number}} {{street_name}}\\n {{secondary_address}}\\n {{city}}\\n '
|
||
'{{country}} {{postcode}}\n',
|
||
'synthetic': 'John Smith \n123 Main Street \nApartment 6 \nNew York City \nUSA 12254'}
|
||
--------------
|
||
{ 'original': '{{person}}\\n\\n{{building_number}} {{street_name}}\\n {{secondary_address}}\\n '
|
||
'{{city}}\\n\\n {{country}} {{postcode}}\n',
|
||
'synthetic': 'John Smith\n 843 Easton Street\n Suite 3\n Hamden\n \nUnited States 12345'}
|
||
--------------
|
||
{ 'original': '{{prefix_female}} {{name_female}} {{secondary_address}} {{building_number}} '
|
||
'{{street_name}}\\n{{city}} {{state_abbr}} {{zipcode}}\n',
|
||
'synthetic': 'Ms. Allison Grobman Apt 12 975 Hamilton Street\\\\New York NY 11111'}
|
||
--------------
|
||
{ 'original': '{{building_number}} {{street_name}}\\n {{secondary_address}}\\n {{city}}\\n {{country}} '
|
||
'{{postcode}}\n',
|
||
'synthetic': '456 Maple Street\\n Apt 5D\\n San Francisco \\n USA 94110'}
|
||
--------------
|
||
{ 'original': 'The corner of {street_name} and {street_name}\n',
|
||
'synthetic': 'The corner of Johnson Street and Monroe Avenue'}
|
||
--------------
|
||
{ 'original': 'The restaurant is at {{building_number}} {{street_name}}\n',
|
||
'synthetic': 'The restaurant is at 1243 Willow Street.'}
|
||
--------------
|
||
{'original': 'My friend lives in {{city}}\n', 'synthetic': 'My friend lives in Cairo.'}
|
||
--------------
|
||
{ 'original': '{{first_name}} lives on {{street_name}} street.\n',
|
||
'synthetic': 'Maria lives on Liberty Street.'}
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>--------------
|
||
{ 'original': '{{name}} lives at {{building_number}} {{street_name}}, {{city}}\n',
|
||
'synthetic': 'John Smith lives at 635 Poplar Street, Houston'}
|
||
--------------
|
||
{ 'original': '{{first_name_male}} had given {{first_name}} his address: {{building_number}} '
|
||
'{{street_name}}\n',
|
||
'synthetic': 'Adam had given Sarah his address: 44 Apple Street'}
|
||
--------------
|
||
{ 'original': '{{first_name_male}} had given {{first_name}} his address: {{building_number}} '
|
||
'{{street_name}}, {{city}}\n',
|
||
'synthetic': 'David had given Emma his address: 515 Elm Street, Camden.'}
|
||
--------------
|
||
{ 'original': 'What is your address? it is {{address}}\n',
|
||
'synthetic': 'What is your address? it is 3498 Allensby Street, Los Angeles, CA 90011.'}
|
||
--------------
|
||
{'original': 'We moved here from {{city}}\n', 'synthetic': 'We moved here from Paris.'}
|
||
--------------
|
||
{'original': 'We moved here from {{country}}\n', 'synthetic': 'We moved here from Venezuela.'}
|
||
--------------
|
||
{ 'original': '{{person}}\\n\\n{{building_number}} {{street_name}}\\n {{secondary_address}}\\n {{city}}\\n '
|
||
'{{country}} {{postcode}}\\n{{phone_number}}-Office\\,{{phone_number}}-Fax\n',
|
||
'synthetic': 'Jessica Thompson\n'
|
||
' 8745 West Drive\n'
|
||
' Suite 1402\n'
|
||
' Brooklyn, NY USA 12009\n'
|
||
' 789-534-9921-Office, 567-945-0023-Fax'}
|
||
--------------
|
||
{ 'original': '{{person}}\\n{{job}}\\n{{organization}}\\n{{address}}\n',
|
||
'synthetic': 'John Smith\\nAccountant\\nGlobalTech Solutions\\n25 Speedwell Street, Richmond, VA 23223'}
|
||
--------------
|
||
{ 'original': 'Our offices are located at {{address}}\n',
|
||
'synthetic': 'Our offices are located at 1234 Main St, Los Angeles, CA 91234.'}
|
||
--------------
|
||
{ 'original': 'Please return to {{address}} in case of an issue.\n',
|
||
'synthetic': 'Please return to 123 Cherry Street, El Monte, CA 91731 in case of an issue.'}
|
||
--------------
|
||
{ 'original': '{{organization}}\\n\\n{{address}}\n',
|
||
'synthetic': 'ABC Inc.\n 1234 Main Street, Anytown, ST 12345'}
|
||
--------------
|
||
{ 'original': 'The {{organization}} office is at {{address}}\n',
|
||
'synthetic': 'The ABC Corporation office is at 123 Redwood Street, Anytown, USA.'}
|
||
--------------
|
||
{ 'original': '{{name}}\\n{{organization}}\\n{{address}}\\n{{phone_number}} office\\n{{phone_number}} '
|
||
'fax\\n{{phone_number}} mobile\\n\n',
|
||
'synthetic': 'Larry Fernandez\\nStar Enterprises\\n421 5th Avenue, Los Angeles, CA 90012\\n123-456-7890 '
|
||
'office\\n456-789-0123 fax\\n256-454-2397 mobile\\n'}
|
||
--------------
|
||
{ 'original': '{{name}}\\n{{organization}}\\n{{address}}\\nMobile: {{phone_number}}\\nDesk: '
|
||
'{{phone_number}}\\nFax: {{phone_number}}\\n\n',
|
||
'synthetic': 'John Brown\n'
|
||
' ABC Consulting\n'
|
||
' 5th St., Suite 116, LA CA 90004\n'
|
||
' Mobile: 213-294-4497\n'
|
||
' Desk: 424-348-1275\n'
|
||
' Fax: 323-456-2545'}
|
||
--------------
|
||
{ 'original': 'Billing address: {{name}}\\n {{building_number}} {{street_name}} '
|
||
'{{secondary_address}}\\n {{city}}\\n {{state_abbr}}\\n {{zipcode}}\\n\n',
|
||
'synthetic': 'Billing address: Mariam Rajput\n'
|
||
' 576 Broadway Street Apartment A8\n'
|
||
' Sacramento\n'
|
||
' CA\n'
|
||
' 95349'}
|
||
--------------
|
||
{ 'original': "As promised, here's {{first_name}}'s address:\\n\\n{{address}}\n",
|
||
'synthetic': "As promised, here's Aamir's address:\\n\\n2166 Sesame Street, Fortaleza, Ceará, Brazil."}
|
||
--------------
|
||
{ 'original': '>{{name}}\\n>{{organization}}\\n>{{person}}\\n>{{building_number}} '
|
||
'{{street_name}}\\n>{{secondary_address}}\\n>{{city}}\\n>{{country}} {{postcode}}\n',
|
||
'synthetic': '>Freda Chen\n'
|
||
'>Example Inc.\n'
|
||
'>John Doe\n'
|
||
'>50 Main Street\n'
|
||
'>Apt. 2\n'
|
||
'>New York\n'
|
||
'>United States 10005'}
|
||
--------------
|
||
{ 'original': '??? {{name}}\\n??? {{organization}}\\n??? {{building_number}} {{street_name}}\\n??? '
|
||
'{{secondary_address}}\\n??? {{city}}\\n??? {{country}} {{postcode}}\n',
|
||
'synthetic': 'John Smith\n'
|
||
' ABC Corporation\n'
|
||
' 192 Main Street\n'
|
||
' Suite 100\n'
|
||
' Austin\n'
|
||
' United States 78701'}
|
||
--------------
|
||
{ 'original': '> \\n> {{name}}\\n> {{organization}}\\n> {{person}}\\n> {{building_number}} '
|
||
'{{street_name}}\\n> {{secondary_address}}\\n> {{city}}\\n> {{country}} {{postcode}}\n',
|
||
'synthetic': '> John Doe\n'
|
||
' > ABC Corp\n'
|
||
' > Jane Smith\n'
|
||
' > 123 Main Street\n'
|
||
' > APT 8\n'
|
||
' > San Francisco\n'
|
||
' > United States 12345'}
|
||
--------------
|
||
{ 'original': 'Pedestrians must enter on {{street_name}} St. the first three months\n',
|
||
'synthetic': 'Pedestrians must enter on Jericho Avenue St. the first three months'}
|
||
--------------
|
||
{ 'original': 'When: {{date_time}}\\nWhere: {{city}} Country Club.\n',
|
||
'synthetic': 'When: 05/01/2020 10:00am\\nWhere: Richmond Country Club.'}
|
||
--------------
|
||
{ 'original': "We'll meet {{day_of_week}} at {{organization}}, {{building_number}} {{street_name}}, "
|
||
'{{city}}\n',
|
||
'synthetic': "We'll meet Monday at Smartdel Solutions, 145 King Street, San Diego."}
|
||
--------------
|
||
{ 'original': 'They had 6: {{first_name}}, {{first_name}}, {{first_name}}, {{first_name}}, {{first_name}} '
|
||
'and {{first_name}}.\n',
|
||
'synthetic': 'They had 6: Sarah, Micheal, Kanak, Hana, Mei and Dan.'}
|
||
--------------
|
||
{'original': 'She moved here from {{country}}\n', 'synthetic': 'She moved here from Mexico.'}
|
||
--------------
|
||
{'original': 'My zip code is {{zipcode}}\n', 'synthetic': 'My zip code is 47713.'}
|
||
--------------
|
||
{'original': 'ZIP: {{zipcode}}\n', 'synthetic': 'ZIP: 08547'}
|
||
--------------
|
||
{'original': 'The bus station is on {{street_name}}\n', 'synthetic': 'The bus station is on Wilson Avenue.'}
|
||
--------------
|
||
{ 'original': "They're not answering at {{phone_number}}\n",
|
||
'synthetic': "They're not answering at 654-339-1013."}
|
||
--------------
|
||
{ 'original': 'God gave rock and roll to you, gave rock and roll to you, put it in the soul of everyone.\n',
|
||
'synthetic': 'God gave rock and roll to you, gave rock and roll to you, put it in the soul of everyone.'}
|
||
--------------
|
||
{'original': '3... 2... 1... liftoff!\n', 'synthetic': '3... 2... 1... liftoff!'}
|
||
--------------
|
||
{ 'original': 'My great great grandfather was called {{name_male}}, and my great great grandmother was '
|
||
'called {{name_female}}\n',
|
||
'synthetic': 'My great great grandfather was called Michael, and my great great grandmother was called '
|
||
'Emma.'}
|
||
--------------
|
||
{'original': 'She named him {{first_name_male}}\n', 'synthetic': 'She named him Juan.'}
|
||
--------------
|
||
{ 'original': 'Name: {{name}}\\nAddress: {{address}}\n',
|
||
'synthetic': 'Name: Amari Walters\\nAddress: 32 Webster Street, Salem, MA 01819'}
|
||
--------------
|
||
{ 'original': 'Follow up with {{name}} in a couple of months.\n',
|
||
'synthetic': 'Follow up with Beatriz Lawrence in a couple of months.'}
|
||
--------------
|
||
{ 'original': '{{prefix_male}} {{last_name_male}} is a {{age}} year old man who grew up in {{city}}.\n',
|
||
'synthetic': 'Mr.Williams is a 28 year old man who grew up in Dallas.'}
|
||
--------------
|
||
{ 'original': 'Date: {{date_time}}\\nName: {{name}}\\nPhone: {{phone_number}}\n',
|
||
'synthetic': 'Date: 01/03/2021 13:45 \\nName: Pratima Joshi \\nPhone: 467-562-8954'}
|
||
--------------
|
||
{ 'original': '{{first_name}}: "Who are you?"\\n{{first_name_female}}:"I\'m {{first_name}}\'s daughter".\n',
|
||
'synthetic': 'Bob: "Who are you?"\\nMaria:"I\'m Bob\'s daughter".'}
|
||
--------------
|
||
{ 'original': 'At my suggestion, one morning over breakfast, she agreed, and on the last Sunday before Labor '
|
||
'Day we returned to {{city}} by helicopter.\n',
|
||
'synthetic': 'At my suggestion, one morning over breakfast, she agreed, and on the last Sunday before '
|
||
'Labor Day we returned to Paris by helicopter.'}
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>--------------
|
||
{ 'original': "It was a done thing between him and {{first_name}}'s kid; and everybody thought so.\n",
|
||
'synthetic': "It was a done thing between him and Jeffery's kid; and everybody thought so."}
|
||
--------------
|
||
{ 'original': 'Capitalized words like Wisdom and Discipline are often mistaken with names.\n',
|
||
'synthetic': 'Capitalized words like Wisdom and Discipline are often mistaken with names.'}
|
||
--------------
|
||
{ 'original': 'The letter arrived at {{address}} last night.\n',
|
||
'synthetic': 'The letter arrived at 1143 Orange Street last night.'}
|
||
--------------
|
||
{ 'original': 'The Princess Royal arrived at {{city}} this morning from {{country}}.\n',
|
||
'synthetic': 'The Princess Royal arrived at London this morning from France.'}
|
||
--------------
|
||
{'original': "I'm in {{city}}, at the conference\n", 'synthetic': "I'm in Toronto, at the conference."}
|
||
--------------
|
||
{ 'original': '{{name}}, the {{job}}, said: "I\'m glad to hear that this has been withdrawn – quite why they '
|
||
'thought this would go down well is beyond me."\n',
|
||
'synthetic': 'Gloria Green, the Nurse Practitioner, said: "I\'m glad to hear that this has been withdrawn '
|
||
'– quite why they thought this would go down well is beyond me."'}
|
||
--------------
|
||
{ 'original': '"I\'m glad to hear that {{country}} is moving in that direction," says {{last_name}}.\n',
|
||
'synthetic': '"I\'m glad to hear that Canada is moving in that direction," says Smith.'}
|
||
--------------
|
||
{ 'original': 'I am {{nation_woman}} but I live in {{country}}.\n',
|
||
'synthetic': 'I am Marianna Montenegro but I live in Ukraine.'}
|
||
--------------
|
||
{'original': 'We are proud {{nation_plural}}\n', 'synthetic': 'We are proud Americans.'}
|
||
--------------
|
||
{ 'original': "{{person}}'s killers sentenced to life in prison\n",
|
||
'synthetic': "John Smith's killers sentenced to life in prison"}
|
||
--------------
|
||
{ 'original': "{{country}} leader gives 'kill without warning' order\n",
|
||
'synthetic': "Brazilian leader gives 'kill without warning' order"}
|
||
--------------
|
||
{ 'original': 'The {{nationality}} Border Force have detained top-flight tennis player {{name_female}} over '
|
||
'visa disputes.\n',
|
||
'synthetic': 'The British Border Force have detained top-flight tennis player Maria Rodriguez over visa '
|
||
'disputes.'}
|
||
--------------
|
||
{ 'original': 'You will be responsible for the husbandry and care of a large variety of species including '
|
||
'lemurs, antelope, camels, and more\n',
|
||
'synthetic': 'You will be responsible for the husbandry and care of a large variety of species including '
|
||
'lemurs, antelope, camels, and more.'}
|
||
--------------
|
||
{ 'original': '{{name}}\\n\\n{{job}}\\n\\nPersonal '
|
||
'Info:\\nPhone:\\n{{phone_number}}\\n\\nE-mail:\\n{{email}}\\n\\nWebsite:\\n{{url}}\\n\\nAddress:\\n{{address}}.\n',
|
||
'synthetic': 'Robert James\\n\\nSoftware Engineer\\n\\nPersonal '
|
||
'Info:\\nPhone:\\n555-847-8915\\n\\nE-mail:\\nrobertjames@example.com\\n\\nWebsite:\\nwww.example.com\\n\\nAddress:\\n277 '
|
||
'Park Ave North, Denver, CO 80100.'}
|
||
--------------
|
||
{ 'original': '{{name}}\\n\\n{{city}}\\n{{country}}\n',
|
||
'synthetic': 'John Smith\n Los Angeles\n United States'}
|
||
--------------
|
||
{ 'original': 'Title VII of the Civil Rights Act of {{year}} protects individuals against employment '
|
||
'discrimination on the basis of race and color as well as national origin, sex, or religion.\n',
|
||
'synthetic': 'Title VII of the Civil Rights Act of 1964 protects individuals against employment '
|
||
'discrimination on the basis of race and color as well as national origin, sex, or religion.'}
|
||
--------------
|
||
{ 'original': 'Energetic and driven salesperson with 8+ years of professional experience in inbound and '
|
||
'outbound sales. Awarded Salesperson of the Month three times. Helped increase inbound sales '
|
||
'by 16% within the first year of employment. Looking to support {{organization}} in {{city}} '
|
||
'{{zipcode}} in its mission to become a market-leading solution.\n',
|
||
'synthetic': 'Energetic and driven salesperson with 8+ years of professional experience in inbound and '
|
||
'outbound sales. Awarded Salesperson of the Month three times. Helped increase inbound sales '
|
||
'by 16% within the first year of employment. Looking to support Acme Corporation in Los '
|
||
'Angeles 90018 in its mission to become a market-leading solution.'}
|
||
--------------
|
||
{ 'original': 'The bus drops you off at {{building_number}} {{street_name}} St.\n',
|
||
'synthetic': 'The bus drops you off at 2774 Chestnut St.'}
|
||
--------------
|
||
{ 'original': 'Ask the driver to stop at the corner of {{street_name}} St. and {{street_name}} St.\n',
|
||
'synthetic': 'Ask the driver to stop at the corner of Maple St. and Sycamore St.'}
|
||
--------------
|
||
{ 'original': 'He lives on the north side of {{street_name}}.\n',
|
||
'synthetic': 'He lives on the north side of Abbey Road.'}
|
||
--------------
|
||
{ 'original': "I used to work for {{organization}} as {{job}}, but quit a few months ago. Now I'm "
|
||
'unemployed.\n',
|
||
'synthetic': "I used to work for ABC Corporation as Software Engineer, but quit a few months ago. Now I'm "
|
||
'unemployed.'}
|
||
--------------
|
||
{'original': '{{city}} bridge is falling down.\n', 'synthetic': 'Berlin bridge is falling down.'}
|
||
--------------
|
||
{ 'original': '{{name}} of {{organization}} is the CEO of the year. ABC Business considered several other '
|
||
"influential CEOs for this year's honor, including {{name}} of {{organization}}, "
|
||
"{{organization}}'s {{name}}, {{name}} of {{organization}}'s, {{name}} of {{organization}}, "
|
||
"and {{organization}}'s {{name}}.\n",
|
||
'synthetic': 'Franklin Smith of Technology Solutions International is the CEO of the year. ABC Business '
|
||
"considered several other influential CEOs for this year's honor, including Madison Chang of "
|
||
"Radiance Digital, Radiance Digital's Ashleigh Jones, Cash Huang of Clark & Partner's, Sierra "
|
||
"Urbina of Intelicity, and Clark & Partners's Asher Kenney."}
|
||
--------------
|
||
{ 'original': '{{organization}} is a design agency based in {{city}}.\n',
|
||
'synthetic': 'Maestro Design Inc. is a design agency based in Amsterdam.'}
|
||
--------------
|
||
{ 'original': 'Action & Adventure, Animation, Comedy, Kids & Family, Mystery & Suspense\\nDirected By: '
|
||
'{{name}}\n',
|
||
'synthetic': 'Action & Adventure, Animation, Comedy, Kids & Family, Mystery & Suspense\n'
|
||
'Directed By: Esther Jones'}
|
||
--------------
|
||
{ 'original': '{{first_name}}: What a wife.\\n{{first_name}}: Remember me, {{first_name}}? When I killed '
|
||
'your brother, I talked just like this!\\n{{first_name}}: You saved my life! How can I ever '
|
||
'repay you?\n',
|
||
'synthetic': 'Emma: What a wife.\n'
|
||
' Emma: Remember me, Emma? When I killed your brother, I talked just like this!\n'
|
||
' Emma: You saved my life! How can I ever repay you?'}
|
||
--------------
|
||
{'original': 'He just turned {{age}} years old\n', 'synthetic': 'He just turned 7 years old'}
|
||
--------------
|
||
{ 'original': "I'm {{name}}, originally from {{city}}, and i'm {{age}} y/o.\n",
|
||
'synthetic': "I'm Emily Evanston, originally from London, and I'm 24 y/o."}
|
||
--------------
|
||
{ 'original': 'Patient is a {{age}}-year-old male with a history of headaches\n',
|
||
'synthetic': 'Patient is a 35-year-old male with a history of headaches'}
|
||
--------------
|
||
{'original': 'I just turned {{age}}\n', 'synthetic': 'I just turned 24.'}
|
||
--------------
|
||
{'original': 'My father retired at the age of {{age}}\n', 'synthetic': 'My father retired at the age of 60.'}
|
||
--------------
|
||
{ 'original': 'This {{age}} year old female complaining of stomach pain.\n',
|
||
'synthetic': 'This 28 year old female complaining of stomach pain.'}
|
||
--------------
|
||
{ 'original': "My birthday is on the weekend. I'll turn {{age}}.\n",
|
||
'synthetic': "My birthday is on the weekend. I'll turn 20."}
|
||
--------------
|
||
{'original': 'My brother just turned {{age}}\n', 'synthetic': 'My brother just turned 18.'}
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="output_area">
|
||
<div class="output_subarea output_stream output_stdout output_text">
|
||
<pre>
|
||
<code>--------------
|
||
{ 'original': '{{prefix}} {{last_name}} flew to {{city}} on {{day_of_week}} morning.',
|
||
'synthetic': 'Dr. Nguyen flew to Los Angeles on Tuesday morning.'}
|
||
--------------
|
||
</code>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cell border-box-sizing text_cell rendered">
|
||
<div class="inner_cell">
|
||
<div class="text_cell_render border-box-sizing rendered_html">
|
||
<p>This notebook demonstrates how to leverage OpenAI models for fake/surrogate data generation. It uses Presidio to first de-identify data (as de-identification might be required prior to passing the model to OpenAI), and then uses OpenAI completion models to create synthetic/fake/surrogate data based on real data. OpenAI models would also potentially remove additional PII entities, if those are not detected by Presidio.</p>
|
||
<p>Some impressions:
|
||
1. GPT-3 sometimes gives additonal output, especially if the text is a question or concerning a human/bot interaction. Engineering the prompt can mitigate some of these issues. Potential post-processing might be required.
|
||
2. GPT-3 sometimes creates fake values even in the absence of placeholders.
|
||
3. GPT-3 re-uses context from other sentences, which could cause phone numbers are sometimes generated using a credit card pattern or other similar mistakes.
|
||
4. Co-references are sometimes missed (i.e. two name placeholders that should be filled with the same name, or referencing he/she to a male/female name)</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</article>
|
||
</div>
|
||
|
||
|
||
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
|
||
|
||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||
</div>
|
||
|
||
</main>
|
||
|
||
<footer class="md-footer">
|
||
|
||
<div class="md-footer-meta md-typeset">
|
||
<div class="md-footer-meta__inner md-grid">
|
||
<div class="md-copyright">
|
||
|
||
|
||
Made with
|
||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
||
Material for MkDocs
|
||
</a>
|
||
|
||
</div>
|
||
|
||
<div class="md-social">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="https://github.com/microsoft/presidio" target="_blank" rel="noopener" title="github.com" class="md-social__link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
|
||
</a>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="https://hub.docker.com/_/microsoft-presidio" target="_blank" rel="noopener" title="hub.docker.com" class="md-social__link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"/></svg>
|
||
</a>
|
||
|
||
|
||
|
||
|
||
|
||
<a href="mailto:presidio@microsoft.com" target="_blank" rel="noopener" title="" class="md-social__link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4l217.6 163.2c11.4 8.5 27 8.5 38.4 0l217.6-163.2c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48H48zM0 176v208c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V176L294.4 339.2a63.9 63.9 0 0 1-76.8 0L0 176z"/></svg>
|
||
</a>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
</div>
|
||
<div class="md-dialog" data-md-component="dialog">
|
||
<div class="md-dialog__inner md-typeset"></div>
|
||
</div>
|
||
|
||
|
||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.instant", "content.tabs.link"], "search": "../../../assets/javascripts/workers/search.c011b7c0.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
||
|
||
|
||
<script src="../../../assets/javascripts/bundle.7389ff0e.min.js"></script>
|
||
|
||
|
||
</body>
|
||
</html> |