電子カルテの匿名加工についてchatGPTをどう活用できるか検討した
以前、キャピタルメディカ様よりデータをご提供いただき、電子カルテのデータ解析を行いました。
医師所見や看護師所見は、決まったフォーマットで書かれていないため、統計的な解析が非常に難しいです。せっかく患者さんのデータがあっても、統計解析をして、この患者さんにはこの治療の効果があったといったような解析ができません。
そこで、医師所見、看護師所見の自然言語のデータに対して、以下のような処理を行なって、文章の整理・タグ付け・患者さんごとの特徴解析を行いました。
1.データ前処理
2.正規表現(辞書)によるフラグ付与
3.医師所見を抽象化して、「肉体的苦痛」がどの時点で起こっているか人間が確認。人間と同じ作業を機械学習モデルに予測させてみた
4.ワードクラウドによる患者さんごとの特徴解析
このように処理をしていくことで、統計的に解析することが難しいデータからも示唆を出すことが出来ます。
電子カルテのデータから示唆を出すことができれば、新薬を開発する重要データや治療方針の正当性のチェックなど様々な価値が創出できます。
ただし、電子カルテのデータは要配慮個人情報という個人情報の中でもさらに扱いを慎重にする必要があります。こういったデータを第三者に提供するには、データを匿名加工する必要があります。
この匿名化をするというのは、実はかなり工数がかかります。
匿名という定義も実は難しく・・・
そもそも匿名の反対になる、個人情報とは
特定の個人を識別することができるものが個人情報であり、
個人を特定することができるものが個人情報というわけではないのです。
例えば、名前は、個人を特定することはできるかもしれませんが、同姓同名の方がいるかもしれないので、特定の個人を識別することはできない、という場合、名前は個人情報ではないのです。
名前と住所と生年月日、これらの情報で個人を識別することができる時、この3つを個人情報と呼びます。
では、データに対して、どこまでマスクをかければ個人情報でなくなるのか・・・・
例えば以下のような個人情報のデータがあったとします。
Aさん | 男性 | 東京都港区1-1-1 | 23歳 |
---|---|---|---|
Bさん | 男性 | 東京都港区1-1-2 | 51歳 |
Cさん | 男性 | 東京都港区1-1-3 | 57歳 |
Dさん | 男性 | 東京都港区1-1-4 | 27歳 |
Eさん | 女性 | 東京都港区1-1-5 | 17歳 |
Fさん | 女性 | 東京都港区1-1-6 | 37歳 |
Gさん | 女性 | 東京都港区1-1-7 | 31歳 |
これを匿名化するために住所情報を区までに落とし、年齢を年代に直しました。
Aさん | 男性 | 東京都港区 | 20代 |
---|---|---|---|
Bさん | 男性 | 東京都港区 | 50代 |
Cさん | 男性 | 東京都港区 | 50代 |
Dさん | 男性 | 東京都港区 | 20代 |
Eさん | 女性 | 東京都港区 | 10代 |
Fさん | 女性 | 東京都港区 | 30代 |
Gさん | 女性 | 東京都港区 | 30代 |
匿名化とは、特定の個人を識別することが出来ないように個人情報を加工して得られる個人に関する情報であって、当該個人情報を復元することが出来ないようにしたものです。
これではEさんはこのデータベース上唯一の10代です。
唯一のデータということは元のデータベースにいって照合すれば復元することが可能なため、この状態では匿名性がない、と考えます。
そのため、Eさんのデータを消去すれば、このデータは匿名加工された、と言えることが出来ます。
このようにデータを匿名化する、と言っても、加工の方法・検証の方法など、工数がかかります。
そこで、これらの匿名化作業をchatGPTにお任せすることができれば、楽になると考えました。
以下のプロンプトを作成しました。
文章中の名前を"■■ NAMEX ■■"(Xは連番)に、年齢を年代に、
住所を都道府県名+"○区"にマスキングしてください。具体的には、以下のようにマスキングします。
名前例:
北爪聖也 → ■■ NAME1 ■■
年齢例:
27歳 → 20代
住所例:
東京都港区1-1-1 → 東京都○区
以下のデータをルールに沿って、マスキングしてjson形式で返してください。
北爪聖也, 33歳, 東京都港区1-1-1
田中太郎, 42歳, 東京都中央区1-1-1
上記をプロンプトに入れると、きちんと匿名化されたjsonデータを返してくれました!
[
{
"名前": "■■ NAME1 ■■",
"年齢": "30代",
"住所": "東京都○区"
},
{
"名前": "■■ NAME2 ■■",
"年齢": "40代",
"住所": "東京都○区"
}
]
きちんと設計すれば、chatGPTを使って、データを匿名加工することが出来そうです^^
Discussion