JP5910337B2 - Information processing method and apparatus for concealment query - Google Patents
Information processing method and apparatus for concealment query Download PDFInfo
- Publication number
- JP5910337B2 JP5910337B2 JP2012131955A JP2012131955A JP5910337B2 JP 5910337 B2 JP5910337 B2 JP 5910337B2 JP 2012131955 A JP2012131955 A JP 2012131955A JP 2012131955 A JP2012131955 A JP 2012131955A JP 5910337 B2 JP5910337 B2 JP 5910337B2
- Authority
- JP
- Japan
- Prior art keywords
- character string
- character
- characters
- search
- strings
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本技術は、検索の秘匿化技術に関する。 The present technology relates to search concealment technology.
近年、企業によるクラウドコンピューティングの利用が拡大してきている。その中でも、業界クラウドと呼ばれるクラウドが注目されている。業界クラウドは、同一の業界に属する異なる複数の組織が有する計算機資源を含み、それぞれの資源を互いに利用するクラウドである。例えば、医療クラウドの場合、複数の病院が有する計算機資源を組み合わせることにより得られ、それぞれが有する診療情報などを互いに交換して、高度な医療サービスを顧客に提供することが期待されている。このように、業界クラウドは、同一業界における異なる組織が各々有するデータを互いに有効活用することで、より品質が高いサービスを提供することを目指すものである。 In recent years, the use of cloud computing by companies has been expanding. Among them, a cloud called an industry cloud is attracting attention. The industry cloud is a cloud that includes computer resources owned by a plurality of different organizations belonging to the same industry, and uses each resource mutually. For example, in the case of a medical cloud, it is obtained by combining computer resources possessed by a plurality of hospitals, and it is expected to provide advanced medical services to customers by exchanging medical information and the like possessed by each. In this way, the industry cloud aims to provide a higher quality service by effectively utilizing data each of which different organizations in the same industry have.
例えば、業界クラウドの一形態として、与信クラウドが知られている。与信クラウドは、異なる組織が各々有する、個人の借金暦などの信用情報を蓄積している。より具体的には、いわゆるブラックリストを管理している。このため、銀行等の金融機関が顧客に融資を行う際に、顧客の信用度を調査するために与信クラウドを用いる。与信クラウドには、異なる組織からのブラックリストが蓄積されるため、与信クラウドにより非常に広い範囲の与信情報を提供することが出来る。反面、異なる組織からのデータを組み合わせているため、同一人物であっても異なるデータとして登録されることがある。例えば、X社の”ワタナベ”さんは、Y社では”ワタベ”さんとして登録されていることがある。このようなデータの差異を吸収し、異なるデータが示す同一人物を区別するために、「名寄せ」と呼ばれる処理が行われる。 For example, a credit cloud is known as one form of an industry cloud. The credit cloud stores credit information such as personal debt calendars owned by different organizations. More specifically, a so-called black list is managed. For this reason, when a financial institution such as a bank makes a loan to a customer, a credit cloud is used to investigate the creditworthiness of the customer. In the credit cloud, black lists from different organizations are accumulated, so that a very wide range of credit information can be provided by the credit cloud. On the other hand, since data from different organizations are combined, even the same person may be registered as different data. For example, “Watabe” from Company X may be registered as “Watabe” from Company Y. In order to absorb such data differences and distinguish the same person indicated by different data, a process called “name identification” is performed.
名寄せでは、2つの文字列の類似度を計算し、所定の閾値以上ならば同一人物であると判定する。類似度の計算方法には様々な手法が知られているが、編集距離と呼ばれる手法を用いるのが一般的である。 In name identification, the similarity between two character strings is calculated, and if they are equal to or greater than a predetermined threshold, they are determined to be the same person. Various methods are known for calculating the similarity, but a method called an edit distance is generally used.
編集距離は、文字列間の類似度を、「何文字削除、挿入、置き換えたか?」で評価する手法である。例えば、「ワタベ」は「ワタナベ」から一文字削除した文字列なので、「ワタナベ」からみた「ワタベ」の編集距離は1Dである。ただし、Dは1文字削除による編集距離としての重みを表すパラメータである。逆に、「ワタナベ」は「ワタベ」に対して一文字挿入した文字列であるので、「ワタベ」から見た「ワタナベ」の編集距離は1Iである。ただし、Iは1文字挿入による編集距離としての重みを表すパラメータである。 The edit distance is a method for evaluating the similarity between character strings by “how many characters have been deleted, inserted, or replaced?”. For example, since “Watabe” is a character string obtained by deleting one character from “Watanabe”, the editing distance of “Watabe” viewed from “Watanabe” is 1D. However, D is a parameter representing a weight as an edit distance by deleting one character. On the contrary, since “Watanabe” is a character string in which one character is inserted into “Watabe”, the editing distance of “Watanabe” viewed from “Watabe” is 1I. Here, I is a parameter representing a weight as an editing distance by inserting one character.
例えば、与信クラウドは、X社のデータベース、Y社のデータベースなど、複数の組織が管理するブラックリストデータベースを有するものとする。銀行などの金融機関Aは、与信クラウドに対して、自社の顧客名をクエリとして送信することで、自社顧客がブラックリスト該当者であるかどうかの調査を行う。この調査のために、金融機関Aは自社顧客名「ワタナベ タカシ」をクエリとして、与信クラウドに送信する。与信クラウドにおいては、名寄せ処理を行うサーバが金融機関Aの顧客名「ワタナベ タカシ」を受信する。サーバは、受信した「ワタナベ タカシ」と、複数組織のブラックリストデータベースそれぞれに含まれる名前に対して、横断的な名寄せ処理を行う。この結果、ブラックリストに列挙されている名前の中で、類似度が閾値を超える「ワタベ タカシ」がクエリに一致する名前として選出され、金融機関Aに対しクエリレスポンスとして返信される。以上により、金融機関Aは自社顧客がブラックリスト該当者であるか否かという信用調査を行うことが出来る。 For example, the credit cloud has a black list database managed by a plurality of organizations, such as a database of company X and a database of company Y. A financial institution A such as a bank transmits a customer's customer name as a query to the credit cloud to investigate whether or not the customer is a blacklisted person. For this investigation, financial institution A sends its customer name “Watanabe Takashi” as a query to the credit cloud. In the credit cloud, the server that performs name identification processing receives the customer name “Watanabe Takashi” of financial institution A. The server performs a cross-sectional name identification process on the received “Watanabe Takashi” and the names included in each of the blacklist databases of multiple organizations. As a result, among the names listed in the black list, “Wata Takashi” whose similarity exceeds the threshold is selected as a name that matches the query, and is returned to the financial institution A as a query response. As described above, the financial institution A can perform a credit check as to whether or not its customer is a blacklisted person.
しかし、このような与信クラウドでは、プライバシ上の問題が懸念される。第1の問題は、自社顧客名をそのまま与信クラウドに通知するため、調査対象の自社顧客名が与信クラウド側に漏洩してしまう。また、自社顧客名がブラックリスト該当者であった場合、調査対象の自社顧客名がブラックリスト該当者であることが、与信クラウド側に漏洩してしまう。 However, in such a credit cloud, there are concerns about privacy issues. The first problem is that the company customer name is notified to the credit cloud as it is, and the company customer name to be investigated leaks to the credit cloud side. Further, when the company customer name is a blacklist person, the fact that the subject company customer name to be investigated is a blacklist person leaks to the credit cloud side.
その結果、与信クラウドに対してクエリを送信する会社や組織は、自社顧客名という重要なプライバシ情報を漏洩する危険性にさらされる。このような問題は、SSL(Secure Socket Layer)やVPN(Virtual Private Network)等の通信データ暗号化技術を用いても、与信クラウド内部で名寄せ処理を実施するサーバでデータが復号されるため、回避できない。このような情報漏洩に対応するために、クエリを変換するような技術は存在していない。 As a result, companies and organizations that send queries to the credit cloud are exposed to the risk of leaking important privacy information called their customer names. Such problems can be avoided by using a data encryption technology such as SSL (Secure Socket Layer) or VPN (Virtual Private Network) because the data is decrypted by the server that performs name identification inside the credit cloud. Can not. In order to cope with such information leakage, there is no technique for converting a query.
本技術の目的は、一側面によれば、クエリを秘匿化するための技術を提供することである。 An object of the present technology is, according to one aspect, to provide a technology for concealing a query.
本技術に係る情報処理方法は、(A)検索対象として指定された第1の文字列に混合する第2の文字列を取得する取得処理と、(B)第1の文字列に含まれる複数の文字の順序関係と、第2の文字列に含まれる複数の文字の順序関係と維持しつつ第1の文字列に対して第2の文字列を混合することで第3の文字列を生成し、データ格納部に格納する処理と、(C)データ格納部に格納されている第3の文字列を含むクエリを、編集距離を用いて文字列検索を行う検索コンピュータに対して出力する処理とを含む。 The information processing method according to the present technology includes (A) an acquisition process for acquiring a second character string to be mixed with a first character string designated as a search target, and (B) a plurality of items included in the first character string. The third character string is generated by mixing the second character string with the first character string while maintaining the order relationship of the characters and the order relationship of the plurality of characters included in the second character string. And (C) a process of outputting a query including the third character string stored in the data storage unit to a search computer that performs a character string search using the edit distance. Including.
クエリを秘匿化することができるようになる。 The query can be kept secret.
[実施の形態1]
本実施の形態のシステム概要を図1を用いて説明する。図1の例では、インターネットなどのネットワーク1には、名寄せ処理を実施する検索サーバ5と、1又は複数のクライアント装置3(図1では3a及び3b)とが接続されている。検索サーバ5は、例えば与信クラウドに含まれるサーバであり、例えば第1の企業のブラックリスト等のデータを格納する第1DB51と、第2の企業のブラックリスト等のデータを格納する第2DB52などと接続されており、これらのデータベースに対して横断的に名寄せ処理を実施する。クライアント装置3は、クエリを検索サーバ5に送信すると、検索サーバ5は、クエリに含まれる文字列との編集距離が閾値以下の文字列を第1DB51等から抽出して、クエリ送信元のクライアント装置3に検索結果として返信する。
[Embodiment 1]
The system outline of this embodiment will be described with reference to FIG. In the example of FIG. 1, a
クライアント装置3の機能ブロック図を図2に示す。クライアント装置3は、入力部31と、第1データ格納部32と、第2データ格納部33と、第1抽出部34と、第3データ格納部35と、混合部36と、第4データ格納部37と、クエリ送信部38と、検索結果受信部39と、第5データ格納部40と、第2抽出部41と、第6データ格納部42と、出力部43とを有する。
A functional block diagram of the
入力部31は、ユーザから、例えば信用調査の対象となる顧客の姓名などの文字列の入力を受け付け、第1データ格納部32に格納する、
The
第2データ格納部33は、混合部36で混合する姓及び名の候補となるデータを格納している。第1抽出部34は、第2データ格納部33から所定の個数の姓及び名を抽出して、第3データ格納部35に格納する。混合部36は、第1データ格納部32に格納されている文字列と、第3データ格納部35に格納されている文字列とを、文字列に含まれる文字の出現順番を維持しつつ混合して、混合した結果を第4データ格納部37に格納する。クエリ送信部38は、第4データ格納部37に格納されているデータを含むクエリを、検索サーバ5に送信する。
The second
検索結果受信部39は、検索サーバ5から検索結果を受信し、第5データ格納部40に格納する。第2抽出部41は、第5データ格納部40に格納されている検索結果から、第1データ格納部32に格納されている顧客の姓名などの文字列に類似する文字列を抽出し、第6データ格納部42に格納する。出力部43は、第6データ格納部42に格納されているデータを、表示装置などの出力装置又はクライアント装置3に接続されている他のコンピュータに出力する。
The search
次に、図1に示したシステムの処理内容を説明する。最初に、図3乃至図19を用いて本実施の形態の概要について説明する。 Next, processing contents of the system shown in FIG. 1 will be described. First, the outline of the present embodiment will be described with reference to FIGS.
本実施の形態では、クライアント端末3は、検索対象の文字列「ワタナベタカシ」の文字とダミー文字列「ヨシダダイキ」及び「ヒロイヨシコ」の文字とをそれらの文字列における出現順番を維持しつつ混合することでクエリ「ヒワロタヨシイナベダヨダタシカイキシコ」を生成して、検索サーバ5に送信する。このように、クエリ自体は秘匿化される。検索サーバ5は、クエリを受信すると、第1DB51及び第2DB52に対して横断的に編集距離が閾値以下の文字列を抽出する。ここでは、「ワタベタカシ」及び「ヒロタタカコ」が抽出されるものとする。すなわち、検索サーバ5側では、「ワタベタカシ」及び「ヒロタタカコ」のいずれかを抽出しようとしたのかが不明である。たとえ1つしか文字列が抽出されない場合であっても、「ワタベタカシ」と「ワタナベタカシ」のように異なる文字列である場合もある。また、「ヒロタタカコ」のみが抽出されることもある。すなわちクエリの結果からもクエリに含まれる文字列を特定できない。なお、クライアント装置3は、検索対象の文字列「ワタナベタカシ」を保持しているので、クエリの結果「ワタベタカシ」及び「ヒロタタカコ」のうち類似する文字列「ワタベタカシ」を抽出することができるようになる。
In the present embodiment, the
本実施の形態は、以下に述べるような比較例に対しても秘匿性の面で有利である。すなわち、図4に示すように、同じようにダミー文字列を用いても混合しないで、「ワタナベタカシ」「ヨシダダイキ」及び「ヒロイヨシコ」を含むクエリを検索サーバ5に出力する。この場合には、検索サーバ5は、第1DB51及び第2DB52に対して編集距離が閾値以下の文字列を横断的に抽出すると、「ワタベタカシ」のみが抽出される。このような場合、本来の検索対象文字列「ワタナベタカシ」は秘匿化されているが、クエリの結果が「ワタベタカシ」がブラックリスト該当者であることが分かってしまうので、クエリに含まれる「ワタナベタカシ」との関係から検索サーバ5側に、クエリに含まれる「ワタナベタカシ」がブラックリストに「ワタベタカシ」で登録されていることが漏洩してしまう。
This embodiment is advantageous in terms of secrecy even with respect to a comparative example as described below. That is, as shown in FIG. 4, a query including “Watanabe Takashi”, “Yoshida Daiki” and “Hiroyoshiko” is output to the
これは以下のような問題があるためである。すなわち、使用するダミー文字列をn個と仮定すると、クエリにはn+1個の文字列が含まれているので、検索サーバ5側から見ると、候補数はn+1個となり、秘匿化がなされている。一方、ダミー文字列を含めたn+1個の文字列に対して、第1DB51及び第2DB52(例えばブラックリスト)においてヒットする文字列数が(n+1)/Bであることが期待される。なお、BはB個のうち1つがブラックリストに含まれる、という割合を表す定数である。
This is because of the following problems. That is, assuming that n dummy character strings are used, the query includes n + 1 character strings, so that when viewed from the
仮に、B=100、すなわち人口の1%がブラックリスト該当者であるとするならば、n=99に設定しなければ、クエリにダミー文字列を含ませてもダミー文字列がヒットすることはない。Bが小さいほど、nの値を大きくしなければダミー文字列がヒットしなくなるので、ダミー文字列をヒットさせようとするとクエリのデータ量が膨大となってしまう。これによって、システム処理効率も低下してしまう。検索サーバ5から見た候補数を、そのままBで除した値がブラックリストにおいてヒットする数であることを考慮すると、nに対して検索サーバ5から見た候補数を効率よく増加させることが好ましい。すなわち、ダミー文字列の数nに対して、検索サーバ5から見た候補数をnに対する線形比例より大きなオーダーの個数に見えるようにする。
If B = 100, that is, if 1% of the population is a blacklist person, if n = 99 is not set, the dummy character string will not be hit even if the query includes the dummy character string. Absent. As B is smaller, the dummy character string will not be hit unless the value of n is increased. Therefore, if the dummy character string is attempted to be hit, the data amount of the query becomes enormous. This also reduces system processing efficiency. Considering that the number obtained by dividing the number of candidates viewed from the
これに対して図3で示したような検索対象文字列とダミー文字列との混合方式を採用すると、検索サーバ5から見た候補数をnに対する線形比例より大きくすることができるようになる。
On the other hand, if the mixed method of the search target character string and the dummy character string as shown in FIG. 3 is adopted, the number of candidates viewed from the
すなわち、図5に示すように、検索対象文字列「タナカコウキ」とダミー文字列「コジマキイチ」とを混合して「タコナカジマキコウイキチ」をクエリとする場合には、検索サーバ5から見ると「コジマキイチ」「タナカコウキ」「コジマコウキ」「タナカキイチ」の4種類の他、「ナカジマコウイチ」等のkmv種類の候補が存在する。すなわち、検索対象文字列とn種類のダミー文字列の合計m=n+1種類の文字列を混合すると、図4に示すような比較例の場合、候補数がmに過ぎないが、本実施の形態では、候補数はm2+kmv(kは定数、vは8以上の定数)となる。
That is, as shown in FIG. 5, when the search target character string “Tanaka Kouki” and the dummy character string “Koji Makiichi” are mixed and used as a query “Takonaka Jima Kikoichi”, when viewed from the
このように、本実施の形態では、候補数はnの8乗以上の関数に比例して飛躍的に増加するため、候補数をnに対する線形比例より大きなオーダーの個数に見えるようにすることができる。 Thus, in the present embodiment, the number of candidates increases dramatically in proportion to a function of n to the 8th power or more, so that the number of candidates can be seen as an order number larger than a linear proportion to n. it can.
なお、m2の項は、m種類の姓とm種類の名とを、姓と名の単位で混合無しで組み合わせた場合の候補数である。kmvの項は、m種類の姓同士を文字列単位で混合した場合と、m種類の名同士を文字列単位で混合した場合の候補数である。m種類の姓同士を文字列単位で混合した場合、u≧4に対してmuに比例した候補数の候補が発生する。m種類の名同士を文字列単位で混合した場合、w≧4に対してmwに比例した候補数の候補が発生する。従って、姓と名の組み合わせでは、これらの積であるmu+w,u+w≧8に比例した候補数となる。 The term m 2 is the number of candidates when m types of surnames and m types of first names are combined without mixing in the last name and first name units. The term km v is the number of candidates when m types of surnames are mixed in character string units and m types of names are mixed in character string units. When mixed m types surnames with each other in a string units, candidate number candidates in proportion to m u occurs for u ≧ 4. When m types of names are mixed in units of character strings, the number of candidates in proportion to m w is generated for w ≧ 4. Therefore, in the combination of surname and surname, the number of candidates is proportional to m u + w and u + w ≧ 8, which are the products of these.
次に、m種類の姓又は名同士を文字列単位で混合した場合の候補数がmの4乗以上に比例する理由を、図6を用いて説明する。 Next, the reason why the number of candidates when m types of surnames or first names are mixed in units of character strings is proportional to m to the fourth power or higher will be described with reference to FIG.
図6は、3文字の名前(姓もしくは名)2種を文字単位で混合した例における候補数を示している。3文字の名前2種を混合した場合、合計で6文字となる。この6文字が、他の名前に一致するパターンは、名前が2乃至4文字で表現できると仮定すると、6文字中2文字が他の名前に一致するパターンと、6文字中3文字が他の名前に一致するパターンと、6文字中4文字が他の名前に一致するパターンの3種に分類される。 FIG. 6 shows the number of candidates in an example in which two types of three-character names (first name or last name) are mixed in units of characters. When two types of three-character names are mixed, the total is six characters. Assuming that these 6 characters match other names, the name can be expressed by 2 to 4 characters. As a result, 2 out of 6 characters match other names and 3 out of 6 characters There are three types of patterns: a pattern that matches the name and a pattern that matches four of the six characters.
これらのうち、6文字中2文字が他の名前に一致するパターンは、6文字中2文字を選別してできるランダムな文字列の組み合わせ総数である6C2に対して、ランダムな2文字の文字列が他の名前に一致する確率定数αを乗じたα6C2となる。但し、aCbはa個の中からb個を選ぶ場合の組み合わせの総数を表す記号であり、aCb=a×(a−1)×・・・×(a−b+1)/(1×2×・・・×b)であり、例えば6C2=6×5/(1×2)=15、6C3=6×5×4/(1×2×3)=20である。 Of these, the pattern in which 2 out of 6 characters match other names is a pattern of random 2 characters compared to 6 C 2 which is the total number of combinations of random character strings obtained by selecting 2 characters out of 6 characters. The character string is α 6 C 2 multiplied by a probability constant α that matches another name. However, a C b is a symbol representing the total number of combinations when b is selected from a , and a C b = a × (a−1) ×... × (a−b + 1) / (1 × 2 ×... Xb), for example, 6 C 2 = 6 × 5 / (1 × 2) = 15, 6 C 3 = 6 × 5 × 4 / (1 × 2 × 3) = 20 .
ランダムな3文字の文字列が他の名前に一致するパターン数は、同様にβ6C3と表される。但し、βはランダムな3文字の文字列が他の名前に一致する確率を表す定数である。さらに、ランダムな4文字の文字列が他の名前に一致するパターン数は、γ6C4と表される。但し、γはランダムな4文字の文字列が他の名前に一致する確率を表す定数である。以上から、候補数は、以下のように表される。
α6C2+β6C3+γ6C4 (1)
The number of patterns in which a random three-character string matches other names is similarly expressed as β 6 C 3 . Where β is a constant representing the probability that a random three-character string matches another name. Furthermore, the number of patterns in which a random four-character string matches another name is expressed as γ 6 C 4 . However, γ is a constant representing the probability that a random four-character string matches another name. From the above, the number of candidates is expressed as follows.
α 6 C 2 + β 6 C 3 + γ 6 C 4 (1)
(1)式は、3文字の名前2種を混合し、合計6文字を用いた場合の候補数であるが、これを2乃至4文字の名前m種類を混合した場合に一般化する。この場合、混合後の文字数の合計はmHと表される。但し、Hは名前の平均文字数であり、2乃至4の間の定数となる。よって、(1)式の「6」を「mH」に置換することで、一般化した場合の候補数が得られる。
αmHC2+βmHC3+γmHC4 (2)
Equation (1) is the number of candidates when two types of three-character names are mixed and a total of six characters are used, but this is generalized when m types of two to four-character names are mixed. In this case, the total number of characters after mixing is expressed as mH. However, H is the average number of characters in the name and is a constant between 2 and 4. Therefore, by replacing “6” in equation (1) with “mH”, the number of candidates when generalized can be obtained.
α mH C 2 + β mH C 3 + γ mH C 4 (2)
aCbの定義から、mHC2はmに関する2次式、mHC3はmに関する3次式、mHC4はmに関する4次式となるので、(2)式はmに関する4次式となる。すなわち、候補数がmの4乗以上に比例する。 From the definition of a C b , mH C 2 is a quadratic expression relating to m, mH C 3 is a cubic expression relating to m, and mH C 4 is a quaternary expression relating to m. It becomes. That is, the number of candidates is proportional to the fourth power of m.
なお、文字列を混合する際には、混合前のそれぞれのn+1個のそれぞれの文字列間の順序関係(すなわち出現順番)を変えないようにする。例えば正しい顧客名「ワタナベ」に対し、ダミー名「ヒロタ」を混合する場合は、以下の2点を守る。
・「ワ」の後に「タ」、「タ」の後に「ナ」、「ナ」の後に「ベ」
・「ヒ」の後に「ロ」、「ロ」の後に「タ」
Note that when character strings are mixed, the order relationship (that is, the appearance order) between the n + 1 character strings before mixing is not changed. For example, when the dummy name “Hirota” is mixed with the correct customer name “Watanabe”, the following two points are observed.
・ After “wa”, “ta”, after “ta”, “na”, after “na”, “be”
・ "Ro" after "Hi", "Ta" after "Ro"
すなわち、「ワタヒロナベタ」や「ワタヒナロベタ」は上記のルールに従うため、正しい混合であるが、「ワタヒロベナタ」「ワタヒナタベロ」では、前者は「ベ」が「ナ」の前、後者は「タ」が「ロ」の前であるため、上記要件を満たした正しい混合ではない。 That is, in order "cotton Hiro pan data" or "cotton arsenide Na B base data" is according to the above rules, but the correct mixing, "cotton Hiro Vena data", "Cotton human na data base b", the former "base "" Before "na", and the latter "right" before "ro", it is not a correct mixture that satisfies the above requirements.
この要件を満たすことで、検索サーバ5において算出される編集距離に、図7に示すような性質が生まれる。
By satisfying this requirement, the edit distance calculated in the
すなわち、検索対象の文字列「タナカコウキ」及び「コジマキイチ」と、ブラックリストに含まれる文字列「タナカコウ」及び「コジマキイチロウ」と、検索対象の文字列を混合した結果の文字列「タコナカジマキコウイキチ」との編集距離を算出する。そうすると、「タナカコウキ」と「タナカコウ」との編集距離は「1」であり、「コジマキイチ」と「コジマキチイロウ」との編集距離は「2」であるとすると、「タコナカジマキコウイキチ」と「タナカコウ」との編集距離は6文字増加した分編集距離も+6となって「7」になる。同様に、「タコナカジマキコウイキチ」と「コジマキチイロウ」との編集距離は6文字増加した分編集距離も+6となって「8」が得られる。すなわち、文字列混合後も相対的な類似度(=編集距離)の大小は基本的に維持されるので、名寄せ処理を行う際に用いる閾値を下げる、すなわち編集距離の閾値を上げることで、編集距離自体の計算には影響を与えずに適切な文字列を抽出できるようになる。 That is, the search target character strings “Tanaka Kukiki” and “Koji Makiichi”, the character strings “Tanaka Kou” and “Koji Makiichi” included in the black list, and the character string “Takana Kagi Kikoui” as a result of mixing the search target character strings. The edit distance from “Kichi” is calculated. Then, if the editing distance between “Tanakakouuki” and “Tanakakou” is “1” and the editing distance between “Koji Makiichi” and “Kojimaki Ichirou” is “2”, “Takana Koji Makiko Ikiichi” and “Tanakakou” The edit distance is increased by 6 characters and the edit distance is +6, so that the edit distance becomes “7”. Similarly, the edit distance between “Takonakajimaki Kouichiki” and “Kojimaki Chihiro” is increased by 6 characters, so that the edit distance is also +6 and “8” is obtained. That is, since the relative similarity (= edit distance) is basically maintained even after character string mixing, the threshold used for name identification processing is lowered, that is, the edit distance is raised to increase the edit distance. An appropriate character string can be extracted without affecting the calculation of the distance itself.
なお、別の文字列の方が編集距離が短くなる場合もある。例えば、「ナカジマコウイチ」という文字列がブラックリストに載っているとすると、こちらの編集距離は「4」となって、「タナカコウ」や「コジマキチイロウ」よりも短くなっている。これは、検索サーバ5においてはフィルタできないので、クライアント装置3側でフィルタリングする。
Note that the edit distance may be shorter for another character string. For example, if the character string “Nakajima Kouichi” is on the black list, the editing distance here is “4”, which is shorter than “Tanaka Kou” and “Koji Maki Chihiro”. Since this cannot be filtered by the
次に、図8乃至図19を用いて図1に示したシステムの具体的な処理内容を説明する。 Next, specific processing contents of the system shown in FIG. 1 will be described with reference to FIGS.
まず、クライアント装置3の入力部31は、検索者からの検索対象文字列の入力を受け付け(ステップS1)、第1データ格納部32に格納する。なお、本実施の形態では、一人分の姓及び名の指定がなされるものとする。すなわち、ここではクエリ姓及びクエリ名とが入力されるものとする。そして、第1抽出部34及び混合部36は、秘匿化処理を実施する(ステップS3)。この秘匿化処理については、図9乃至図13を用いて説明する。
First, the
第1抽出部34は、第2データ格納部33から、k個のダミー姓とk個のダミー名とをランダムに抽出し、第3データ格納部35に格納する(ステップS21)。例えば、第2データ格納部33に登録されているダミー姓リストから、ランダムにk個のダミー姓を抽出する。ダミー姓リストには、複数の姓が登録されている。同様に、第2データ格納部33に登録されているダミー名リストから、ランダムにk個のダミー名を抽出する。ダミー名リストには、複数の名が登録されている。
The
そして、混合部36は、出現順番を維持しつつ、ダミー姓の文字をランダムにクエリ姓Sに挿入する処理を実施し、処理結果を第4データ格納部37に格納する(ステップS23)。また、混合部36は、出現順番を維持しつつ、ダミー名の文字をランダムにクエリ名Gに挿入する処理を実施し、処理結果を第4データ格納部37に格納する(ステップS25)。そして呼出元の処理に戻る。
And the mixing
ステップS23では、クエリ姓に含まれる文字の出現順番を維持するように、ダミー姓についてもそのダミー姓に含まれる文字をその出現順番に従って挿入する。すなわち、k個のダミー姓については、1つのダミー姓についての処理が完了しないと他のダミー姓の処理には移行しない。ステップS25では、クエリ名に含まれる文字の出現順番を維持するように、ダミー名についてもそのダミー名に含まれる文字をその出現順番に従って挿入する。k個のダミー名は、任意の順番(例えば抽出順番)に1つずつ処理される。 In step S23, in order to maintain the appearance order of the characters included in the query surname, the characters included in the dummy surname are also inserted according to the appearance order. That is, for k dummy surnames, the processing for one dummy surname is not completed until the processing for another dummy surname is completed. In step S25, in order to maintain the appearance order of characters included in the query name, the characters included in the dummy name are also inserted according to the appearance order. The k dummy names are processed one by one in an arbitrary order (eg, extraction order).
ステップS23は、例えば図10及び図11に示すような処理フローで処理される。 Step S23 is processed by a processing flow as shown in FIGS. 10 and 11, for example.
まず、混合部36は、変数s_lenにクエリ姓Sの文字数を代入する(ステップS31)。また、混合部36は、カウンタiを0に初期化する(ステップS33)。また、混合部36は、変数sd_lenに、i番目のダミー姓Saiの文字数を代入し、混合後の文字列の配列TにNULL文字を入力し、カウンタjx及びjyを0に初期化する(ステップS35)。さらに、混合部36は、jを0に初期化する(ステップS37)。
First, the mixing
その後、混合部36は、0以上1以下の乱数bを生成し(ステップS39)、bがs_len/(s_len+sd_len)以上であるか否かを判断する(ステップS41)。すなわち、Sの文字数とダミー姓Saiの文字数との和に対するSの文字数の比がb以上であるか否かを判断する。
Thereafter, the mixing
この条件を満たす場合には、混合部36は、T[j]にSのjx番目の文字を設定し、jを1インクリメントすると共にjxについても1インクリメントする(ステップS43)。そして処理は端子Aを介して図11の処理に移行する。一方、ステップS41の条件を満たさない場合には、混合部36は、T[j]にダミー姓Saiのjy番目の文字を設定し、jを1インクリメントすると共にjyについても1インクリメントする(ステップS45)。そして処理は端子Aを介して図11の処理に移行する。
If this condition is satisfied, the mixing
図11の処理の説明に移行して、混合部36は、jxがs_lenとなったか判断する(ステップS47)。すなわち、Sの最後の文字まで処理したか判断する。jxがs_lenとなった場合には、混合部36は、T[j+1]=Sai[jy+1],..,T[s_len+sd_len−1]=Sai[sd_len−1]と設定する(ステップS49)。すなわち、ダミー姓Saiにおける未処理の文字をその順番で配列Tに設定する。そして処理はステップS57に移行する。
Shifting to the description of the processing in FIG. 11, the mixing
一方、jx=s_lenではない場合、混合部36は、jy=sd_lenとなったか判断する(ステップS51)。すなわち、ダミー姓Saiの最後の文字まで処理したか判断する。jy=sd_lenとなった場合には、混合部36は、T[j+1]=S[jx+1],..,T[s_len+sd_len−1]=S[s_len−1]と設定する(ステップS53)。すなわち、Sにおける未処理の文字をその順番で配列Tに設定する。そして処理はステップS57に移行する。
On the other hand, when jx = s_len is not satisfied, the mixing
一方、jy=sd_lenでもない場合には、混合部36は、jがs_len+sd_len−1より大きくなっているか判断する(ステップS55)。この条件を満たさない場合には、端子Bを介して図10のステップS39に戻る。一方、この条件を満たす場合には、ステップS57に移行する。
On the other hand, when jy = sd_len is not satisfied, the mixing
ステップS57に移行すると、混合部36は、SにTを代入し、s_lenにs_len+sd_lenを代入する(ステップS57)。すなわち、ダミー名Saiとの混合結果をSと設定して、次のダミー名Sa(i+1)との混合処理を実施する。また、混合部36は、iを1インクリメントする(ステップS59)。その後、混合部36は、iがk−1より大きくなったか判断する(ステップS61)。iがk−1より大きくない場合には、端子Cを介して残りのダミー姓Saiについての処理を行うため、図10のステップS35に戻る。一方、iがk−1より大きくなった、すなわち全てのダミー姓Saiについての混合処理が完了した場合には、呼出元の処理に戻る。
In step S57, the mixing
このようにすれば、クエリ姓S及びダミー姓Sai共に包含される各文字の出現順番を維持しつつ混合することができるようになる。 If it does in this way, it will become possible to mix, maintaining the order of appearance of each character included in both query surname S and dummy surname Sai.
次に、ステップS25は、例えば図12及び図13に示すような処理フローで処理される。 Next, step S25 is processed by a processing flow as shown in FIGS. 12 and 13, for example.
まず、混合部36は、変数g_lenにクエリ名Gの文字数を代入する(ステップS71)。また、混合部36は、カウンタiを0に初期化する(ステップS73)。また、混合部36は、変数gd_lenに、i番目のダミー名Gaiの文字数を代入し、混合後の文字列の配列TにNULL文字を入力し、カウンタjx及びjyを0に初期化する(ステップS75)。さらに、混合部36は、jを0に初期化する(ステップS77)。
First, the mixing
その後、混合部36は、0以上1以下の乱数bを生成し(ステップS79)、bがg_len/(g_len+gd_len)以上であるか否かを判断する(ステップS81)。すなわち、クエリ名Gの文字数とダミー名Gaiの文字数との和に対するクエリ名Gの文字数の比がb以上であるか否かを判断する。
Thereafter, the mixing
この条件を満たす場合には、混合部36は、T[j]にクエリ名Gのjx番目の文字を設定し、jを1インクリメントすると共にjxについても1インクリメントする(ステップS83)。そして処理は端子Dを介して図13の処理に移行する。一方、ステップS81の条件を満たさない場合には、混合部36は、T[j]にダミー名Gaiのjy番目の文字を設定し、jを1インクリメントすると共にjyについても1インクリメントする(ステップS85)。そして処理は端子Dを介して図13の処理に移行する。
When this condition is satisfied, the mixing
図13の処理の説明に移行して、混合部36は、jxがg_lenとなったか判断する(ステップS87)。すなわち、Gの最後の文字まで処理したか判断する。jxがg_lenとなった場合には、混合部36は、T[j+1]=Gai[jy+1],..,T[g_len+gd_len−1]=Gai[gd_len−1]と設定する(ステップS89)。すなわち、ダミー名Gaiにおける未処理の文字をその順番で配列Tに設定する。そして処理はステップS97に移行する。
Shifting to the description of the processing in FIG. 13, the mixing
一方、jx=g_lenではない場合、混合部36は、jy=gd_lenとなったか判断する(ステップS91)。すなわち、ダミー名Gaiの最後の文字まで処理したか判断する。jy=gd_lenとなった場合には、混合部36は、T[j+1]=G[jx+1],..,T[g_len+gd_len−1]=G[g_len−1]と設定する(ステップS93)。すなわち、Gにおける未処理の文字をその順番で配列Tに設定する。そして処理はステップS97に移行する。
On the other hand, when jx = g_len is not satisfied, the mixing
一方、jy=gd_lenでもない場合には、混合部36は、jがg_len+gd_len−1より大きくなっているか判断する(ステップS95)。この条件を満たさない場合には、端子Eを介して図12のステップS79に戻る。一方、この条件を満たす場合には、ステップS97に移行する。
On the other hand, when jy = gd_len is not satisfied, the mixing
ステップS97に移行すると、混合部36は、GにTを代入し、g_lenにg_len+gd_lenを代入する(ステップS97)。すなわち、ダミー名Gaiとの混合結果をGと設定して、次のダミー名Ga(i+1)との混合処理を実施する。また、混合部36は、iを1インクリメントする(ステップS99)。その後、混合部36は、iがk−1より大きくなったか判断する(ステップS101)。iがk−1より大きくない場合には、端子Fを介して残りのダミー名Gaiについての処理を行うため、図12のステップS75に戻る。一方、iがk−1より大きくなった、すなわち全てのダミー名Gaiについての混合処理が完了した場合には、呼出元の処理に戻る。
In step S97, the mixing
このようにすれば、クエリ名G及びダミー名Gai共に包含される各文字の出現順番を維持しつつ混合することができるようになる。 If it does in this way, it will become possible to mix, maintaining the order of appearance of each character included in both query name G and dummy name Gai.
図8の処理の説明に戻って、クエリ送信部38は、第4データ格納部37に格納されている、混合処理後のクエリ姓及びクエリ名を連結して、当該クエリ姓及びクエリ名を含むクエリを、検索サーバ5に送信する(ステップS5)。
Returning to the description of the processing in FIG. 8, the
これに対して、検索サーバ5は、クライアント装置3からクエリを受信し(ステップS7)、検索処理を実施する(ステップS9)。検索処理は、例えば図14に示すような処理である。
On the other hand, the
検索サーバ5は、第1DB51及び第2DB52等における未処理の被検索文字列を1つ読み出す(ステップS111)。そして、検索サーバ5は、クエリと被検索文字列との編集距離を算出する(ステップS113)。
The
編集距離の算出には、Levenshtein distanceと呼ばれる手法が一般的に用いられる。この手法の処理フローを図15乃至図19を用いて説明する。 A method called Levenshtein distance is generally used to calculate the edit distance. The processing flow of this method will be described with reference to FIGS.
検索サーバ5は、文字列str_1[1,..,Xmax]及びstr_2[1,...,Ymax]に、クエリの文字列と被検索文字列とを設定する(ステップS121)。また、検索サーバ5は、初期設定として、d[x,0]=Dのx倍、d[0,y]=Iのy倍を、0≦x≦Xmax及び0≦y≦Ymaxについて設定する(ステップS123)。Dは、削除コストの重みであり、Iは挿入コストの重みである。
The
例えば、「ワタナベ」と「ワタベ」との間についての編集距離を算出する場合を一例として説明する。d[x,y]という配列は、図16に示すような配列である。すなわち、各文字列の先頭に空白を挿入した状態で、両文字列を一致させるためにどのように修正するのか、すなわち「修正文字数×修正操作の重み」について文字毎に登録するものである。例えば、「 ワタベ」の先頭空白と「 ワタナベ」の先頭空白とは、一致しているのでd[0,0]=0であり、「 ワタベ」の先頭空白と「 ワタナベ」の「 ワ」とでは後者を1文字削除すれば一致するので、d[1,0]=1Dとなる。「 ワタベ」の先頭空白と「 ワタナベ」の「 ワタ」とでは後者を2文字削除すれば一致するので、d(2,0)=2Dとなる。以下同様である。一方、「 ワタベ」の「 ワ」と「 ワタナベ」の先頭空白とでは後者に「ワ」を挿入すると一致するので、d[0,1]=1Iとなる。「 ワタベ」の「 ワタ」と「 ワタナベ」の先頭空白とでは後者に「ワタ」を挿入すると一致するので、d[0,2]=2Iとなる。以下同様である。 For example, a case where the edit distance between “Watanabe” and “Watabe” is calculated will be described as an example. The arrangement d [x, y] is an arrangement as shown in FIG. In other words, how to correct both character strings in a state where a blank is inserted at the beginning of each character string, that is, “number of corrected characters × weight of correction operation” is registered for each character. For example, the leading blank of “Watabe” and the leading blank of “Watanabe” match, so d [0,0] = 0, and the leading blank of “Watabe” and “wa” of “Watanabe” If one character is deleted from the latter, they match, so d [1, 0] = 1D. The leading blank of “Watabe” and “Watabe” of “Watanabe” match if the latter two characters are deleted, so d (2, 0) = 2D. The same applies hereinafter. On the other hand, “W” of “Watabe” and the leading blank of “Watanabe” match when “wa” is inserted into the latter, so d [0, 1] = 1I. Since “Wata” of “Watabe” and the leading blank of “Watanabe” match when “Wata” is inserted into the latter, d [0, 2] = 2I. The same applies hereinafter.
また、検索サーバ5は、y=1に設定し(ステップS125)、さらにx=1を設定する(ステップS127)。
The
その後、検索サーバ5は、str_1[x]=str_2[y]であるか否かを判断する(ステップS129)。str_1[x]=str_2[y]であれば、検索サーバ5は、d[x,y]=min(d[x,y−1]+I,d[x−1,y−1],d[x−1,y]+D)と設定する(ステップS131)。そしてステップS135に移行する。一方、str_1[x]=str_2[y]でなければ、検索サーバ5は、d[x,y]=min(d[x,y−1]+I,d[x−1,y−1]+S,d[x−1,y]+D)と設定する(ステップS133)。そしてステップS135に移行する。
Thereafter, the
このアルゴリズムでは、図17に示すように、右下のマスMのコストを算出する場合には、Mの上のマスの文字列から1文字挿入することで一致させる場合のコスト(Mの上のマスのコスト+1文字挿入コストI)と、Mの左斜め上のマスの文字列の最後の文字を1文字置換することで一致させる場合のコスト(Mの左斜め上のマスのコスト+1文字置換コストS)と、Mの左のマスの最後の文字を1文字削除することで一致させる場合のコスト(Mの左のマスのコスト+1文字削除コストD)とのうち最小のコストを採用する。但し、処理に係る文字が両文字列で一致する場合には、Mの左斜め上のマスのコストに加えるべき置き換えコストSは0となるので、ステップS131とS133との差が生じている。 In this algorithm, as shown in FIG. 17, when calculating the cost of the lower right cell M, the cost for matching by inserting one character from the character string of the cell above M (above M) The cost of matching the cell cost + 1 character insertion cost I) with the replacement of the last character in the upper left square character string by replacing one character (the cost of the upper left diagonal cell + 1 character replacement) The minimum cost is adopted between the cost S) and the cost (M cost of the left cell of M + 1 character deletion cost D) in the case of matching by deleting the last character of the left cell of M by one character. However, if the characters related to the process match in both character strings, the replacement cost S to be added to the cost of the upper left square of M is 0, so that there is a difference between steps S131 and S133.
そして、検索サーバ5は、xを1インクリメントして(ステップS135)、xがXmaxを超えたか判断する(ステップS137)。xがXmax以下であれば、処理はステップS129に戻る。一方、xがXmaxを超えていると、端子Gを介して図18の処理に移行する。
Then, the
図18の処理の説明に移行して、検索サーバ5は、yを1インクリメントして(ステップS139)、yがYmaxを超えているか判断する(ステップS141)。yがYmax以下であれば、端子Hを介して処理は図15のステップS127に戻る。一方、yがYmaxを超えていれば、検索サーバ5は、d[Xmax,Ymax]を、編集距離として出力する(ステップS143)。そして処理は呼出元の処理に戻る。
Shifting to the description of the processing in FIG. 18, the
このようにすれば、例えば図19に示すように、矢印の順番で処理を行って、図17で示したように3つのマスのコストから各マスのコストを算出して、最後にd[4,3]のコストが最終的な編集距離となる。なお、ハッチング付きのマスについてはステップS131で編集距離が決定されたマスである。 In this way, for example, as shown in FIG. 19, processing is performed in the order of the arrows, and as shown in FIG. 17, the cost of each square is calculated from the cost of the three squares, and finally d [4 , 3] is the final edit distance. Note that hatched squares are squares whose edit distance is determined in step S131.
図14の処理の説明に戻って、検索サーバ5は、算出された編集距離が閾値以下であるか否かを判断する(ステップS115)。本実施の形態では、クエリの文字列に含まれる文字数Qと、被検索文字列に含まれる文字の文字数Lと、本来の閾値Eとから、Q−L+Eを閾値として採用する。Q−Lは、混合処理による閾値のオフセットを示している。但し、例えば本来の検索対象文字列に含まれる文字の文字数をLとして、クライアント装置3からクエリにより検索サーバ5に送信することにして、閾値決定に用いるようにしても良い。
Returning to the description of the processing in FIG. 14, the
編集距離が閾値を超えていれば処理はステップS119に移行する。一方、編集距離が閾値以下であれば、検索サーバ5は、検索結果に、被検索文字列を追加する(ステップS117)。そして、検索サーバ5は、第1DB51及び第2DB52等において未処理の被検索文字列が存在するか判断し(ステップS119)、未処理の被検索文字列が存在すれば処理はステップS111に戻る。一方、未処理の被検索文字列が存在しない場合には、処理は呼出元の処理に戻る。
If the edit distance exceeds the threshold, the process proceeds to step S119. On the other hand, if the edit distance is equal to or smaller than the threshold, the
このような処理を実施すれば、混合処理の影響で伸びた編集距離を勘案した閾値をベースに、編集距離が閾値以下の文字列を抽出することができるようになる。 If such a process is performed, it becomes possible to extract a character string having an edit distance equal to or less than the threshold based on a threshold that takes into account the edit distance that has increased due to the influence of the mixing process.
図8の処理の説明に戻って、検索サーバ5は、検索結果を、クエリの送信元のクライアント装置3に返信する(ステップS11)。クライアント装置3の検索結果受信部39は、検索結果を受信すると、第5データ格納部40に格納する(ステップS13)。第2抽出部41は、第1データ格納部32に格納されている検索対象文字列から、クエリに対応する検索結果を、第5データ格納部40に格納されている検索結果を抽出し、第6データ格納部42に格納する(ステップS15)。そして、出力部43は、第6データ格納部42に格納されているデータを、出力装置その他の装置に出力する。
Returning to the description of the processing in FIG. 8, the
ステップS15の処理は、どのような処理であっても良いが、例えば再度検索対象文字列と検索結果に含まれる文字列との編集距離で判断するようにしても良い。 The process in step S15 may be any process. For example, the determination may be made again based on the edit distance between the search target character string and the character string included in the search result.
このようにすれば、クエリを秘匿化して、さらに検索結果についても秘匿化することができるようになる。 In this way, it is possible to conceal the query and also conceal the search result.
[実施の形態2]
第1の実施の形態では、ダミー文字列をランダムに選んでいた。これでも十分な秘匿化が可能であるが、本実施の形態では、文字間の共起を考慮したダミー文字列の選択を行うことで、検索サーバ5側から見た候補数を増加させ、秘匿化の効果を高める。
[Embodiment 2]
In the first embodiment, a dummy character string is randomly selected. Although this can be sufficiently concealed, in this embodiment, by selecting dummy character strings in consideration of co-occurrence between characters, the number of candidates seen from the
本実施の形態の内容を詳細に説明する前に、文字間の共起を利用したプライバシ保護効果の向上の考え方について述べる。「共起」とは、文字間の発生頻度の相関の強さを表す。例えば、「タナカ」「タジマ」などの姓が頻出する場合、「タ」に対して「ナカ」は接尾語として相関の高い文字であり、「タ」に対して「ジマ」も接尾語として相関の高い文字である。また、「サトウ」「カトウ」「サイトウ」「イトウ」などの姓が頻出する場合、「トウ」に対して「サ」「カ」「サイ」「イ」が接頭語として相関の高い文字である。この相関の強さを「共起率」と呼ぶ。相関が高い場合は「共起率が高い」と呼び、相関が低い場合は「共起率が低い」と呼ぶ。この共起率を考慮したダミー文字列の選択を行うことで、検索サーバ5側から見た候補数がさらに増加するため、秘匿化をさらに向上させることが出来る。
Before describing the details of this embodiment in detail, the concept of improving the privacy protection effect using co-occurrence between characters will be described. “Co-occurrence” represents the strength of correlation of occurrence frequency between characters. For example, if surnames such as “Tanaka” and “Tajima” appear frequently, “Naka” is a highly correlated character for “Ta” and “Jima” is also correlated as a suffix for “Ta”. Is a high character. Also, when surnames such as “Sato”, “Kato”, “Saito” and “Ito” appear frequently, “S”, “K”, “Sai” and “I” are prefixed characters with high correlation. . The strength of this correlation is called “co-occurrence rate”. When the correlation is high, it is called “high co-occurrence rate”, and when the correlation is low, it is called “low co-occurrence rate”. By selecting the dummy character string in consideration of the co-occurrence rate, the number of candidates viewed from the
上でも述べたが、「トウ」に対して「サ」「カ」「イ」の共起率が高い。すなわち、「サトウ」を秘匿化した結果が「イトウ」や「カトウ」にも見えることが、秘匿化としては望ましい。すなわち、「サトウ」を秘匿化する場合は、共起率が高い「イ」「カ」の文字をなるべく多く含むダミー文字列が望ましい。但し、「サ」は共起率が高いが、除外する。 As mentioned above, the co-occurrence rate of “sa”, “f” and “b” is higher than “to”. That is, it is desirable for concealment that the result of concealing “Sato” is also visible to “Ito” and “Kato”. That is, when concealing “Sato”, a dummy character string including as many “I” and “K” characters as possible with a high co-occurrence rate is desirable. However, “sa” has a high co-occurrence rate, but is excluded.
共起率を考慮しない場合として、これらの文字を含まない「マチダ」がダミー文字列として選ばれる場合がある。この秘匿化結果は「マサチトウダ」となるが、この秘匿化結果を検索サーバ5から見ると、「マチダ」もしくは「サトウ」の2種類が候補名となる。
As a case where the co-occurrence rate is not considered, “Machida” that does not include these characters may be selected as a dummy character string. The concealment result is “Masachi Toda”, but when this concealment result is viewed from the
共起率を考慮した場合、「イ」「カ」を多く含む「カイヤ」がダミー文字列として選ばれる。この秘匿化結果は「カサイヤトウ」となるが、検索サーバ5側から見た場合、「カトウ」「サトウ」「イトウ」「サイトウ」「カイヤ」「カサイ」の6種類が候補名となる。このように、検索結果に多くの文字列が含まれるようになれば、それだけ検索結果から検索対象文字列の漏洩を防止できるようになる。
When the co-occurrence rate is taken into consideration, “Kaya” including many “I” and “K” is selected as a dummy character string. The concealment result is “Kasaiya Tou”, but when viewed from the
本実施の形態のように共起率を用いる場合には、図20及び図21のような姓についての共起テーブル及び名についての共起テーブルを、第2データ格納部33に追加で格納しておく。そして、第1抽出部34が、第1データ格納部32に格納されている検索対象文字列に基づき、共起率が高い文字又は文字列を抽出して、当該抽出された文字又は文字列を含む姓及び名をさらに抽出する。
When the co-occurrence rate is used as in the present embodiment, a co-occurrence table for surnames and a co-occurrence table for first names as shown in FIGS. 20 and 21 are additionally stored in the second
図20は、姓についての共起テーブルの一例を示す。図20の例では、姓に「トウ」などの文字又は文字列が出現した場合に共起率が閾値以上となる文字又は文字列「サ」などが登録されている。同様に、図21は、名についての共起テーブルの一例を示す。図21の例では、名に「ロウ」などの文字又は文字列が出現した場合に共起率が閾値以上となる文字又は文字列「イチ」などが登録されている。 FIG. 20 shows an example of a co-occurrence table for surnames. In the example of FIG. 20, a character or character string “sa” or the like whose co-occurrence rate is equal to or greater than a threshold when a character or character string such as “to” appears in the last name is registered. Similarly, FIG. 21 shows an example of a co-occurrence table for names. In the example of FIG. 21, when a character or character string such as “low” appears in the name, a character or character string “ichi” or the like whose co-occurrence rate is equal to or greater than a threshold is registered.
また、図9の秘匿化処理は、図22に示すような処理に変更される。 Further, the concealment process in FIG. 9 is changed to a process as shown in FIG.
第1抽出部34は、第1データ格納部32に格納されている検索対象文字列の姓Sと名Gについて、共起テーブルから共起率が閾値以上の文字又は文字列(共起文字と呼ぶ)Scp(0≦p≦P−1)及びGcq(0≦q≦Q−1)を抽出する(ステップS201)。但し、姓Sにおいて共起文字が出現している場合にはその共起文字は採用しない。また、名Gについても同様である。例えば、検索対象文字列の姓Sが「イトウ」の場合には、「トウ」の接頭語「イ」については、共起文字として抽出しない。
For the surname S and surname G of the search target character string stored in the first
そして、第1抽出部34は、ダミー姓の抽出処理を実施する(ステップS203)。このダミー姓の抽出処理については、図23を用いて説明する。
Then, the
まず、第1抽出部34は、iを1に初期化し(ステップS211)、ダミー文字列(ダミー姓の抽出処理であれば姓)をランダムに1つ選択する(ステップS213)。そして、第1抽出部34は、選択したダミー文字列に含まれる共起文字(Scp又はScq)の文字数を計数する(ステップS215)。「サトウ」の「トウ」について共起率が閾値以上の共起文字として「イ」「カ」が特定されたものとする。この場合、「カイヤ」というダミー文字列については共起文字の個数は「2」となる。また、「ヒロイ」というダミー文字列については共起文字の個数は「1」となる。
First, the
そして、第1抽出部34は、計数された文字数が閾値以上であるか判断する(ステップS217)。ダミー文字列に含まれる文字数に対する計数文字数の割合で判断しても良い。
Then, the
文字数が閾値未満であれば、このダミー文字列を不採用として処理はステップS223に移行する。一方、文字数が閾値以上であれば、第1抽出部34は、ダミー文字列をSai又はGaiに設定する(ステップS219)。ダミー姓の抽出処理であればSaiに設定し、ダミー名の抽出処理であればGaiに設定する。そして、第1抽出部34は、iを1インクリメントする(ステップS221)。さらに、第1抽出部34は、iがNを超えているか判断し(ステップS223)、iがN以下であれば処理はステップS213に戻る。一方、iがNを超えていれば、呼出元の処理に戻る。
If the number of characters is less than the threshold value, the dummy character string is not adopted and the process proceeds to step S223. On the other hand, if the number of characters is equal to or greater than the threshold, the
このように図23の処理フローでは、どのような共起文字でも各ダミー文字列において閾値個数以上の文字が含まれていることを担保しているが、本処理はこれに限定されるものではない。例えば、n個のダミー文字列を抽出するのであれば、n個のうち80%といった所定の閾値を超える割合で共起文字が含まれているダミー文字列が抽出できればよいという場合もある。さらに、できるだけ共起文字の全ての種類がダミー文字列に含まれる方が好ましいので、共起文字のカバー率が所定の閾値以上になるようにダミー文字列を抽出するようにしても良い。 As described above, in the processing flow of FIG. 23, it is ensured that any co-occurrence character includes more than the threshold number of characters in each dummy character string, but this processing is not limited to this. Absent. For example, if n dummy character strings are to be extracted, it may be sufficient to extract dummy character strings that include co-occurrence characters at a rate exceeding a predetermined threshold, such as 80% of n characters. Furthermore, since it is preferable that all types of co-occurrence characters are included in the dummy character string as much as possible, the dummy character string may be extracted so that the coverage rate of the co-occurrence characters is equal to or higher than a predetermined threshold.
図22の処理の説明に戻って、第1抽出部34は、ダミー名の抽出処理を実施する(ステップS205)。この処理は、図23に示した処理をダミー名について実施する。
Returning to the description of the processing in FIG. 22, the
そして、混合部36は、出現順番を維持しつつ、ダミー姓の文字をランダムにクエリ姓Sに挿入する処理を実施し、処理結果を第4データ格納部37に格納する(ステップS207)。また、混合部36は、出現順番を維持しつつ、ダミー名の文字をランダムにクエリ名Gに挿入する処理を実施し、処理結果を第4データ格納部37に格納する(ステップS209)。そして呼出元の処理に戻る。ステップS207及びS209については、図10及び図13の処理フローで処理される。
Then, the mixing
このようにすれば、検索サーバ5の処理結果である検索結果に、ダミー文字列由来の検索結果が含まれる可能性が高まり、結果として検索結果についての秘匿化も向上する。
In this way, the search result that is the processing result of the
以上本技術の実施の形態を説明したが、本技術はこれらに限定されるものではない。 Although the embodiments of the present technology have been described above, the present technology is not limited to these.
例えば図2の機能ブロック図は一例であって必ずしも実際のプログラムモジュール構成と一致しない場合もある。また、処理フローについても処理結果が変わらない限り、ステップを並列に実行したり、実行順序を入れ替えたりすることができる。 For example, the functional block diagram of FIG. 2 is an example and may not necessarily match the actual program module configuration. As for the processing flow, as long as the processing result does not change, the steps can be executed in parallel or the execution order can be changed.
また、クライアント装置3及び検索サーバ5の機能は、1台のコンピュータで実施される場合もあれば、複数台のコンピュータで実施される場合もある。
Further, the functions of the
なお、上で述べたクライアント装置3及び検索サーバ5は、コンピュータ装置であって、図24に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
The
以上述べた本実施の形態をまとめると、以下のようになる。 The above-described embodiment can be summarized as follows.
本実施の形態に係る情報処理方法は、(A)検索対象として指定された第1の文字列に対して混合すべき1又は複数の第2の文字列を取得する取得処理と、(B)第1の文字列に含まれる複数の文字の出現順番又は順序関係及び1又は複数の第2の文字列に含まれる複数の文字の出現順番又は順序関係を維持しつつ第1の文字列に対して1又は複数の第2の文字列を混合することで第3の文字列を生成し、データ格納部に格納する処理と、(C)データ格納部に格納されている第3の文字列を含むクエリを、編集距離を用いて文字列検索を行う検索コンピュータに対して出力する処理とを含む。 The information processing method according to the present embodiment includes (A) an acquisition process for acquiring one or a plurality of second character strings to be mixed with a first character string designated as a search target, and (B) For the first character string while maintaining the appearance order or order relationship of the plurality of characters included in the first character string and the appearance order or order relationship of the plurality of characters included in the one or more second character strings A process of generating a third character string by mixing one or a plurality of second character strings and storing the third character string in the data storage unit; and (C) a third character string stored in the data storage unit. And a process of outputting a query including the query to a search computer that performs a character string search using the edit distance.
このようにすればクエリ自体が秘匿化され、検索コンピュータにおいて検出される検索結果についても真の検索結果を特定できないため、クエリの秘匿化がなされる。 In this way, the query itself is concealed, and since the true search result cannot be specified for the search result detected by the search computer, the query is concealed.
また、本実施の形態に係る情報処理方法は、(D)検索コンピュータから、複数の第4の文字列を含む検索結果を受信した場合、複数の第4の文字列から、第1の文字列に対応する文字列を抽出する処理をさらに含むようにしても良い。単に、複数の第4の文字列を検索者に提示しても、第1の文字列が分かっているので抽出できるが、このように自動的に抽出するようにしても良い。 Further, in the information processing method according to the present embodiment, (D) when a search result including a plurality of fourth character strings is received from the search computer, the first character string is calculated from the plurality of fourth character strings. A process of extracting a character string corresponding to may be further included. Even if a plurality of fourth character strings are simply presented to the searcher, the first character string can be extracted because it is known, but it may be automatically extracted in this way.
また、上で述べた取得処理が、(a1)文字又は文字列毎に共起率が閾値以上の文字又は文字列が対応付けられて格納されている第2のデータ格納部から、第1の文字列に含まれる文字又は文字列について対応付けられている文字又は文字列であって第1の文字列に含まれない文字又は文字列を抽出する処理と、(a2)抽出された文字又は文字列の少なくともいずれかを含む1又は複数の第2の文字列を取得する第2の取得処理とを含むようにしても良い。このようにすることで、検索結果に第1の文字列との関係が薄い文字列が検索結果に入りやすくなるため、検索結果の秘匿化も向上する。 In addition, the acquisition process described above is performed by (a1) from the second data storage unit in which characters or character strings having a co-occurrence rate equal to or greater than a threshold value are associated with each character or character string, A process of extracting a character or character string associated with the character or character string included in the character string and not included in the first character string, and (a2) the extracted character or character A second acquisition process of acquiring one or a plurality of second character strings including at least one of the columns. By doing in this way, since it becomes easy to enter into a search result the character string with a thin relationship with a 1st character string in a search result, concealment of a search result is also improved.
また、上で述べた取得処理が、(a11)文字又は文字列毎に共起率が閾値以上の文字又は文字列が対応付けられて格納されている第2のデータ格納部から、第1の文字列に含まれる文字又は文字列について対応付けられている文字又は文字列であって第1の文字列に含まれない文字又は文字列を抽出する処理と、(a12)抽出された文字又は文字列を用いて第2の文字列を選択する選択処理とを含むようにしても良い。この場合、上で述べた選択処理が、(a12−1)抽出された文字又は文字列のうち、1つの第2の文字列に含まれる文字又は文字列の数又は割合が第1の所定値以上となるように、第2の文字列を選択する処理、(a12−2)第2の文字列の選択総数が予め設定されている場合に、抽出された文字又は文字列の少なくともいずれかを含む第2の文字列の、選択総数に対する割合が第2の所定値以上であるように、選択総数分の第2の文字列を取得する処理、又は(a12−3)抽出された文字又は文字列が複数種類であり、第2の文字列が複数である場合、抽出された文字又は文字列のうち当該複数の第2の文字列に含まれる文字又は文字列の種類の数又は割合が第3の所定値以上となるように、複数の第2の文字列を選択する処理を含むようにしても良い。第2の文字列については様々な選択方法がある。 In addition, the acquisition process described above is performed from the second data storage unit (a11) in which a character or character string having a co-occurrence rate equal to or greater than a threshold value is stored in association with each character or character string. A process of extracting a character or character string associated with the character or character string included in the character string and not included in the first character string, and (a12) the extracted character or character And a selection process for selecting the second character string using the column. In this case, the selection process described above is (a12-1) Among the extracted characters or character strings, the number or ratio of characters or character strings included in one second character string is a first predetermined value. As described above, the process of selecting the second character string, (a12-2) When the total number of second character strings to be selected is set in advance, at least one of the extracted characters or character strings is A process of obtaining a second character string corresponding to the total number of selections, or (a12-3) an extracted character or character so that the ratio of the second character string to be included is greater than or equal to a second predetermined value When there are a plurality of types of strings and a plurality of second character strings, the number or ratio of the types of characters or character strings included in the plurality of second character strings among the extracted characters or character strings is Including a process of selecting a plurality of second character strings so as to be equal to or greater than a predetermined value of 3. It may be so. There are various selection methods for the second character string.
また、編集距離に対する閾値が第3の文字列の文字数に基づき決定されるか、編集距離に対する閾値が第3の文字列の文字数及び第1の文字列の文字数に基づき決定されるようにしても良い。編集距離の性質に基づくものである。 The threshold for the edit distance may be determined based on the number of characters in the third character string, or the threshold for the edit distance may be determined based on the number of characters in the third character string and the number of characters in the first character string. good. This is based on the nature of edit distance.
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。 It is possible to create a program for causing a computer to carry out the processing described above, such as a flexible disk, an optical disk such as a CD-ROM, a magneto-optical disk, and a semiconductor memory (for example, ROM). Or a computer-readable storage medium such as a hard disk or a storage device.
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。 The following supplementary notes are further disclosed with respect to the embodiments including the above examples.
(付記1)
コンピュータが実行する情報処理方法であって、
検索対象として指定された第1の文字列に混合する第2の文字列を取得する取得処理と、
前記第1の文字列に含まれる複数の文字の順序関係と、前記第2の文字列に含まれる複数の文字の順序関係とを維持しつつ、前記第1の文字列に対して前記第2の文字列を混合することで第3の文字列を生成し、データ格納部に格納する処理と、
前記データ格納部に格納されている前記第3の文字列を含むクエリを、編集距離を用いて文字列検索を行う検索コンピュータに対して出力する処理と、
を含む情報処理方法。
(Appendix 1)
An information processing method executed by a computer,
An acquisition process for acquiring a second character string mixed with the first character string designated as a search target;
While maintaining the order relationship between the plurality of characters included in the first character string and the order relationship between the plurality of characters included in the second character string, the second character string is compared with the second character string. Generating a third character string by mixing the character strings and storing the third character string in the data storage unit;
A process of outputting a query including the third character string stored in the data storage unit to a search computer that performs a character string search using an edit distance;
An information processing method including:
(付記2)
前記コンピュータが、前記検索コンピュータから、複数の第4の文字列からなる検索結果を受信し、前記複数の第4の文字列から、前記第1の文字列に対応する文字列を抽出する処理
をさらに含む付記1記載の情報処理方法。
(Appendix 2)
A process in which the computer receives a search result including a plurality of fourth character strings from the search computer and extracts a character string corresponding to the first character string from the plurality of fourth character strings; The information processing method according to
(付記3)
前記取得処理は、
文字又は文字列毎に共起率が閾値以上の文字又は文字列が対応付けられて格納されている第2のデータ格納部から、前記第1の文字列に含まれる文字又は文字列について対応付けられている文字又は文字列であって前記第1の文字列に含まれない文字又は文字列を抽出する処理により抽出された前記文字又は文字列の少なくともいずれかを含む第2の文字列を取得する処理
である請求項1又は2記載の情報処理方法。
(Appendix 3)
The acquisition process includes
Corresponding characters or character strings included in the first character string from the second data storage unit in which characters or character strings having a co-occurrence rate equal to or greater than a threshold value are associated and stored for each character or character string A second character string including at least one of the character or the character string extracted by the process of extracting the character or the character string that is not included in the first character string. The information processing method according to
(付記4)
前記取得処理が、
文字又は文字列毎に共起率が閾値以上の文字又は文字列が対応付けられて格納されている第2のデータ格納部から、前記第1の文字列に含まれる文字又は文字列について対応付けられている文字又は文字列であって前記第1の文字列に含まれない文字又は文字列を抽出する処理と、
抽出された前記文字又は文字列を用いて前記第2の文字列を選択する選択処理と、
を含み、
前記選択処理が、
抽出された前記文字又は文字列のうち、1つの第2の文字列に含まれる文字又は文字列の数又は割合が第1の所定値以上となるように、前記第2の文字列を選択する処理、
前記第2の文字列の選択総数が予め設定されている場合に、抽出された前記文字又は文字列の少なくともいずれかを含む第2の文字列の、前記選択総数に対する割合が第2の所定値以上であるように、前記選択総数分の第2の文字列を取得する処理、又は
抽出された前記文字又は文字列が複数種類であり、前記第2の文字列が複数である場合、抽出された前記文字又は文字列のうち当該複数の第2の文字列に含まれる文字又は文字列の種類の数又は割合が第3の所定値以上となるように、前記複数の第2の文字列を選択する処理
を含む請求項1又は2記載の情報処理方法。
(Appendix 4)
The acquisition process
Corresponding characters or character strings included in the first character string from the second data storage unit in which characters or character strings having a co-occurrence rate equal to or greater than a threshold value are associated and stored for each character or character string A process of extracting characters or character strings that are not included in the first character string,
A selection process for selecting the second character string using the extracted character or character string;
Including
The selection process is
The second character string is selected so that the number or ratio of characters or character strings included in one second character string is equal to or greater than a first predetermined value among the extracted characters or character strings. processing,
When the total selection number of the second character string is set in advance, a ratio of the extracted second character string including at least one of the character or the character string to the total selection number is a second predetermined value. As described above, the process of obtaining the second character string corresponding to the selected total number, or the extracted character or character string is a plurality of types, and the plurality of second character strings are extracted. The plurality of second character strings are set such that the number or ratio of the types of characters or character strings included in the plurality of second character strings among the characters or character strings is equal to or greater than a third predetermined value. The information processing method according to
(付記5)
前記編集距離に対する閾値が、前記第3の文字列の文字数に基づき、または前記第3の文字列の文字数及び前記第1の文字列の文字数に基づき決定される
付記1乃至4のいずれか1つ記載の情報処理方法。
(Appendix 5)
The threshold value for the editing distance is determined based on the number of characters of the third character string, or based on the number of characters of the third character string and the number of characters of the first character string. The information processing method described.
(付記6)
検索対象として指定された第1の文字列に混合する第2の文字列を取得する取得処理と、
前記第1の文字列に含まれる複数の文字の順序関係と、前記第2の文字列に含まれる複数の文字の順序関係とを維持しつつ、前記第1の文字列に対して前記第2の文字列を混合することで第3の文字列を生成し、データ格納部に格納する処理と、
前記データ格納部に格納されている前記第3の文字列を含むクエリを、編集距離を用いて文字列検索を行う検索コンピュータに対して出力する処理と、
を、コンピュータに実行させるためのプログラム。
(Appendix 6)
An acquisition process for acquiring a second character string mixed with the first character string designated as a search target;
While maintaining the order relationship between the plurality of characters included in the first character string and the order relationship between the plurality of characters included in the second character string, the second character string is compared with the second character string. Generating a third character string by mixing the character strings and storing the third character string in the data storage unit;
A process of outputting a query including the third character string stored in the data storage unit to a search computer that performs a character string search using an edit distance;
A program that causes a computer to execute.
(付記7)
検索対象として指定された第1の文字列に混合する第2の文字列を取得し、前記第1の文字列に含まれる複数の文字の順序関係と、前記第2の文字列に含まれる複数の文字の順序関係とを維持しつつ、前記第1の文字列に対して前記第2の文字列を混合することで第3の文字列を生成し、データ格納部に格納する混合部と、
前記データ格納部に格納されている前記第3の文字列を含むクエリを、編集距離を用いて文字列検索を行う検索コンピュータに対して出力する出力部と、
を有する情報処理装置。
(Appendix 7)
A second character string to be mixed with the first character string designated as a search target is acquired, and an order relationship between a plurality of characters included in the first character string and a plurality of characters included in the second character string A mixing unit for generating a third character string by mixing the second character string with the first character string and storing the third character string in a data storage unit,
An output unit that outputs a query including the third character string stored in the data storage unit to a search computer that performs a character string search using an edit distance;
An information processing apparatus.
1 ネットワーク
3 クライアント装置
5 検索サーバ
51 第1DB
52 第2DB
31 入力部
32 第1データ格納部
33 第2データ格納部
34 第1抽出部
35 第3データ格納部
36 混合部
37 第4データ格納部
38 クエリ送信部
39 検索結果受信部
40 第5データ格納部
41 第2抽出部
42 第6データ格納部
43 出力部
1
52 2nd DB
31
Claims (7)
検索対象として指定された第1の文字列に混合する第2の文字列を取得する取得処理と、
前記第1の文字列に含まれる複数の文字の順序関係と、前記第2の文字列に含まれる複数の文字の順序関係とを維持しつつ、前記第1の文字列に対して前記第2の文字列を混合することで第3の文字列を生成し、データ格納部に格納する処理と、
前記データ格納部に格納されている前記第3の文字列を含むクエリを、編集距離を用いて文字列検索を行う検索コンピュータに対して出力する処理と、
を含む情報処理方法。 An information processing method executed by a computer,
An acquisition process for acquiring a second character string mixed with the first character string designated as a search target;
While maintaining the order relationship between the plurality of characters included in the first character string and the order relationship between the plurality of characters included in the second character string, the second character string is compared with the second character string. Generating a third character string by mixing the character strings and storing the third character string in the data storage unit;
A process of outputting a query including the third character string stored in the data storage unit to a search computer that performs a character string search using an edit distance;
An information processing method including:
をさらに含む請求項1記載の情報処理方法。 A process in which the computer receives a search result including a plurality of fourth character strings from the search computer and extracts a character string corresponding to the first character string from the plurality of fourth character strings; The information processing method according to claim 1, further comprising:
文字又は文字列毎に共起率が閾値以上の文字又は文字列が対応付けられて格納されている第2のデータ格納部から、前記第1の文字列に含まれる文字又は文字列について対応付けられている文字又は文字列であって前記第1の文字列に含まれない文字又は文字列を抽出する処理により抽出された前記文字又は文字列の少なくともいずれかを含む第2の文字列を取得する処理
である請求項1又は2記載の情報処理方法。 The acquisition process includes
Corresponding characters or character strings included in the first character string from the second data storage unit in which characters or character strings having a co-occurrence rate equal to or greater than a threshold value are associated and stored for each character or character string A second character string including at least one of the character or the character string extracted by the process of extracting the character or the character string that is not included in the first character string. The information processing method according to claim 1 or 2, wherein the information processing method is:
文字又は文字列毎に共起率が閾値以上の文字又は文字列が対応付けられて格納されている第2のデータ格納部から、前記第1の文字列に含まれる文字又は文字列について対応付けられている文字又は文字列であって前記第1の文字列に含まれない文字又は文字列を抽出する処理と、
抽出された前記文字又は文字列を用いて前記第2の文字列を選択する選択処理と、
を含み、
前記選択処理が、
抽出された前記文字又は文字列のうち、1つの第2の文字列に含まれる文字又は文字列の数又は割合が第1の所定値以上となるように、前記第2の文字列を選択する処理、
前記第2の文字列の選択総数が予め設定されている場合に、抽出された前記文字又は文字列の少なくともいずれかを含む第2の文字列の、前記選択総数に対する割合が第2の所定値以上であるように、前記選択総数分の第2の文字列を取得する処理、又は
抽出された前記文字又は文字列が複数種類であり、前記第2の文字列が複数である場合、抽出された前記文字又は文字列のうち当該複数の第2の文字列に含まれる文字又は文字列の種類の数又は割合が第3の所定値以上となるように、前記複数の第2の文字列を選択する処理
を含む請求項1又は2記載の情報処理方法。 The acquisition process
Corresponding characters or character strings included in the first character string from the second data storage unit in which characters or character strings having a co-occurrence rate equal to or greater than a threshold value are associated and stored for each character or character string A process of extracting characters or character strings that are not included in the first character string,
A selection process for selecting the second character string using the extracted character or character string;
Including
The selection process is
The second character string is selected so that the number or ratio of characters or character strings included in one second character string is equal to or greater than a first predetermined value among the extracted characters or character strings. processing,
When the total selection number of the second character string is set in advance, a ratio of the extracted second character string including at least one of the character or the character string to the total selection number is a second predetermined value. As described above, the process of obtaining the second character string corresponding to the selected total number, or the extracted character or character string is a plurality of types, and the plurality of second character strings are extracted. The plurality of second character strings are set such that the number or ratio of the types of characters or character strings included in the plurality of second character strings among the characters or character strings is equal to or greater than a third predetermined value. The information processing method according to claim 1, comprising a process of selecting.
請求項1乃至4のいずれか1つ記載の情報処理方法。 The threshold for the edit distance is determined based on the number of characters of the third character string, or based on the number of characters of the third character string and the number of characters of the first character string. Information processing method.
前記第1の文字列に含まれる複数の文字の順序関係と、前記第2の文字列に含まれる複数の文字の順序関係とを維持しつつ、前記第1の文字列に対して前記第2の文字列を混合することで第3の文字列を生成し、データ格納部に格納する処理と、
前記データ格納部に格納されている前記第3の文字列を含むクエリを、編集距離を用いて文字列検索を行う検索コンピュータに対して出力する処理と、
を、コンピュータに実行させるためのプログラム。 An acquisition process for acquiring a second character string mixed with the first character string designated as a search target;
While maintaining the order relationship between the plurality of characters included in the first character string and the order relationship between the plurality of characters included in the second character string, the second character string is compared with the second character string. Generating a third character string by mixing the character strings and storing the third character string in the data storage unit;
A process of outputting a query including the third character string stored in the data storage unit to a search computer that performs a character string search using an edit distance;
A program that causes a computer to execute.
前記データ格納部に格納されている前記第3の文字列を含むクエリを、編集距離を用いて文字列検索を行う検索コンピュータに対して出力する出力部と、
を有する情報処理装置。 A second character string to be mixed with the first character string designated as a search target is acquired, and an order relationship between a plurality of characters included in the first character string and a plurality of characters included in the second character string A mixing unit for generating a third character string by mixing the second character string with the first character string and storing the third character string in a data storage unit,
An output unit that outputs a query including the third character string stored in the data storage unit to a search computer that performs a character string search using an edit distance;
An information processing apparatus.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012131955A JP5910337B2 (en) | 2012-06-11 | 2012-06-11 | Information processing method and apparatus for concealment query |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012131955A JP5910337B2 (en) | 2012-06-11 | 2012-06-11 | Information processing method and apparatus for concealment query |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2013257636A JP2013257636A (en) | 2013-12-26 |
| JP5910337B2 true JP5910337B2 (en) | 2016-04-27 |
Family
ID=49954051
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012131955A Expired - Fee Related JP5910337B2 (en) | 2012-06-11 | 2012-06-11 | Information processing method and apparatus for concealment query |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5910337B2 (en) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4687101B2 (en) * | 2004-12-27 | 2011-05-25 | 富士通株式会社 | Data protection program and data protection method |
| US8271796B2 (en) * | 2008-05-12 | 2012-09-18 | Telecommunications Research Laboratory | Apparatus for secure computation of string comparators |
-
2012
- 2012-06-11 JP JP2012131955A patent/JP5910337B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2013257636A (en) | 2013-12-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7266638B2 (en) | DATA TRANSFER CONTROL METHOD AND SYSTEM BASED ON INTEGRATED BLOCKCHAIN | |
| CN113722757B (en) | Coding method, device, equipment and storage medium of sensitive data | |
| US12236264B2 (en) | Data shards for distributed processing | |
| KR101850886B1 (en) | Search system and mehtod for recommending reduction query | |
| WO2012127572A1 (en) | Secret data processing method, program and device | |
| CN105335855A (en) | Transaction risk identification method and apparatus | |
| CN107729423B (en) | Big data processing method and device | |
| WO2019141143A1 (en) | Method and apparatus for mining relationship between articles and recommending article, computation device and storage medium | |
| TW201926087A (en) | Question pushing method and device | |
| KR102929466B1 (en) | Account identification methods, identification devices, electronic devices and computer-readable media | |
| CN108345582B (en) | A method and device for identifying social groups engaged in business | |
| CN107070932B (en) | Anonymous method for preventing label neighbor attack in social network dynamic release | |
| CA3178677A1 (en) | User search category predictor | |
| CN107609419A (en) | A kind of digital library user browses preference method for secret protection and system | |
| JP5910337B2 (en) | Information processing method and apparatus for concealment query | |
| CN113313505B (en) | Abnormal location method, device and computing equipment | |
| JP6487820B2 (en) | Risk assessment device, risk assessment method, and risk assessment program | |
| Elanshekhar et al. | An effective anonymization technique of big data using suppression slicing method | |
| CN116383477B (en) | Recommendation method for business scope of enterprise establishment based on industry classification and industry description | |
| KR20200142257A (en) | Method, apparatus and system arranging user interface for setting predetermined value using analysis result for the predetermined value according to characteristic of shopping mall | |
| Thakur et al. | Privacy-Preserving Outsourced Mining of D-Eclat Association Rules on Vertically Partitioned Databases | |
| CN115393101A (en) | Method and device for recommending wealth management products in mobile banking based on personalized differential privacy | |
| KR102251588B1 (en) | Method, apparatus, and system visualizing correlation level between setup fields | |
| Rodwald | Attack on Students’ Passwords, Findings and Recommendations | |
| KR20200142256A (en) | Method, apparatus and system arranging user interface for setting predetermined value using correlation level between setup fields |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150319 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160219 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160301 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160314 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5910337 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |