IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特表2024-521833オフセットマッピングを用いた単語分割アルゴリズム
<>
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図1
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図2
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図3
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図4
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図5A
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図5B
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図5C
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図5D
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図6
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図7
  • 特表-オフセットマッピングを用いた単語分割アルゴリズム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-04
(54)【発明の名称】オフセットマッピングを用いた単語分割アルゴリズム
(51)【国際特許分類】
   G06F 21/62 20130101AFI20240528BHJP
   G06F 16/31 20190101ALI20240528BHJP
   G06F 40/284 20200101ALI20240528BHJP
【FI】
G06F21/62 345
G06F16/31
G06F40/284
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023573274
(86)(22)【出願日】2022-05-05
(85)【翻訳文提出日】2023-11-27
(86)【国際出願番号】 IB2022000257
(87)【国際公開番号】W WO2022248933
(87)【国際公開日】2022-12-01
(31)【優先権主張番号】202141023933
(32)【優先日】2021-05-28
(33)【優先権主張国・地域又は機関】IN
(31)【優先権主張番号】17/444,347
(32)【優先日】2021-08-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】グプタ,マノージュ
(72)【発明者】
【氏名】モトラーニ,カビン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175BA01
5B175DA01
5B175KA08
(57)【要約】
命令を格納する大容量記憶デバイスに結合されたプロセッサを含むコンピュータシステムが提供され、命令は、プロセッサによって実行されると、プロセッサに、複数の文字で構成された元の文字列を格納することと、元の文字列に対して単語分割アルゴリズムを実行することと、元の文字列をトークン化して、スペースによって区切られた複数の単語トークンを含む処理後文字列を生成することとをさせる。プロセッサは、処理後文字列における単語トークン内の位置と、元の文字列における対応する位置との間のオフセットマップを生成することと、処理後文字列の一部を、対象として分類することとをするようにさらに構成される。プロセッサは、対象に対応する元の文字列における対象文字を、オフセットマップを使用して特定することと、元の文字列における対象文字に対して所定のアクションを実行することとをするようにさらに構成される。
【特許請求の範囲】
【請求項1】
命令を格納する大容量記憶デバイスに結合されたプロセッサを備えたコンピュータシステムであって、前記命令は、前記プロセッサによって実行されるとき、前記プロセッサに、
複数の文字で構成された元の文字列を格納することと、
前記元の文字列に対して単語分割アルゴリズムを実行することと、
前記元の文字列をトークン化して、スペースによって区切られた複数の単語トークンを含む処理後文字列を生成することと、
前記処理後文字列における前記単語トークン内の位置と、前記元の文字列における対応する位置との間のオフセットマップを生成することと、
前記処理後文字列の一部を、対象として分類することと、
前記対象に対応する前記元の文字列における対象文字を、前記オフセットマップを使用して特定することと、
前記元の文字列における前記対象文字に対して所定のアクションを実行することと
をさせる、コンピュータシステム。
【請求項2】
請求項1に記載のコンピュータシステムであって、前記所定のアクションを実行するために、前記プロセッサは、
前記対象文字を強調表示することと、
前記対象文字を難読化することと、
前記対象文字を抽出することと
のうちの1以上をするように構成される、コンピュータシステム。
【請求項3】
請求項1に記載のコンピュータシステムであって、前記元の文字列における前記対象文字を特定するために、前記プロセッサは、
前記対象文字の開始文字オフセットインデクス値および文字長さを特定することと、
前記対象文字の開始文字オフセットインデクス値および終了文字オフセットインデクス値を特定することと
のうちの一方または双方をするように構成される、コンピュータシステム。
【請求項4】
請求項1に記載のコンピュータシステムであって、前記元の文字列における対象文字を特定するために、前記プロセッサは、
前記処理後文字列における前記対象の開始文字オフセットインデクス値および終了文字オフセットインデクス値を決定することと、
前記処理後文字列における前記対象の前記開始文字オフセットインデクス値および終了文字オフセットインデクス値の各々のトークンインデクス値を決定することと、
前記オフセットマップの前記第1のデータ構造に格納された前記開始文字オフセットインデクス値を使用して、前記元の文字列における前記開始トークンの開始文字オフセットインデクス値を決定することと、
前記オフセットマップの前記第2のデータ構造に格納された前記終了文字オフセットインデクス値を使用して、終了トークンの終了文字オフセットインデクス値を決定することと
をするように構成される、コンピュータシステム。
【請求項5】
請求項1に記載のコンピュータシステムであって、前記対象は、所定の機密情報データタイプの機密情報である、コンピュータシステム。
【請求項6】
請求項1に記載のコンピュータシステムであって、前記元の文字列は、日本語、中国語、韓国語、またはタイ語の文字を含む、コンピュータシステム。
【請求項7】
請求項1に記載のコンピュータシステムであって、前記元の文字列は、電子文書または電子メッセージから抽出される、コンピュータシステム。
【請求項8】
請求項1に記載のコンピュータシステムであって、前記元の文字列は、前記単語分割アルゴリズムの実行後前記処理後文字列において省略される文字を含む、コンピュータシステム。
【請求項9】
請求項1に記載のコンピュータシステムであって、前記オフセットマップは、
前記単語分割アルゴリズム中に、前記元の文字列において検出された各トークン単語の、前記元の文字列における開始文字オフセットインデクス値および文字長さを格納する第1のデータ構造と、
前記処理後文字列における各トークンの終了文字オフセットインデクス値を格納する第2のデータ構造と
を含み、
前記第1および第2のデータ構造の各々は、同じ数の要素を有する、
コンピュータシステム。
【請求項10】
コンピュータ化された方法であって、
複数の文字で構成された元の文字列を格納するステップと、
前記元の文字列に対して単語分割アルゴリズムを実行するステップと、
前記元の文字列をトークン化して、スペースによって区切られた複数の単語トークンを含む処理後文字列を生成するステップと、
前記処理後文字列における前記単語トークン内の位置と、前記元の文字列における対応する位置との間のオフセットマップを生成するステップと、
前記処理後文字列の一部を、対象として分類するステップと、
前記オフセットマップを使用して、前記対象に対応する前記元の文字列における対象文字を特定するステップと、
前記元の文字列における前記対象文字に対して所定のアクションを実行するステップと
を含むコンピュータ化された方法。
【請求項11】
請求項10に記載のコンピュータ化された方法であって、所定のアクションを実行するステップは、
前記対象文字を強調表示するステップと、
前記対象文字を難読化するステップと、
前記対象文字を抽出するステップと
のうちの1以上のうちの1つまたは複数を含む、コンピュータ化された方法。
【請求項12】
請求項10に記載のコンピュータ化された方法であって、前記元の文字列における対象文字を特定するステップは、
前記対象文字の開始文字オフセットインデクス値および文字長さを特定するステップと、
前記対象文字の開始文字オフセットインデクス値および終了文字オフセットインデクス値を特定するステップと
のうちの一方または双方のうちの1つまたは複数を含む、コンピュータ化された方法。
【請求項13】
請求項10に記載のコンピュータ化された方法であって、前記元の文字列における対象文字を特定するステップは、
前記処理後文字列における前記対象の開始文字オフセットインデクス値および終了文字オフセットインデクス値を決定するステップと、
前記処理後文字列における前記対象の前記開始文字オフセットインデクス値および終了文字オフセットインデクス値の各々のトークンインデクス値を決定するステップと、
前記オフセットマップの前記第1のデータ構造に格納された前記開始文字オフセットインデクス値を使用して、前記元の文字列における前記開始トークンの開始文字オフセットインデクス値を決定するステップと、
前記オフセットマップの前記第2のデータ構造に格納された前記終了文字オフセットインデクス値を使用して、終了トークンの終了文字オフセットインデクス値を決定するステップと
によって少なくとも部分的に達成される、コンピュータ化された方法。
【請求項14】
請求項10に記載のコンピュータ化された方法であって、前記元の文字列は、電子文書または電子メッセージから抽出される、コンピュータ化された方法。
【請求項15】
請求項10に記載のコンピュータ化された方法であって、前記オフセットマップは、
前記単語分割アルゴリズム中に、前記元の文字列において検出された各トークン単語の、前記元の文字列における開始文字オフセットインデクス値および文字長さを格納する第1のデータ構造と、
前記処理後文字列における各トークンの終了文字オフセットインデクス値を格納する第2のデータ構造と
を含み、
前記第1および第2のデータ構造の各々は、同じ数の要素を有する、
コンピュータ化された方法。
【発明の詳細な説明】
【背景技術】
【0001】
単語分割アルゴリズムは、コンピューティングの様々なコンテキストで使用される。単語分割アルゴリズムが適用される1つの具体的なアプリケーションは、データ損失防止(DLP)である。DLPシステムは、コンピュータやコンピュータネットワークなど、機密データを格納または送信する場合に、盗難や偶発的な開示などのデータ損失の脅威から保護するように設計されている。たとえば、そのようなDLPシステムによって単語分類プログラムを使用すると、電子メールやメッセージングなどの電気通信に含まれる機密情報を監視および検出し、機密情報が企業ネットワークの外に送信されることを防ぐことができる。DLP技術は、中国語、韓国語、日本語などの言語に含まれるマルチバイト文字をサポートする。これらのマルチバイト文字の文字列の場合、単語分割アルゴリズムを使用して、元の文字の文字列を、通常はスペースによって区切られる個別の単語に分割し、トークン化された単語を含む、処理後文字列を生成することができる。
【0002】
しかしながら、これらのマルチバイト言語の場合、多くの状況で単語分割アルゴリズムによって生成される処理後文字列は、元の文字列とは異なる長さを有する可能性があり、また、元の文字列に存在するカンマや句読点などの一部の文字が失われる場合もあり、また、スペース、タブ、および元の文字列とは異なる他のスペース文字が含まれる場合もある。このように、元の文字列と、処理後文字列との間に不一致がある場合、DLPシステムにおける単語分類プログラムは、元の文字列における機密情報を正しく特定できない可能性があり、重要な機密情報の盗難や、偶発的な暴露につながる可能性がある。
【発明の概要】
【0003】
本開示の1つの態様によれば、命令を格納する大容量記憶デバイスに結合されたプロセッサを含むコンピュータシステムが提供される。プロセッサによって実行されると、この命令は、プロセッサに、複数の文字で構成された元の文字列を格納することと、元の文字列に対して単語分割アルゴリズムを実行することと、元の文字列をトークン化して、スペースによって区切られた複数の単語トークンを含む処理後文字列を生成することとをさせる。プロセッサは、処理後文字列における単語トークン内の位置と、元の文字列における対応する位置との間のオフセットマップを生成することと、処理後文字列の一部を、対象として分類することと、対象に対応する元の文字列における対象文字を、オフセットマップを使用して特定することと、元の文字列における対象文字に対して所定のアクションを実行することとをするようにさらに構成され得る。
【0004】
この構成の1つの潜在的な利点は、元の文字列と、処理後文字列との間に不一致がある場合でも、単語分割アルゴリズムが、処理後文字列に基づいて、マルチバイト言語文字で形成された元の文字列における対象文字を正確に特定できることである。その結果、そのようなアルゴリズムを適用した単語分類プログラムは、機密情報を正確に特定し、情報の盗難や偶発的な開示を防止することができる。
【0005】
本概要は、以下の詳細説明でさらに説明される概念の選択を、簡略化した形式で紹介するために提供される。本概要は、特許請求された主題の主要な特徴または本質的な特徴を特定するように意図されておらず、また、特許請求された主題の範囲を限定するために使用されることも意図されていない。さらに、特許請求された主題は、本開示のどの部分に記載された欠点の一部またはすべてを解決する実施例にも限定されない。
【図面の簡単な説明】
【0006】
図1】単語分割アルゴリズムを実行して、検索プログラムによって検索可能な処理後文字列を生成し、検索プログラムによって一致が発見された場合に、オフセットマップを利用して、処理後文字列における一致した対象に対応する元の文字列における対象文字を特定するように構成された、コンピューティングデバイスを含むコンピューティングシステムの概略図である。
図2】ポリシーおよび機密データ定義を設定するコンプライアンスおよびセキュリティプログラムで構成された第1のコンピューティングデバイスと、各々が、第1のコンピューティングデバイスによって設定された定義およびポリシーにしたがって検索プログラムを実行する、第2のコンピューティングデバイスおよび第3のコンピューティングデバイスとを含むサーバシステムを含む、図1のコンピュータシステムの別の構成の概略図である。
図3】オフセットマッピングを用いて単語分割アルゴリズムを実行する場合、図1のコンピューティングシステムによって操作される複数のデータ構造の概略図である。
図4図2のコンプライアンスおよびセキュリティプログラムポリシーを設定する際に利用される例示的なGUIの概略図である。
図5A図5Aは、元の文字列における対象文字に対して所定のアクションを実行する際に利用される4つの異なるGUIの例を示す図である。
図5B図5Bは、元の文字列における対象文字に対して所定のアクションを実行する際に利用される4つの異なるGUIの例を示す図である。
図5C図5Cは、元の文字列における対象文字に対して所定のアクションを実行する際に利用される4つの異なるGUIの例を示す図である。
図5D図5Dは、元の文字列における対象文字に対して所定のアクションを実行する際に利用される4つの異なるGUIの例を示す図である。
図6】元の文字列の異なる例に対してオフセットマッピングを用いて単語分割アルゴリズムを実行する場合、図1のコンピューティングシステムによって操作される複数のデータ構造の概略図である。
図7】本開示の1つの例示的な実施例にしたがう方法のフローチャートである。
図8図1の方法が実施され得る例示的なコンピューティング環境の概略図である。
【発明を実施するための形態】
【0007】
上記で論じたように、単語分割アルゴリズムは、上記で論じたように、様々な言語の機密情報を監視および検出するために使用されるDLPシステムを含む、様々なソフトウェアアプリケーションに役立つ。単語分割アルゴリズムは、最新のパーソナルコンピュータおよびサーバ上で実行される検索エンジンやインデクス作成プログラムなどの検索プログラムでも使用される。これらの検索プログラムでは、単語分割アルゴリズムは、文字列のデータセットを、トークン化された単語を含む処理後文字列のデータセットへ処理するために使用される。検索プログラムによって一致が発見されると、データセットにおける一致が、たとえば、ユーザに見える形態で強調表示されたり、データセットから抽出されたり、難読化されることがある。そのようなアクションを実行するために、単語分割アルゴリズムは、単語トークンが文字の元の文字列とはわずかに異なるために、トークン化された処理後文字列における単語トークンを検索プログラムが特定した場所を特定し、一致する単語トークンが、元の文字列における文字に対応する場所を特定することが認識されるだろう。これは、以下に論じられるように、困難な作業になる可能性がある。
【0008】
英語、フランス語、スペイン語などの言語では、単語境界として、単語間にスペースが存在する。これらの言語では、単語分類プログラムによって出力される処理後文字列の単語境界は、元の文字列の単語境界と一致する。したがって、単語を区切るスペースを含む文字列のデータセットに対して検索を実行する検索プログラムは、元の文字列における対応する単語の位置を特定することが比較的簡単である。
【0009】
しかしながら、中国語、韓国語、日本語など、マルチバイトで符号化される言語には、スペース単位の単語境界がない。従来の単語分割アルゴリズムを、これらのようなマルチバイトで符号化された言語の元の文字列に適用すると、単語境界を有する処理後文字列が生成される。しかしながら、多くの状況では、単語分割アルゴリズムによって生成される処理後文字列は、単語トークンを区切るためにスペースが追加されるため、元の文字列とは異なる長さを有する可能性がある。処理後文字列は、カンマや句読点など、元の文字列に存在する一部の文字が失われる場合もあり、スペース、タブ、および元の文字列とは異なる他のスペース文字を有する場合もある。元の文字列と、これらのような処理後文字列との間に不一致がある場合、検索プログラムは、処理後文字列において一致した単語トークンに正確に対応する元の文字列における文字を特定できない場合がある。
【0010】
これらの問題に対処するために、コンピュータシステムおよびそれとともに使用するためのコンピュータ化された方法が、本明細書に開示される。図1は、本開示の1つの態様にしたがって、単語分割アルゴリズムプログラム42を実行して、検索プログラム54によって検索可能な処理後文字列36を生成し、検索プログラム54によって一致が発見された場合に、オフセットマップ48を利用して、処理後文字列36における一致した対象に対応する、元の文字列34における対象文字74を特定するように構成された、コンピューティングデバイス12を含むコンピューティングシステム10を示す。
【0011】
図示される構成では、コンピューティングデバイス12は、プロセッサ14、メモリ16、および大容量記憶デバイス18を含むことができ、これらは通信バスによって互いに動作可能に結合され得る。プロセッサ14、メモリ16、および大容量記憶18は各々、1つまたは複数のプロセッサコアおよび/または1つまたは複数の物理メモリモジュールなどの1つまたは複数の物理コンポーネントとして構成され得る。大容量記憶デバイス18は、プロセッサ14によって実行される本明細書で説明される様々なソフトウェアコンポーネントのための命令を格納し、また、それらのソフトウェアコンポーネントによって使用されるデータセット30も格納する。コンピューティングデバイス12は、キーボード、マウス、タッチスクリーン、トラックパッド、加速度計、マイクロフォン、または何らかの他の適切なタイプの入力デバイスであり得る入力デバイス26をさらに含み得る。それに加えて、コンピューティングデバイス12は、ディスプレイ、スピーカ、または何らかの他の適切なタイプの出力デバイスであり得る出力デバイス22をさらに含み得る。
【0012】
コンピューティングデバイス12は、ラップトップ、デスクトップ、またはサーバなどの様々なタイプのコンピューティングデバイスのいずれのタイプであり得る。コンピューティングデバイス12は、ハンドヘルドタブレットまたはスマートフォンデバイスなどのモバイルコンピューティングデバイスであり得る。
【0013】
プロセッサ14によって実行されると、大容量記憶デバイス18に格納された命令は、プロセッサ14に、複数の文字で構成された元の文字列34を格納させる。これは、たとえば、インデクス作成プログラムが、ユーザのハードドライブ上のファイルにインデクスを作成するとき、サーバがウェブをクロールして、ウェブから収集したインデクス付きファイルの収集を格納するとき、ソフトウェアプログラムが、レコードをデータベースに格納するとき、または、ソフトウェアプログラムが、電子メールまたはチャットメッセージなどの通信の、または文書の作業データを格納するときのような場合に起こり得る。以下の例示的な例では、図2に図示されるように、ユーザは、ビジネス出張のために、ユーザのパスポート番号について旅行代理店と通信しており、その通信は、ユーザの組織によって設定されたセキュリティポリシーによってフラグが立てられる。元の文字列34は、用途に応じて、大容量記憶デバイス18に格納された数十、数百、数千、さらには数百万の元の文字列のうちの1つであり得ることが認識されるであろう。図1に図示される構成では、格納された元の文字列34は、「これは私のパスポートです...番号AA1XXXXXX7」と翻訳される日本語の文字で構成されている。日本語では単語の指定にスペースを使用しないため、日本語で記述された元の文字列34には、単語の間にスペースがない。元の文字列34は、例示される例では、ユーザが旅行代理店に送信する電子メールまたはワードプロセッサ文書などの電子文書または電子メッセージから抽出され得るか、またはその中に含められ得る。大容量記憶デバイス18はさらに、機密データ38を、元の文字列34の一部として格納し得る。機密データ38の定義および機密データ38を取り扱うためのポリシーは、図2を参照して以下に説明されるように、ユーザまたは管理者によって定義され得る。図1に図示される例では、機密データ38は、日本語の「パスポート番号」を含む。元の文字列34は、中国語、韓国語、およびタイ語などの他のマルチバイト符号化言語で構成され得ることが認識されるであろう。
【0014】
元の文字列34の格納後、一般に、図1に例示されるように、(1)から(9)までの処理フローに続く。(1)および(2)において、システム10の単語分割アルゴリズムプログラム42は、格納された元の文字列34を入力として受け取り、処理後文字列36を出力する。プロセッサ14は、単語分割アルゴリズムプログラム42を介して単語分割アルゴリズムを実行するように構成される。単語分割アルゴリズムプログラム42は、元の文字列34に対して単語分割アルゴリズムを実行し、元の文字列34をトークン化して、スペースによって区切られた複数の単語トークンを含む処理後文字列36を生成する、ように構成されたトークン化モジュール44を有する処理後文字列生成器40を含み得る。トークン化モジュール44を介した元の文字列34のトークン化が、その出力として処理後文字列36を生成することが認識されるであろう。したがって、処理後文字列の生成は、トークン化によって引き起こる。元の文字列34と、処理後文字列36との相違が、以下に詳細に説明される。この例では、元の文字列34は日本語で記述されており、元の文字列の英訳は、「This is my passport..number AA1XXXXXX7」である。日本語では、この元の文字列34は、24文字である。図示される例では、単語分割アルゴリズムプログラム42の処理後文字列生成器40によって生成された処理後文字列36は、7つのスペースによって区切られた単語トークンを含み、元の文字列34における10番目および11番目の位置にある2つのドットが消去されており、したがって、単語分割アルゴリズムの実行後、処理後文字列36では2つのドットが省略される。
【0015】
その結果、図1に図示されるように、処理後文字列36は、スペースを含めて29文字となる。
【0016】
上記で論じたように、処理後文字列36は、検索プログラム54と互換性のある形態であるので、検索は効率的である。たとえば、処理後文字列36は、上記等で説明されたデータセット30のソースのうちの1つから作成された検索可能なインデクスにおけるインデクス付きデータであり得る。したがって、処理後文字列36は、検索が容易であるが、ユーザが利用するのに適した自然な形態ではない。このため、元の文字列34の一部を使用して、処理後文字列36において発見された対象56をユーザに表示するために、オフセットマップ48が生成される。
【0017】
具体的には、(3)および(4)に図示されるように、処理後文字列36における単語トークン内の位置と、元の文字列34における対応する位置との間のオフセットマップ48は、オフセットマップ生成器46を介して生成され得る。オフセットマップ48は、元の文字列34および処理後文字列36に基づいて作成される第1のデータ構造50および第2のデータ構造52を含み得る。
【0018】
第1のデータ構造50は、単語分割アルゴリズム中に、元の文字列34において検出された各トークン単語の、元の文字列34における開始文字オフセットインデクス値および文字長さを含み、第2のデータ構造52は、処理後文字列36における各トークンの終了文字オフセットインデクス値を含み、第1および第2のデータ構造の各々は、同じ数の要素を有し、すなわち、各々は、各々に対する対応するデータ(開始文字オフセットインデクス値および文字長さ、または終了文字オフセットインデクス値)を備えているにも関わらず、同じ数のトークンインデクス値57を格納する。以下で図3においてさらに説明されるように、オフセットマップ生成器46は、元の文字列34から、[0](0,2),[1](2,1),[2](3,1)...[6](14,2)および[7](16,9)からなる第1のデータ構造50を取得し、処理後文字列36から、[0](3),[1](5),[2](7)...[6](21)および[7](31)からなる第2のデータ構造52を取得する。
【0019】
(5)および(6)において、プロセッサ14は、検索プログラム54を介して、処理後文字列36の一部を、対象56として、検出および分類するようにさらに構成され得る。対象56は、以下で図2において説明されるように、ユーザまたは管理者によって定義された所定の機密情報データタイプの機密情報である。検索プログラム54は、処理後文字列36から機密データ38を検索し、たとえば、機密データ38に含まれる文字に対応し、したがって、管理者またはユーザによって設定された機密データ定義94(図2を参照)と一致する対象56を発見する。図示される例では、日本語の「パスポート番号」が、機密データ38に含まれており、処理後文字列36における日本語の対象56「パスポート番号」が、検索プログラム54を介して発見される。検索プログラム54は、対象56の対象単語トークン58、および/または、関連する開始文字オフセットインデクス値56Aおよび終了文字オフセットインデクス値56Bを取得し、元の文字列対象ロケータ60に送信する。
【0020】
図示される例では、対象単語トークン58(「パスポート番号」)、処理後文字列36の「パスポート番号」の開始文字オフセットインデクス値56A(図1の「9」)および終了文字オフセットインデクス値56B(図1の「16」)は、元の文字列対象ロケータ60に送信される。
【0021】
(7)および(8)において、プロセッサはさらに、オフセットマップ48と対象単語トークン58、および/または、検索プログラム54によって提供される関連する開始文字オフセットインデクス値56Aおよび終了文字オフセットインデクス値56Bを使用して、対象56に対応する元の文字列34における対象文字74を特定するように構成され得る。元の文字列34における対象文字74は、対象文字74の開始文字オフセットインデクス値64Aおよび文字長さを特定することによって、および/または、対象文字74の開始文字オフセットインデクス値64Aおよび終了文字オフセットインデクス値64Bを特定することによって発見され得る。以下で図3においてさらに説明されるように、単語分割アルゴリズムプログラム42の元の文字列対象ロケータ60のオフセット変換モジュール62は、オフセットマップ48の第1のデータ構造50および第2のデータ構造52を使用して、対象単語トークン58と、関連する開始文字オフセットインデクス値56Aおよび終了文字オフセットインデクス値56B(図1における「9」および「16」)を、元の文字列34の対象文字74の開始文字オフセットインデクス値64Aおよび終了文字オフセットインデクス値64Bに変換する。
【0022】
次に、元の文字列対象ロケータ60は、元の文字列34における対象文字74の開始文字オフセットインデクス値64Aおよび終了文字オフセットインデクス値64Bを、単語分割アルゴリズムプログラム42のアクションモジュール66に送信する。図示される例では、元の文字列対象ロケータ60は、オフセットマップ48を使用して、対象単語トークンの開始文字オフセットインデクス値56A(「9」)および終了文字オフセットインデクス値56B(「16」)を、元の文字列34の開始文字オフセットインデクス値64Aおよび終了文字オフセットインデクス値64Bとして(5,13)に変換し、アクションモジュール66は、元の文字列34における対象文字74「passport...number」(日本語の対象文字の英訳)を特定することができる。
【0023】
(9)において、プロセッサ14は、単語分割アルゴリズムプログラム42のアクションモジュール66を介して、元の文字列34における対象文字74に対して、所定のアクションを実行するようにさらに構成され得る。アクションモジュール66は、対象文字74の開始文字オフセットインデクス値64Aおよび終了文字オフセットインデクス値64Bに基づいて、元の文字列34の対象文字74を特定し、対象文字74に対して所定のアクション68を実行する。この例では、アクションモジュール66は、対象文字74「パスポート...番号」を、GUI70上で強調表示して特定する。図5A図5B図5C、および図5Dに移って簡潔に説明すると、異なるアクションが、ユーザまたは管理者によってプログラムされ、対象文字74に対して実行され得る。図5Aに図示される第1の構成では、対象文字74は、たとえば、強調表示、下線、太字、斜体、色変更、フォントサイズの拡大または縮小等により強調表示され得る。図5Bに図示される第2の構成では、対象文字74は、難読化または削除され得る。図5Cに図示される第3の構成では、対象文字74に関する警告メッセージが表示され得る。図5Dに図示される第4の構成では、対象文字74が抽出され得る。単語分割アルゴリズムプログラム42のアクションモジュール56によって実行されるこれらのアクションのために、例示的な例では、ユーザは、ユーザの機密データ38を共有することを阻止され得る。
【0024】
図2は、図1のコンピューティングシステム10の別の構成の概略図を示し、このシステムは、サーバシステム11と、複数のコンピューティングデバイス12A~12Cとを含む。コンピューティングデバイス12A~12Cは、以下の異なる説明を除いて、上記で説明されたコンピューティングデバイス12と同様に構成される。コンピューティングデバイス12B,12Aは、同じサーバシステム11内、たとえば同じデータセンタ内にあるように図示されており、したがって、高速通信のためにローカルエリアネットワークによって接続されている一方、コンピューティングデバイス12Cは、インターネットなどのWAN98を介してサーバシステム11と通信することが認識されるであろう。このようにして、管理ユーザは、データセンタ内とインターネット上との両方のコンピュータのセキュリティポリシーを制御し得る。
【0025】
サーバシステム11は、機密データ定義94およびポリシー96を設定するコンプライアンスおよびセキュリティプログラムで構成される管理サーバの役割を果たす第1のコンピューティングデバイス12Aと、各々が、第1のコンピューティングデバイス12Aによって設定された定義94およびポリシー96にしたがって、検索プログラム54を実行する、第2のコンピューティングデバイス12Bおよび第3のコンピューティングデバイス12Cを含む。サーバシステム11のコンピューティングデバイス12B,12Cは各々、検索プログラム54のそれぞれのインスタンスを実行するように構成され、各インスタンスは、入力として機密データ定義94および1つまたは複数のポリシー96を、管理サーバの役割を果たすコンピューティングデバイス12Aから受け取り、各それぞれのコンピューティングデバイス12B,12Cに格納された機密データ定義にしたがって、機密データの複数の元の文字列を含むデータセットを検索するように構成されている。さらに、図示されていないが、コンピューティングデバイス12Aは、コンピューティングデバイス12Aがアクセスを有するデータセットに対して検索プログラムも実施し得ることが認識されるであろう。
【0026】
これを達成するために、コンプライアンスおよびセキュリティプログラム92は、コンピューティングデバイス12Aでユーザまたは管理者によって実行され、組織内で機密データを取り扱うための機密データ94およびポリシー96の定義を設定し得る。図4に移って簡潔に説明すると、ユーザまたは管理者は、コンプライアンスおよびセキュリティプログラム92のコンプライアンスおよびセキュリティプログラムGUI96において、機密データ定義94およびポリシー96を作成および編集し得る。図示される例では、ユーザまたは管理者は、パスポート番号、社会保険番号、およびクレジットカード番号などの機密データタイプを、機密データ定義94に、さらに、ポリシー96にしたがって適用されているアクティブな機密データ定義94に追加し得る。ポリシー96の下で、ユーザまたは管理者は、メールサーバ、クラウドストレージ、およびファイルサーバを含む、検索プログラム54によって検索される場所を設定し得、各リソースのデータパスを示し得る。ユーザまたは管理者はさらに、図5A図5Dにおいて上記で説明したように、元の文字列34の対象文字74に対して所定のアクションを設定し得る。
【0027】
図3は、オフセットマッピングを用いて単語分割アルゴリズムを実行する場合に、図1のコンピューティングシステムによって操作される複数のデータ構造の概略図を示す。図示された例では、上記において図1において説明されたように、オフセットマップ生成器46は、元の文字列34から、[0](0,2),[1](2,1),[2](3,1)...[6](14,2)および[7](16,9)からなる第1のデータ構造50を取得し、処理後文字列36から、[0](3),[1](5),[2](7)...[6](21)および[7](31)からなる第2のデータ構造52を取得し、オフセットマップ48を生成する。第1のデータ構造50は、単語分割アルゴリズム中に、元の文字列34において検出される各トークン単語の、元の文字列34における開始文字オフセットインデクス値および文字長さを格納する。この例では、最初の単語は「0」で始まり、2文字であるので、最初のトークン[0]の開始文字オフセットインデクス値および文字長さは(0,2)である。次の単語は「2」で始まり、1文字であるので、2番目のトークン[1]の開始文字オフセットインデクス値および文字長さは(2,1)である。最後のトークン[7]の開始文字オフセットインデクス値および文字長さは(16,9)である。残りのトークン単語の開始文字オフセットインデクス値および文字長さも、同様に取得される。
【0028】
一方、第2のデータ構造52は、処理後文字列36における各トークンの終了文字オフセットインデクス値を格納し、これは図3の第1の式83を使用して取得され得る。前の終了文字オフセットインデクス値が「0」であり、元の文字列の最初のトークン単語の長さは、上記で計算されたように「2」であり、追加されたスペースの長さは1であるので、最初のトークン[0]の終了文字オフセットインデクス値は、第1の式83(「0+2+1=3」)にしたがって「(3)」である。次に、前の終了文字オフセットインデクス値が「3」であり、元の文字列の2番目のトークン単語の長さは「1」であり、追加されたスペースの長さは1であるので、2番目のトークン[1]の終了文字オフセットインデクス値は、第1の式83(「3+1+1=5」)にしたがって「(5)」である。前の終了文字オフセットインデクス値が「21」であり、元の文字列の2番目のトークン単語の長さは「9」であり、追加されたスペースの長さは1であるので、最後のトークン[7]の終了文字オフセットインデクス値は、第1の式83(「21+9+1=31」)にしたがって「(31)」である。処理後文字列36の残りのトークン単語の終了文字オフセットインデクス値も同様に取得される。ここで、第1のデータ構造50および第2のデータ構造52の各々は、同じ数の要素を有しており、すなわち、各々は、各々に対する対応するデータ(開始文字オフセットインデクス値および文字長さ、または終了文字オフセットインデクス値)を備えているにも関わらず、同じ数のトークンインデクス値57を格納する。
【0029】
図1の検索プログラム54は、処理後文字列36における対象56を特定し、対象単語トークン58が決定される。対象単語トークン58は各々、括弧内に示された関連するトークンインデクス値57を有する。対象単語トークン58はまた、処理後文字列36において、関連する開始文字オフセットインデクス値56Aおよび終了文字オフセットインデクス値56B(「9」および「16」)を有する。対象単語トークン58、および/または、関連する開始文字オフセットインデクス値56Aおよび終了文字オフセットインデクス値56Bは、図1の元の文字列対象ロケータ60に送信される。
【0030】
あるいは、開始文字オフセットインデクス値56Aおよび終了文字オフセットインデクス値56Bの決定のために、トークン59A,59B自体が、元の文字列対象ロケータ60へ送信され得る。
【0031】
単語分割アルゴリズムプログラム42の元の文字列対象ロケータ60のオフセット変換モジュール62は、オフセットマップ48の第1のデータ構造50および第2のデータ構造52を使用して、対象単語トークン58(「9」および「16」)を、元の文字列34の対象文字74(図1における「5」および「13」)の開始文字オフセットインデクス値64Aおよび終了文字オフセットインデクス値64Bに変換する。第2の式84および第3の式86を使用する2つの異なるステップがこの変換のために適用され、対象文字74(図1における「5」および「13」)の開始文字オフセットインデクス値64Aおよび終了文字オフセットインデクス値64Bを特定し得る。
【0032】
まず、第2の式84を利用して、処理後文字列36(図1における「9」および「16」)における対象の開始トークン59Aの開始文字オフセットインデクス値56Aと、終了トークン59Bの終了文字オフセットインデクス値56Bとの各々に対するトークンインデクス値57を決定する。図示される例では、開始文字オフセットインデクス値56A(「9」)は、処理後文字列36の4番目のトークン[3]の終了文字オフセットインデクス値「(9)」以上であり、処理後文字列の5番目のトークン[4]の終了文字オフセットインデクス値「(15)」未満であるので、開始文字オフセットインデクス値56A(「9」)のトークンインデクス値57は、第2の式84を使用して「4」と決定される。終了文字オフセットインデクス値56B(「16」)のトークンインデクス値57は、処理後文字列36の6番目のトークンインデクス[5]の終了文字オフセットインデクス値「18」以下であり、5番目のトークン[4]の終了文字オフセットインデクス値「15」より大きいので、終了文字オフセットインデクス値56B(「16」)のトークンインデクス値57は、第2の式84を使用して「5」と決定される。したがって、処理後文字列36における対象56の開始文字オフセットインデクス値56Aおよび終了文字オフセットインデクス値56Bの各々のトークンインデクス値57はそれぞれ、「4」および「5」である。
【0033】
最後に、上記のインデクス値(「4」および「5」)を、第3の式86に組み込むことによって、オフセットマップ48の第1のデータ構造に格納された開始文字オフセットインデクス値を使用して、元の文字列34における開始トークン59A’の開始文字オフセットインデクス値64A、および、オフセットマップ48の第2のデータ構造に格納された終了文字オフセットインデクス値を使用して、終了トークン59B’の終了文字オフセットインデクス値64B。図示される例では、5番目のトークン[4]の開始文字オフセットインデクス値は、元の文字列34における[4](5,5)の「5」であるので、元の文字列34における開始トークンの開始文字オフセットインデクス値は「5」である。一方、図3において説明されたように、6番目のトークン[5]の開始文字オフセットインデクス値は「12」であり、その長さは、元の文字列34において「2」であり、「12」+「2」-「1」=「13」であるので、終了トークンの終了文字オフセットインデクス値は「13」である。その結果、対象文字74の開始文字オフセットインデクス値64Aおよび終了文字オフセットインデクス値64Bは(5,13)として特定され、元の文字列34における対応する対象文字「passport..number」(英訳)が特定される。
【0034】
図6は、元の文字列34の別の例に対してオフセットマッピングを用いて単語分割アルゴリズムを実行する場合に、図1のコンピューティングシステムによって操作される複数のデータ構造の概略図を示す。この例では、元の文字列34は、日本語で記述されており、元の文字列の英訳は、「a purchase history will soon be available only when you log in and will be centrally managed within my number card.」である。上記で図3において説明されたものと同じ手順にしたがって、元の文字列34の対象文字「number card」(日本語対象文字の英訳)が、図1のオフセットマップ48を使用して特定される。この例では、用語「ナンバーカード」が管理者によって機密データ定義に入力されており、処理後文字列36における対象56の対応する単語トークンが検索プログラム54によって特定されている。
【0035】
図示される例では、図6において説明されるように、図1のオフセットマップ生成器46は、元の文字列34から、[0](0,2),[1](2,2),[2](4,1)...[20](42,1),[21](43,2)からなる第1のデータ構造50を取得し、第1の式83を使用して、処理後文字列36から[0](3),[1](6),[2](8)...[20](63)および[21](66)からなる第2のデータ構造52を取得して、オフセットマップ48を生成する。次に、図1の検索プログラム54は、処理後文字列36における対象56を特定し、対象単語トークン58が決定される。対象単語トークン58はまた、処理後文字列36において、関連する開始文字オフセットインデクス値56Aおよび終了文字オフセットインデクス値56B(「42」および「52」)を有する。次に、処理後文字列36における対象56の開始トークン59Aの開始文字オフセットインデクス値56Aと、終了トークン59Bの終了文字オフセットインデクス値56Bとの各々に対するトークンインデクス値57(「14」と「16」)が、第2の式84を使用して、対象単語トークン58から取得される。最後に、上記のインデクス値(「14」および「16」)を第3の式86に組み込むことにより、元の文字列34における開始トークン「28」の開始文字オフセットインデクス値と、終了トークン「36」の終了文字オフセットインデクス値とが取得される。その結果、(28,36)の開始文字オフセットインデクス値56Aおよび終了文字オフセットインデクス値56Bと、元の文字列34における対応する対象文字「within number card」(英訳)とが特定される。
【0036】
図7は、本開示の1つの例示的な実施にしたがってコンピュータ化された方法300のフローチャートを示す。ステップ302において、コンピュータ化された方法300は、複数の文字で構成された元の文字列を格納することを含み得る。ステップ304において、この方法は、元の文字列に対して単語分割アルゴリズムを実行することをさらに含み得る。ステップ306において、方法300は、元の文字列をトークン化して、スペースによって区切られた複数の単語トークンを含む処理後文字列を生成することをさらに含み得る。ステップ306から、この方法は、2つの並列ワークフローに分岐する。
【0037】
並列ワークフローの第1の分岐後、ステップ308において、方法300は、処理後文字列における単語トークン内の位置と、元の文字列における対応する位置との間のオフセットマップ48を生成することをさらに含み得る。310において、方法は、元の文字列および処理後文字列からの単語分割アルゴリズムメタデータを、データ構造に格納することを含み得る。メタデータは、元の文字列および処理後文字列における対象の位置および長さを示し得る。たとえば、312において示されるように、オフセットマップは、第1のデータ構造を含み得、この方法は、単語分割アルゴリズム中に、元の文字列において検出される各トークン単語の、第1のデータ構造における元の文字列における開始文字オフセットインデクス値および文字長さを格納することを含み得る。それに加えて、またはその代わりに、314において示されるように、オフセットマップは、第2のデータ構造を含み得、この方法は、処理後文字列における各トークンの終了文字オフセットインデクス値を格納することを含み得る。並列ワークフローの第2の分岐に戻って示すように、ステップ340において、この方法は、検索プログラムを介して、処理後文字列の一部を、対象として分類することをさらに含み得る。ステップ342において、方法300は、対象単語トークンと、関連する開始文字オフセットインデクス値および終了文字オフセットインデクス値とを特定することをさらに含み得る。
【0038】
ステップ318において、方法300は、オフセットマップ、対象単語トークン、および関連する開始文字オフセットインデクス値および終了文字オフセットインデクス値を使用して、対象に対応する元の文字列における対象文字を特定することをさらに含み得る。対象文字を特定するために、320において、この方法は、処理後文字列における対象の開始文字オフセットインデクス値および終了文字オフセットインデクス値の各々に対して、トークンインデクス値を決定することを含み得る。322において、この方法は、オフセットマップの第1のデータ構造に格納された開始文字オフセットインデクス値を使用して、元の文字列における開始トークンの開始文字オフセットインデクス値を決定することをさらに含み得る。324において、この方法は、オフセットマップの第2のデータ構造に格納された終了文字オフセットインデクス値を使用して、終了トークンの終了文字オフセットインデクス値を決定することを含み得る。対象文字が特定されると、ステップ326において、方法300は、元の文字列における対象文字に対して、対象単語を強調表示すること、対象単語を難読化すること、および/または、対象単語を抽出することを含む、所定のアクション328を実行することをさらに含み得る。
【0039】
上記で説明されたシステムおよび方法は、最適化された検索のためにトークン化された処理後文字列における機密データ定義に一致する対象文字を検索するために、そして、処理後文字列が生成された元の文字列における対応する文字を特定するために、マルチバイト符号化言語における文字列を含むデータセットとともに使用され得ることが認識されるであろう。このように、対応する文字が特定されると、元の文字列における対応する文字に対して、適切なアクションが実行され得る。
【0040】
いくつかの実施形態では、本明細書で説明される方法および処理は、1つまたは複数のコンピューティングデバイスのコンピューティングシステムに結び付けられ得る。特に、そのような方法および処理は、コンピュータアプリケーションプログラムまたはサービス、アプリケーションプログラミングインターフェース(API)、ライブラリ、および/または、他のコンピュータプログラム製品として実施され得る。
【0041】
図8は、上記で説明された方法および処理のうちの1つまたは複数を実行できる、コンピューティングシステム400の非限定的な実施形態を概略的に図示する。コンピューティングシステム400は、簡略化された形態で図示されている。コンピューティングシステム400は、上記で説明され、図1に例示されたコンピュータデバイス12と、図2に例示された様々なコンピューティングデバイスとを具現化し得る。コンピューティングシステム400は、1つまたは複数のパーソナルコンピュータ、サーバコンピュータ、タブレットコンピュータ、ホームエンターテインメントコンピュータ、ネットワークコンピューティングデバイス、ゲームデバイス、モバイルコンピューティングデバイス、モバイル通信デバイス(たとえば、スマートフォン)、および/または、他のコンピューティングデバイス、ならびに、スマート腕時計やヘッドマウント拡張現実デバイスなどのウェアラブルコンピューティングデバイスの形態をとり得る。
【0042】
コンピューティングシステム400は、論理プロセッサ402、揮発性メモリ404、および不揮発性記憶デバイス406を含む。コンピューティングシステム400は、ディスプレイサブシステム408、入力サブシステム410、通信サブシステム412、および/または、図8に図示されていない他のコンポーネントを任意選択的に含み得る。
【0043】
論理プロセッサ402は、命令を実行するように構成された1つまたは複数の物理デバイスを含む。たとえば、論理プロセッサは、1つまたは複数のアプリケーション、プログラム、ルーチン、ライブラリ、オブジェクト、コンポーネント、データ構造、または他の論理構造の一部である命令を実行するように構成され得る。そのような命令は、タスクの実行、データタイプの実施、1つまたは複数のコンポーネントの状態の変換、技術的効果の達成、または他の方法で、所望の結果に到達するために実施され得る。
【0044】
論理プロセッサは、ソフトウェア命令を実行するように構成された1つまたは複数の物理プロセッサ(ハードウェア)を含み得る。それに加えて、またはその代わりに、論理プロセッサは、ハードウェア実施ロジックまたはファームウェア命令を実行するように構成された1つまたは複数のハードウェア論理回路またはファームウェアデバイスを含み得る。論理プロセッサ402のプロセッサは、シングルコアまたはマルチコアであり得、そこで実行される命令は、シーケンシャル、並列、および/または、分散処理用に構成され得る。論理プロセッサの個々のコンポーネントは、任意選択的に、遠隔に配置された、および/または、調整された処理のために構成された、2つ以上の別個のデバイスに分散され得る。論理プロセッサの態様は、クラウドコンピューティング構成で構成された、リモートアクセス可能なネットワーク化されたコンピューティングデバイスによって、仮想化および実行され得る。そのような場合、これらの仮想化された態様は、様々な異なるマシンの異なる物理的な論理プロセッサにおいて実行されることが理解されるであろう。
【0045】
不揮発性記憶デバイス406は、本明細書で説明された方法および処理を実施するために論理プロセッサによって実行可能な命令を保持するように構成された1つまたは複数の物理デバイスを含む。そのような方法および処理が実施されると、不揮発性記憶デバイス406の状態は、たとえば、異なるデータを保持するために、変換され得る。
【0046】
不揮発性記憶デバイス406は、取外し可能および/または内蔵された物理デバイスを含み得る。不揮発性記憶デバイス406は、光学メモリ(たとえば、CD、DVD、HD-DVD、ブルーレイディスクなど)、半導体メモリ(たとえば、ROM、EPROM、EEPROM、フラッシュメモリなど)、および/または、磁気メモリ(たとえば、ハードディスクドライブ、フロッピーディスクドライブ、テープドライブ、MRAMなど)、または他の大容量記憶デバイス技術を含み得る。不揮発性記憶デバイス406は、不揮発性、動的、静的、読取/書込、読取専用、シーケンシャルアクセス、位置アドレス指定可能、ファイルアドレス指定可能、および/または、コンテンツアドレス指定可能なデバイスを含み得る。不揮発性記憶デバイス406への電力が遮断された場合でも、不揮発性記憶デバイス406は、命令を保持するように構成されていることが認識されるであろう。
【0047】
揮発性メモリ404は、ランダムアクセスメモリを含む物理デバイスを含み得る。揮発性メモリ404は、通常、ソフトウェア命令の処理中に情報を一時的に格納するために論理プロセッサ402によって利用される。揮発性メモリ404への電力が遮断されると、揮発性メモリ404は通常、命令を格納し続けないことが認識されるであろう。
【0048】
論理プロセッサ402、揮発性メモリ404、および不揮発性記憶デバイス406の態様は、1つまたは複数のハードウェア論理コンポーネントに統合され得る。そのようなハードウェア論理コンポーネントは、たとえば、フィールドプログラマブルゲートアレイ(FPGA)、プログラムおよび特定用途向け集積回路(PASIC/ASIC)、プログラムおよび特定用途向け標準製品(PSSP/ASSP)、システムオンチップ(SOC)、およびコンプレックスプログラマブル論理デバイス(CPLD)を含み得る。
【0049】
「モジュール」、「プログラム」、および「エンジン」という用語は、揮発性メモリの一部を使用して、特定の機能を実行するために、プロセッサによって、通常、ソフトウェアにおいて実施されるコンピューティングシステム400の態様を説明するために使用され得、この機能は、機能を実行するようにプロセッサを具体的に構成する変換処理を含む。したがって、モジュール、プログラム、またはエンジンは、揮発性メモリ404の一部を使用して、不揮発性記憶デバイス406によって保持される命令を実行する論理プロセッサ402を介してインスタンス化され得る。異なるモジュール、プログラム、および/または、エンジンが、同じアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、API、関数などからインスタンス化され得ることが理解されるであろう。同様に、同じモジュール、プログラム、および/または、エンジンが、異なるアプリケーション、サービス、コードブロック、オブジェクト、ルーチン、API、関数などによってインスタンス化され得る。「モジュール」、「プログラム」、および「エンジン」という用語は、個別またはグループの、実行可能ファイル、データファイル、ライブラリ、ドライバ、スクリプト、データベースレコードなどを含み得る。
【0050】
ディスプレイサブシステム408が含まれる場合、ディスプレイサブシステム408は、不揮発性記憶デバイス406によって保持されるデータの視覚的表現を提示するために使用され得る。視覚的表現は、グラフィカルユーザインターフェース(GUI)の形態をとり得る。本明細書で説明された方法および処理が、不揮発性記憶デバイスによって保持されるデータを変更し、それによって、不揮発性記憶デバイスの状態を変換するとき、ディスプレイサブシステム408の状態も同様に変換され、基礎となるデータの変化を視覚的に表すことができる。ディスプレイサブシステム408は、事実上あらゆるタイプの技術を利用する1つまたは複数のディスプレイデバイスを含み得る。そのようなディスプレイデバイスは、共有の筐体において、論理プロセッサ402、揮発性メモリ404、および/または、不揮発性記憶デバイス406と組み合わされ得るか、または、そのようなディスプレイデバイスは、周辺ディスプレイデバイスであり得る。
【0051】
入力サブシステム410が含まれる場合、入力サブシステム410は、キーボード、マウス、タッチスクリーン、またはゲームコントローラなどの1つまたは複数のユーザ入力デバイスを備え得るか、またはそれらとインターフェースし得る。いくつかの実施形態では、入力サブシステムは、選択された自然ユーザ入力(NUI)コンポーネントを備え得るか、またはそれとインターフェースし得る。そのようなコンポーネントは、統合または周辺化され得、入力アクションの変換および/または処理は、オンボードまたはオフボードで取り扱われ得る。例示的なNUIコンポーネント類は、スピーチおよび/または音声認識用のマイクロフォンと、マシンビジョンおよび/またはジェスチャ認識用の赤外線カメラ、カラーカメラ、立体カメラ、および/または、深度カメラと、動き検出および/または意図認識のためのヘッドトラッカ、アイトラッカ、加速度計、および/または、ジャイロスコープのみならず、脳の活動を評価するための電界感知コンポーネントと、および/または、任意の他の適切なセンサとを含み得る。
【0052】
通信サブシステム412が含まれる場合、通信サブシステム412は、本明細書で説明される様々なコンピューティングデバイスを相互に、および他のデバイスと通信可能に結合するように構成され得る。通信サブシステム412は、1つまたは複数の異なる通信プロトコルと互換性のある有線および/またはワイヤレスの通信デバイスを含み得る。非限定的な例として、通信サブシステムは、ワイヤレス電話ネットワーク、またはHDMI(登録商標)over Wi-Fi接続などの有線またはワイヤレスの、ローカルエリアネットワークまたはワイドエリアネットワークを介した通信のために構成され得る。いくつかの実施形態では、通信サブシステムは、コンピューティングシステム400が、インターネットなどのネットワークを介して他のデバイスとの間でメッセージを送信および/または受信できるようにし得る。
【0053】
以下の段落は、本開示のいくつかの態様を論じている。本開示の1つの態様によれば、コンピュータシステムが提供される。コンピュータシステムは、命令を記憶する大容量記憶デバイスに結合されたプロセッサを含み得、命令は、プロセッサによる実行時に、プロセッサに対して、複数の文字で構成された元の文字列を記憶させる。
【0054】
プロセッサはさらに、元の文字列に対して単語分割アルゴリズムを実行するように構成され得る。プロセッサは、元の文字列をトークン化して、スペースによって区切られた複数の単語トークンを含む処理後文字列を生成するようにさらに構成され得る。プロセッサは、処理後文字列における単語トークン内の位置と、元の文字列における対応する位置との間のオフセットマップを生成するようにさらに構成され得る。プロセッサは、処理後文字列の一部を、対象として分類するようにさらに構成され得る。プロセッサは、オフセットマップを使用して、対象に対応する元の文字列における対象文字を特定するようにさらに構成され得る。
【0055】
プロセッサは、元の文字列における対象文字に対して、所定のアクションを実行するようにさらに構成され得る。
【0056】
この態様によれば、所定のアクションを実行するために、プロセッサは、対象文字を強調表示すること、対象文字を難読化すること、および/または、対象文字を抽出することをするようにさらに構成され得る。
【0057】
この態様によれば、元の文字列における対象文字を特定するために、プロセッサは、対象文字の開始文字オフセットインデクス値および文字長さを特定し、および/または、対象文字の開始文字オフセットインデクス値および終了文字オフセットインデクス値を特定するようにさらに構成され得る。
【0058】
この態様によれば、元の文字列における対象文字を特定するために、プロセッサは、処理後文字列における対象の開始文字オフセットインデクス値および終了文字オフセットインデクス値を決定することと、処理後文字列における対象の開始文字オフセットインデクス値および終了文字オフセットインデクス値の各々のトークンインデクス値を決定することと、オフセットマップの第1のデータ構造に格納された開始文字オフセットインデクス値を使用して、元の文字列における開始トークンの開始文字オフセットインデクス値を決定することと、オフセットマップの第2のデータ構造に格納された終了文字オフセットインデクス値を使用して、終了トークンの終了文字オフセットインデクス値を決定することとをするようにさらに構成され得る。
【0059】
この態様によれば、対象は、所定の機密情報データタイプの機密情報であり得る。
【0060】
この態様によれば、元の文字列は、日本語、中国語、韓国語、またはタイ語の文字を含み得る。
【0061】
この態様によれば、元の文字列は、電子文書または電子メッセージから抽出され得る。
【0062】
この態様によれば、元の文字列は、単語分割アルゴリズムの実行後、処理後文字列に、省略された文字を含み得る。
【0063】
この態様によれば、オフセットマップは、単語分割アルゴリズム中に、元の文字列において検出された各トークン単語の、元の文字列における開始文字オフセットインデクス値および文字長さを格納する第1のデータ構造と、処理後文字列における各トークンの終了文字オフセットインデクス値を格納する第2のデータ構造とを含み得、第1および第2のデータ構造の各々は、同じ数の要素を有する。
【0064】
本開示の別の態様によれば、コンピュータ化された方法が提供される。コンピュータ化された方法は、複数の文字で構成された元の文字列を格納することを含み得る。コンピュータ化された方法は、元の文字列に対して単語分割アルゴリズムを実行することと、元の文字列をトークン化して、スペースによって区切られた複数の単語トークンを含む処理後文字列を生成することとをさらに含み得る。コンピュータ化された方法は、処理後文字列における単語トークン内の位置と、元の文字列における対応する位置との間のオフセットマップを生成することをさらに含み得る。コンピュータ化された方法は、処理後文字列の一部を、対象として分類することをさらに含み得る。コンピュータ化された方法は、オフセットマップを使用して、対象に対応する元の文字列における対象文字を特定することをさらに含み得る。コンピュータ化された方法は、元の文字列における対象文字に対して所定のアクションを実行することをさらに含み得る。
【0065】
この態様によれば、所定のアクションを実行することは、対象文字を強調表示すること、対象文字を難読化すること、および/または、対象文字を抽出することとのうちの1つまたは複数を含み得る。
【0066】
この態様によれば、元の文字列における対象文字を特定することは、対象文字の開始文字オフセットインデクス値および文字長さを特定すること、および/または、対象文字の開始文字オフセットインデクス値および終了文字オフセットインデクス値を特定することのうちの1つまたは複数を含み得る。
【0067】
この態様によれば、元の文字列における対象文字を特定することは、処理後文字列における対象の開始文字オフセットインデクス値および終了文字オフセットインデクス値を決定し、処理後文字列における対象の開始文字オフセットインデクス値および終了文字オフセットインデクス値の各々のトークンインデクス値を決定し、オフセットマップの第1のデータ構造に格納された開始文字オフセットインデクス値を使用して、元の文字列における開始トークンの開始文字オフセットインデクス値を決定し、オフセットマップの第2のデータ構造に格納された終了文字オフセットインデクス値を使用して、終了トークンの終了文字オフセットインデクス値を決定することによって、少なくとも部分的に達成され得る。
【0068】
この態様によれば、対象は、所定の機密情報データタイプの機密情報であり得る。
【0069】
この態様によれば、元の文字列は、日本語、中国語、韓国語、またはタイ語の文字を含み得る。
【0070】
この態様によれば、元の文字列は、電子文書または電子メッセージから抽出され得る。
【0071】
この態様によれば、元の文字列は、単語分割アルゴリズムの実行後に、処理後文字列に、省略された文字を含み得る。
【0072】
この態様によれば、オフセットマップは、単語分割アルゴリズム中に、元の文字列において検出された各トークン単語の、元の文字列における開始文字オフセットインデクス値および文字長さを格納する第1のデータ構造と、処理後文字列における各トークンの終了文字オフセットインデクス値を格納する第2のデータ構造とを含み得、第1および第2のデータ構造の各々は、同じ数の要素を有する。
【0073】
この態様によれば、処理後文字列における各トークンの終了文字オフセットインデクス値は、処理後文字列における各トークンの前の終了文字オフセットインデクス値と、元の文字列におけるそれぞれのトークンの長さとを使用して計算され得る。
【0074】
本開示の別の態様によれば、単語を分類するように構成されたコンピュータシステムが提供される。コンピュータシステムは、検索プログラムを実行するように構成されたサーバコンピューティングデバイスを含み得、検索プログラムは、入力として機密データ定義および1つまたは複数のポリシーを受け取り、機密データ定義にしたがって、機密データの複数の元の文字列を含むデータセットを検索するように構成される。サーバコンピューティングデバイスは、複数の元の文字列から選択された元の文字列に対して、単語分割アルゴリズムを実行するようにさらに構成され得る。サーバコンピューティングデバイスは、選択された元の文字列をトークン化して、スペースによって区切られた複数の単語トークンを含む処理後文字列を生成するようにさらに構成され得る。サーバコンピューティングデバイスは、処理後文字列における単語トークン内の位置と、元の文字列における対応する位置との間のオフセットマップを生成するようにさらに構成され得る。サーバコンピューティングデバイスは、処理後文字列の一部を、対象として分類するようにさらに構成され得る。サーバコンピューティングデバイスは、オフセットマップを使用して、対象に対応する元の文字列における対象文字を特定するようにさらに構成され得る。サーバコンピューティングデバイスは、元の文字列における対象文字に対して、所定のアクションを実行するようにさらに構成され得る。
【0075】
本明細書で説明された構成および/またはアプローチは、本質的に例示的なものであり、多くの変形が可能であるので、これらの特定の実施形態または例は、限定的な意味で考慮されるべきではないことが理解されるであろう。本明細書で説明された特定のルーチンまたは方法は、任意の数の処理戦略のうちの1つまたは複数を表し得る。したがって、例示および/または説明された様々な動作は、例示および/または説明された順序で、他の順序で、並行して、または省略されて実行され得る。同様に、上記で説明された処理の順序も変更され得る。
【0076】
本開示の主題は、本明細書に開示される様々な処理、システム、および構成、および他の特徴、機能、動作、および/または特性の、すべての新規かつ非自明な組合せ、および部分的組合せ、ならびにそのあらゆる均等物を含む。
図1
図2
図3
図4
図5A
図5B
図5C
図5D
図6
図7
図8
【国際調査報告】