以下、本発明の実施の形態を図面に基づいて説明する。先ず、文書の剽窃検知に係る問題の定式化について想定する状況を以下に示す。
<状況1>
文書の剽窃の検知では、大まかな内容や論理ではなく、字面についての盗用が対象となる。剽窃かどうかの現実的な判断が状況に依存する余地が少なく、特に厳密に検出できることが望ましい。
<状況2>
剽窃検知を行う入力文書(後述される問合文書70に相当)中の疑わしい文やフレーズを指定せず、文書全体について網羅的に調べる。剽窃検知の手掛かりとなる付加的な情報が無い場合であっても剽窃検知可能とする。
<状況3>
剽窃の元になる可能性のある文章(後述される対象文章60に相当)が前もって与えられ、事前の処理を行っておく。実際の運用では、対象文章60に係るデータをデータベース(後述される剽窃検知用データ69に相当)として保持すればよい。
図1は、文書の剽窃検知の概要を説明するための図である。図1において、文書の剽窃を検知するためには、剽窃の元になる複数の対象文書60をインタビュー2から収集し、収集した複数の対象文書60に対して事前計算が行われる。事前計算では、各対象文書60を数値行列化し、離散フーリエ変換が行われる。事前計算によって得た変換後行列データが剽窃検知用データ69に蓄積される。
問合文書70は、文書内に既存の文書からの剽窃部分を含んでいないかが判定される文章である。問合文書70に対しても、対象文書60に対する事前計算と同様の処理を行い、変換後行列データを取得する。問合文書70の変換後行列データと、剽窃検知用データ69を参照して、複数の対象文書60のそれぞれの変換後行列データとを用いて、剽窃を検知する。
次に、問合文書70に対する剽窃検知のための指標について説明する。
・問合文書70と対象文書60のすべての位置ずれについて、語の一致の数を調べる問題(例えば、マッチカウント問題等)を用いる。
・出力はベクトルである。(ベクトルを用いることで、剽窃の判断のための解析が可能となる)
・問合文書70の疑わしい部分を限定する必要がない。
・各位置ずれでの語の一致数の絶対値でなく、全体の分布に対する相対的な値を考慮できる。
そして、
・対象文書60中の問合文書70の出現を単純に求める問題の場合
・出力は出現位置である。(既に、剽窃についての何らかの知識が用いられていることが前提)
・厳密な出現の探索には、剽窃箇所の正確な特定が必要である。
・近似的な出現の探索は、閾値が与えられれば高速に可能だが、考慮できるのは絶対値のみである。
上述したマッチカウント問題について、問合文書70が「犬である」、対象文書60が「吾輩は猫である」の場合で説明する。図2は、マッチカウント問題の例を示す図である。図2において、対象文書60に対して、問合文書70の末尾の語から、語ごとにずらして重ね合わせる。語ごとのずれは位置ずれaで特定され、一致した語数は一致数bで示されている。この例の出力は、位置ずれaの順に、一致数bを示したベクトル(0,0,0,0,2,0,0)である。このようなベクトルは、スコアベクトルと言う。
マッチカウント問題を解く手法として、対象文書60及び問合文書70を数値化し、畳み込み演算を行うことが望ましい。この手法は、以下の特徴がある。
・マッチカウント問題を解く手法のなかで最も高速である。(それぞれ長さ(語数)nの文書について処理時間はO(nlogn)時間である。)
・計算量は、対象文書60の量に比例して増加する。
・想定する上記<状況3>の場合、対象文書60についての計算の一部を事前に実行するのが効果的な解法である。
・問題点は、計算の中間状態のデータ量が膨大となり、事前の計算結果を保持することが困難になる場合がある。
文章の数値化と畳み込み演算による中間状態のデータ量について説明する。図3は、事前計算の中間状態のデータ量について説明するための図である。図3では、問合文書70が「犬である」、対象文書60が「吾輩は猫である」とする。図3(A)では、文書の数値ベクトル生成の例を示し、図3(B)では、畳み込み演算の例を示し、図3(C)では、語の一致数の例を示している。
図3(A)の数値ベクトル生成では、文書ごとに語の数だけベクトルが生成される。この例では、問合文書70の語数は3であるため3つのベクトルで表される。対象文書60の語数は5であるため5つのベクトルで表される。
ここでは簡単に、問合文書70と対象文書60の少なくとも1方に含まれる語の総数に基づく次元数「5」としている。具体的には、問合文書70と対象文書60とから得られる語は、「犬」、「で」、「ある」、「吾輩」、「は」、及び「猫」の6個であるが、ある1語(この例では「犬」)を全てゼロのベクトル(0,0,0,0,0)に割り当てることにより、5次元で表現しても良い。
よって、図3(A)の数値ベクトル生成の段階で、語のベクトル表現の次元数倍の領域が使用される。次元数は、単純な表現の場合には、語数に相当する。
図3(B)の畳み込み演算では、問合文書70及び対象文書60を位置ずれa(図2)を行数とし、図3(A)の数値ベクトル生成の段階における次元数を列数により畳み込み演算を行う。先ず、一方の行列を行に関して反転させて、2つの行列を位置ずれaの行数に一致させるために下位行を0でパディングする。
この例では、問合文書行列71aにおいて問合文書70のベクトルの位置(行)を上下で反転させて下位行を0でパディングした問合文書行列71aと、パディングのみ行った対象文書60の対象文書行列61aとに対して畳み込み演算を行う。問合文書行列71aは、問合文書70を行列で表現し、対象文書行列61aは、対象文書60を行列で表現している。
畳み込み演算では、
(1)2つの行列71a及び61aの離散フーリエ変換(DFT:Discrete Fourier Transform)
(2)要素ごとの乗算(積)
(3)逆離散フーリエ変換(逆DFT)
が行われる。ただし、畳み込み定理を満たす変換であれば、離散フーリエ変換以外の演算でもよい。このような畳み込み演算を行うことで、行列81aを得る。この行列81aは、位置ずれaごとの語の一致箇所を「1」で示している。
図3(C)の語一致数計算では、図3(B)の行列81aの行ごとに要素を加算して、a行×1列のベクトル79aを得る。得られたベクトル79aが、図2の一致数bに相当する。この例では、5番目の位置ずれで、2つの語が一致していることを示している。図2を参照すると、語「で」と語「ある」の2つが一致している。
上述した事前計算では、問合文書行列71a及び対象文書60を作成するためのパディングと、離散フーリエ変換を含む畳み込み演算により、中間状態のデータ量は約4倍となってしまう。複数の対象文書60に対して、それぞれの対象文書行列61aは、剽窃検知用データ69(図1)に保持される。語が多い程、対象文書行列61aのデータ量が多くなる。本実施例では、この保持する対象文書行列61aのデータ量を削減する。
図4は、本実施例における剽窃検知用に保持するデータ量の削減を表す図である。図4において、本実施例では、剽窃検知の精度を劣化させることなく、対象文書60から得られた対象文書行列61aを表すデータを少なくすることで、剽窃検知用データ69のデータ量を削減する。
図5は、本実施例における剽窃検知に係る全体処理の概要を説明するための図である。図5より、本実施例では、対象文書行列61aに対して離散フーリエ変換を行って得た変換後対象文書行列62aの1又は複数行を全て0でマスキングして、剽窃検知用データ69とする。行単位で0にすることで、データ量を削減した削減行列63aを得ることができる。このデータ量が削減された削減行列63aを剽窃検知用データ69として保持する。
問合文書行列71aに対して離散フーリエ変換を行い、変換後問合文書行列72aを得る。本実施例では、既存の畳み込み演算での計算手順を変えて、変換後問合文書行列72aと、予め用意した剽窃検知用データ69の削減行列63aとで、要素ごとの積(内積)を得たのち、逆離散フーリエ変換を行う。このような計算手順とすることで、処理時間を短縮できる。
上述した内容に基づく計算は、以下のように説明される。
で得られる。本実施例では、スコアベクトルC
cの近似値として、
(FB)mの(i,j)要素が0ならば、
の(i,j)要素は0なので、マスキングの範囲に応じて乗算を省略できる。
次に、変換後対象文書行列62aの行のマスキングについて図6から図9で説明する。図6は、剽窃がある場合のスコアベクトルの例を示す図である。図6において、縦軸に語の一致数(スコアベクトル)を示し、横軸に文書の位置ずれを示している。以下、図6に示すグラフを単にスコアベクトル8gという。
問合文書70は、対象文書60に対する位置ずれ8aで突出したピーク8pを示している。即ち、位置ずれ8aの時に、問合文書70は、対象文書60と非常に類似していることを示し、剽窃している可能性があることを示している。また、単に、ピーク8pの有無のみを示す結果を得られるだけでも有効な場合がある。その場合、スコアベクトルの厳密解でなくてもよい。
発明者は、文章の位置ずれごとの語の一致数を表すこのような波形について、以下のように解析した。先ず、波形の合成及び分解について考えると、単純には、図7のように示される。
図7は、波形の合成及び分解を説明するための図である。図7において、元の波形7orgは、低周波成分7LFと高周波成分7HFの合成により表される。言い換えると、元の波形7orgは、低周波成分7LFと高周波成分7HFとに分解される。
低周波成分7LFは大域的な変化を表し、高周波成分7HFは局所的な変化を表す。また、低周波成分7LFは、フーリエ変換先の下位成分に相当し、高周波成分7HFは、フーリエ変換先の上位成分に相当している。高周波成分7HFに比べ、低周波成分7LFには、元の波形7orgの大まかな形状が残るため、ピーク8pの情報が残りやすい。
発明者は、この低周波成分7LFの特定に着目し、剽窃の有り無しによる低周波成分7LF及び高周波成分7HFについて検証し、図8及び図9に示すような結果を得た。この検証では、対象文書60の離散フーリエ変換後の変換後対象文書行列62aをマスキングにより10%と1%の下位成分を残して剽窃検証を行った場合と、剽窃検知用データ69に対するマスキングにより10%と1%の上位成分を残して剽窃検証を行った場合とで比較した。
図8は、剽窃が有る場合のマスキングによる近似的なスコアベクトルの例を説明するための図である。図8(A)は、図6と同様の剽窃が有り、ピーク8pを示すスコアベクトル8gを示している。
図8(B)では、変換後対象文書行列62aの下位成分のみを使用した場合の近似的なスコアベクトルを上段に示し、上位成分のみを使用した場合の近似的なスコアベクトルを下段に示している。それぞれ、10%使用と1%使用の2つの場合を示している。
低周波成分のみを残した場合には、変換後対象文書行列62aの下位成分の10%使用と1%使用の両方において、同様の位置ずれにおいてピーク8v−1とピーク8v−2とが残っている。剽窃の有無の判定は十分に行える。一方、高周波成分のみを残した場合には、変換後対象文書行列62aの上位成分の10%使用の場合には、ピーク8wが残っているが、1%使用の場合にはピークの判別は困難である。
よって、低周波成分のみ、即ち、変換後対象文書行列62aの下位成分のみの使用で十分に、剽窃が有ることを判定できる。次に、剽窃が無い場合について検証した結果を示す。
図9は、剽窃が無い場合のマスキングによる近似的なスコアベクトルの例を説明するための図である。図9(A)は、剽窃が無い場合のスコアベクトル8g‐2を示している。スコアベクトル8g‐2には、全ての位置ずれに対してピークが存在しない。
図9(B)では、変換後対象文書行列62aの下位成分のみを使用した場合の近似的なスコアベクトルを上段に示し、上位成分のみを使用した場合の近似的なスコアベクトルを下段に示している。それぞれ、10%使用と1%使用の2つの場合を示している。
低周波成分のみを残した場合には、変換後対象文書行列62aの下位成分の10%使用と1%使用の両方において、全ての位置ずれでピークは出現していない。また、高周波成分のみを残した場合においても同様に、全ての位置ずれでピークは出現していない。
上述したマスキングの検証から、変換後対象文書行列62aの下位成分のみで十分に、剽窃の有無を精度良く判別可能であることが分かる。また、下位成分では1%使用時においても剽窃の有無を判別可能であるため、発明者は、変換後対象文書行列62aの下位成分のみを使用した場合には、上位成分のみを使用した場合よりデータ量を削減可能であるという結果を導き出した。
本実施例では、データ量が削減された剽窃検知用データ69を生成する検知用データ生成処理と、剽窃検知用データ69を用いた剽窃検知処理とを実現する生成装置100(図10)について説明する。本実施例における生成装置100は、図10に示すようなハードウェア構成を有する。
図10は、生成装置のハードウェア構成を示す図である。図10において、生成装置100は、コンピュータによって制御される情報処理装置であって、CPU(Central Processing Unit)11と、主記憶装置12と、補助記憶装置13と、入力装置14と、表示装置15と、通信I/F(インターフェース)17と、ドライブ装置18とを有し、バスBに接続される。
CPU11は、主記憶装置12に格納されたプログラムに従って生成装置100を制御するプロセッサに相当する。主記憶装置12には、RAM(Random Access Memory)、ROM(Read Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を記憶又は一時保存する。
補助記憶装置13には、HDD(Hard Disk Drive)等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置13に格納されているプログラムの一部が主記憶装置12にロードされ、CPU11に実行されることによって、各種処理が実現される。主記憶装置12、補助記憶装置13、ネットワーク等を介してアクセス可能な外部記憶装置等を総称して、記憶部130で表す。
入力装置14は、マウス、キーボード等を有し、ユーザが生成装置100による処理に必要な各種情報を入力するために用いられる。表示装置15は、CPU11の制御のもとに必要な各種情報を表示する。入力装置14と表示装置15とは、一体化したタッチパネル等によるユーザインタフェースであってもよい。通信I/F17は、有線又は無線などのネットワークを通じて通信を行う。通信I/F17による通信は無線又は有線に限定されるものではない。
生成装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read‐Only Memory)等の記憶媒体19によって生成装置100に提供される。
ドライブ装置18は、ドライブ装置18にセットされた記憶媒体19(例えば、CD−ROM等)と生成装置100とのインターフェースを行う。
また、記憶媒体19に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体19に格納されたプログラムは、ドライブ装置18を介して生成装置100にインストールされる。インストールされたプログラムは、生成装置100により実行可能となる。
尚、プログラムを格納する記憶媒体19はCD−ROMに限定されず、コンピュータが読み取り可能な、データの構造(structure)を有する1つ以上の非一時的(non‐transitory)な、有形(tangible)な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVD(Digital Versatile Disk)ディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
図11は、生成装置の第1の機能構成例を示す図である。図11において、生成装置100は、主に、検知用データ生成部40と、剽窃検知部50とを有する。検知用データ生成部40と、剽窃検知部50とは、CPU11が対応するプログラムを実行することによって行われる処理により実現される。
記憶部130は、対象文書60、対象文書行列データ61、変換後対象文書行列データ62、削減行列データ63、剽窃検知用データ69、問合文書70、問合文書行列データ71、変換後問合文書行列データ72、要素積行列データ73、逆変換後行列データ74、一致数ベクトルデータ79等を有する。
検知用データ生成部40は、データ量が削減された剽窃検知用データ69を生成する処理部であり、対象文書行列生成部41と、対象文書変換部42と、マスキング部43と、出力部44とを有する。
対象文書行列生成部41は、対象文書60を読み込んで、対象文書60を構成する語ごとに数値ベクトルを作成して、対象文書行列データ61を生成する。対象文書行列生成部41は、全ての語の数値ベクトルを、数値ベクトルの次元数を行とし、語の個数を列とする行列で表された対象文書行列データ61を生成して、記憶部130に記憶する。
対象文書変換部42は、記憶部130から対象文書行列データ61を読み込んでFFTで変換する。変換により得た変換対象文書行列データ62は、記憶部130に記憶される。マスキング部43は、記憶部130から変換対象文書行列データ62を読み込んで、低周波成分に相当する下位成分以外を0で置き換えてマスキングすることで、対象文書行列データ61からデータ量が削減された削減行列データ63を得る。マスキングする行数、又は、下位成分として残す下位行数は、予め定められている。
出力部44は、マスキング部43によって変換対象文書行列データ62のデータ量が削減された削減行列データ63を剽窃検知用データ69として記憶部130に蓄積する。複数の対象文書60のそれぞれの剽窃検知用データ69が記憶部130に保持される。剽窃検知用データ69は、対象文書60に関する行列を表すデータである。
剽窃検知部50は、ユーザからの剽窃部分を含んでいないかを判定する問合文書70を指定した要求に応じて、剽窃検知用データ69を用いて剽窃を検知する処理部である。剽窃検知部50は、問合文書行列生成部51と、問合文書変換部52と、要素乗算部53と、逆変換部54と、要素合算部59とを有する。
問合文書行列生成部51は、ユーザからの問合文書70を指定した要求に応じて、記憶部130から読み込み、問合文書70を構成する語ごとに数値ベクトルを作成して、対象文書行列データ61を生成する。問合文書行列生成部51は、全ての語の数値ベクトルを、数値ベクトルの次元数を行とし、語の個数を列とする行列で表した問合文書行列データ71を生成して、記憶部130に記憶する。
問合文書変換部52は、問合文書行列データ71を読み込んでFFTで変換する。変換により得た変換問合文書行列データ72は、記憶部130に記憶される。要素乗算部53は、記憶部130から変換問合文書行列データ72を取得し、剽窃検知用データ69を読み込み、両方の行列の互いに対応する要素同士を乗算する。即ち、要素の積を得る。要素の積で表された要素積行列データ73が記憶部130に記憶される。
逆変換部54は、記憶部130から逆変換後行列データ74を得て、逆FFTで変換し、逆変換後行列データ74を得る。逆変換後行列データ74は記憶部130に記憶される。要素合算部59は、逆変換後行列データ74の各行の要素を合算し、語ごとの一致数を示す一致数ベクトルデータ79を記憶部130に出力する。要素合算部59は、一致数ベクトルデータ79を表示装置15に表示してもよい。
図12は、図11の第1の機能構成例における検知用データ生成処理を説明するための図である。図12(A)ではフローチャートを示し、図12(B)では処理の過程を示す。図12(B)を参照しつつ、図12(A)のフローチャートを説明する。図12(A)において、検知用データ生成部40は、複数の対象文書60のそれぞれに対して、ステップS401〜S404を行い、データ量の削減された剽窃検知用データ69を生成する。
検知用データ生成部40において、対象文書行列生成部41は、対象文書60の語ごとのベクトルを作成し、対象文書60を表す対象文書行列データ61を生成する(ステップS401)。対象文書行列データ61は、配列bij(i=1〜nの自然数、j=1〜dの自然数)等で表され記憶部130に記憶される。
対象文書変換部42は、対象文書行列生成部41が生成した対象文書行列データ61に対して離散フーリエ変換を行い、変換後対象文書行列データ62を得る(ステップS402)。変換後対象文書行列データ62は、配列gij(i=1〜nの自然数、j=1〜dの自然数)等で表され記憶部130に記憶される。
そして、マスキング部43は、変換後対象文書行列データ62の上位行をマスキングして削減行列データ63を得て(ステップS403)、出力部44は、得られた削減行列データ63を剽窃検知用データ69として蓄積する。削減行列データ63は、図7で説明した高周波成分7HFがマスクされ、低周波成分7LFのみを表すため、剽窃検知用データ69では、高周波成分7HFに相当する上位行のデータ量が削減される。
マスキングを行わない既存技術では、離散フーリエ変換後の変換後対象文書行列データ62が剽窃検知用データ69として保持される。変換後対象文書行列データ62と比べて、削減行列データ63を剽窃検知用データ69として保持した場合、剽窃検知用データ69のデータ量を削減できる。
本実施例では、図3(B)に示される畳み込み演算における一方のDFT、即ち、上記にて説明したFFT及び逆FFTのうち、最初に行うFFTを事前に行い、かつ、データ量を削減して、記憶部130に剽窃検知用データ69として保持する。次に、剽窃検知部50によって行われる剽窃検知処理について説明する。
図13は、図11の第1の機能構成例における剽窃検知処理を説明するための図である。図13(A)ではフローチャートを示し、図13(B)では処理の過程を示す。図13(B)を参照しつつ、図13(A)のフローチャートを説明する。図13(A)において、剽窃検知部50は、ユーザからの問合文書70を指定した要求に応じて、ステップS501からS505を行い、語ごとの一致数を示す一致数ベクトルデータ79を出力する。
剽窃検知部50において、問合文書行列生成部51は、問合文書70の語ごとのベクトルを作成し、問合文書70を表す問合文書行列データ71を生成する(ステップS501)。問合文書行列データ71は、配列aij(i=1〜nの自然数、j=1〜dの自然数)等で表され記憶部130に記憶される。
問合文書変換部52は、問合文書行列生成部51が生成した問合文書行列データ71に対して離散フーリエ変換を行い、変換後問合行列データ72を得る(ステップS502)。変換後問合行列データ72は、配列fij(i=1〜nの自然数、j=1〜dの自然数)等で表され記憶部130に記憶される。
要素乗算部53は、変換後問合行列データ72と剽窃検知用データ69とで、要素ごとに乗算し、要素の積で表される要素積行列データ73を作成する(ステップS503)。本実施例において、作成される要素積行列データ73は、上位行がマスキングされた行列を示す。要素積行列データ73は、配列hij(i=1〜nの自然数、j=1〜dの自然数)等で表され記憶部130に記憶される。上位行に相当する配列hには0のみが示される。
そして、逆変換部54は、要素積行列データ73に対して逆離散フーリエ変換を行って、逆変換後行列データ74を取得する(ステップS504)。逆離散フーリエ変換は、要素積行列データ73の各行の要素ごとに行われ、行列の大きさに応じて繰り返し行われる。逆変換後行列データ74は、配列cij(i=1〜nの自然数、j=1〜dの自然数)等で表され記憶部130に記憶される。
要素合算部59は、逆離散フーリエ変換によって得られた逆変換後行列データ74の各行の要素を合算し、語ごとに一致した数をベクトルで示す一致数ベクトルデータ79を作成し記憶部130に出力する(ステップS505)。
逆変換後行列データ74の行は、図2の位置ずれaに相当する。また、例えば、図3(C)のベクトル79aが一致数ベクトルデータ79で表される。一致数ベクトルデータ79は、配列Σci(i=1〜nの自然数)等のn行1列の行列により示されることでベクトルとしてみなせ、記憶部130に記憶される。要素合算部59は、一致数ベクトルデータ79を表示装置15に表示させてもよい。
次に、発明者によって行われた複数の対象文書60から得た剽窃検知用データ69を用いた実験結果について以下に示す。図14は、データ削減率と剽窃検知の精度との関係を示す図である。
実験は、以下のように行った。
・剽窃有りの文書を2、000対と剽窃無しの文書を2,000対とを用いた。語彙数は、143,600語である。
・文書の数値による行列表現の方法は、語の単純なベクトル表現(One‐hot)とランダムなベクトル表現(Random)とで行った。次元数は、100で固定した。
・単純なベクトル表現において、出現頻度が上位の語を用い、上位成分をマスキングした場合との比較を行った。
図14に示すグラフ91では、横軸にデータ削減率を示し、縦軸に剽窃検知の精度を示している。データ削減率「0」は全ての行をマスキングした場合に相当し、データ削減率「1」は全ての行をマスキングをしなかった場合に相当する。0に近い程、データ削減率が高いことを示す。
本実施例におけるデータ削減率は、次元の大きさによるデータ量の差を考慮したデータ量の削減率である。語のベクトル表現の次元数をd、変換後対象文書行列62aに対してマスキングを行わない非マスキング率をr、基準次元をDrefとした場合、データ削減率DTrは、
DTr = (d/Dref)×r (1)
で表される。実験時の最大次元を基準次元としても良く、図14の例では、Drefは100となる。
図14より、ランダムなベクトル表現が、単純なベクトル表現より、データ削減率がより「0」に近いところであっても高い精度を示していることが分かる。例えば、P1では、データ削減率が98%であっても精度の低下は0.9%であった。また、P2では、データ削減率が90%であっても精度の低下は0.1%であった。
ランダムなベクトル表現では、データ削減率が80%以下では、次元数の固定による精度の低下は見られなくなる。即ち、ランダム(100次元)、ランダム(20次元)、及びランダム(4次元)のいずれにおいても、精度の低下は見られない。ランダム(20次元)が、一般的な英語文書に相当する。一方、単純なベクトル表現の場合には、データ削減が全くない場合でも、精度は、ランダムなベクトル表現より明らかに低い。
このような実験結果から、ランダムなベクトル表現により、予め対象文書60の語のベクトル表現の次元数を1又は複数定め、データ削減率との関係を実験により取得しておくことで、次元数とデータ削減率とを設定してもよい。
予め得た実験結果に基づき、所望の作業領域のサイズで剽窃検知処理を行うための語のベクトル表現の次元数dと、上位行のマスキング率(1−r)とを得て設定してもよい。以下に、実験結果に基づいて次元数dと割合rとを得る機能構成例について説明する。
図15は、生成装置の第2の機能構成例を示す図である。図15において、生成装置100は、図11に示す第1の機能構成に加えて、初期設定部30を有し、記憶部130には、実験結果20、条件データ21、設定情報22、補足情報23等を記憶する。検知用データ生成部40、剽窃検知部50、及び関連する種々のデータは、第1の機能構成と同様であるため、説明を省略する。
初期設定部30は、ユーザの所望する条件に基づいて、検知用データ生成部40及び剽窃検知部50での処理に係る情報を設定する処理部である。初期設定部30は、条件取得部31と、設定情報特定部32と、設定情報表示部33とを有する。
条件取得部31は、条件データ21を取得する画面を表示装置15に表示し、ユーザから条件データ21を取得して、記憶部130に記憶する。設定情報特定部32は、記憶部130から、条件データ21と、予め用意された実験結果20とを読み込んで、実験結果20に基づいて、条件データ21を満たす次元数、データ削減率、精度等を特定する。
次元数及びマスキング率(1−r)を示す設定情報22と、データ削減率、精度等を示す補足情報23とが記憶部130に記憶される。マスキング率(1−r)の代わりに、非マスキング率rを指定してもよい。
設定情報表示部33は、設定情報22と補足情報23とを表示装置15に表示する。表示装置15に表示された設定情報22の検知用データ生成部40及び剽窃検知部50による処理への適用のユーザによる確定により、設定情報22の適用が確定する。設定情報22を適用しない場合には、条件取得部31からの処理を繰り返してもよい。又は、実験結果20を表示装置15に表示し、実験結果20上でユーザにより選択された位置から得られる次元数、データ削減率、及び精度等を設定情報22としてもよい。
実験結果20は、予めユーザによる実験によって得られた結果を示すデータファイルであり、図14に示すような、1又は複数の次元ごとの、データ削減率に応じた精度を表すグラフである。
条件データ21は、ユーザが制限したいデータ量又はユーザが所望する精度を示す。制限するデータ量は、対象文書60のサイズに対する倍率で指定される。設定情報22は、実験結果20と条件データ21とに基づいて得られた次元数、データ削減率、精度等の情報を含む。
次元数は、語のベクトル表現(図3(A))の次元数を示す。データ削減率は、変換後対象文書行列データ62の行の総数に対する、0でマスキングする上位行の割合を示す。本実施例では、上位行の割合を示すものとするが、データ削減率は、マスキングせず保持する下位行の行の総数に対する割合であってもよい。精度は、次元数とデータ削減率との組により実験結果20から得た値を示す。
図16は、図15の第2の機能構成例における初期設定処理を説明するためのフローチャート図である。図16より、初期設定部30において、条件取得部31が条件設定画面G97(図17)を表示装置15に表示し、ユーザが設定した値を取得し、条件データ21として記憶部130に記憶する(ステップS301)。
条件データ21が取得されると、設定情報特定部32は、実験結果20を読み込み(ステップS302)、条件データ21を参照して、ユーザが指定した条件はデータ量に係る倍率であるか精度であるかを判断する(ステップS303)。
設定情報特定部32は、実験結果20から、倍率Mに対して、
4dr≦M (2)
となるような次元数dと、非マスキング率rとを特定する(ステップS304)。離散フーリエ変換では虚数を表現するために実数の場合と比べて約2倍のデータ量を使用し、パディングによりデータ量が約2倍になる。従って、上記式(2)のdrには、係数「4」が乗算されている。
上記式(1)は
DTr = (d×r)/Dref (3)
と表され、即ち、
dr=Dref×DTr (4)
に変形できる。更に、4を乗算することで、
4dr=4Dref×DTr≦M (5)
と表せる。ここで、基準次元Drefは予め与えられているため、ユーザに指定された倍率Mを用いることで、データ削減率DTrを得られる。得られたデータ削減率DTrを用いて実験結果20から次元数dと精度とを取得する。式(4)を変形すると、
r = (DTr×Dref)/d (6)
となり、非マスキング率rを得られる。設定情報特定部32は、次元数dと非マスキング率rとを示す設定情報22と、データ削減率DTrと精度等を示す補足情報23とを記憶部130に記憶する。
一方、ステップS303において、条件が精度を指定していると判断した場合、設定情報特定部32は、実験結果20から、条件の精度に相当する次元数と削減率の組合せを1以上特定する(ステップS305)。例えば、設定情報特定部32は、条件の精度以上となる次元数と削減率の組合せと、条件の精度から予め定めた許容値以下の範囲における次元数と削減率の組合せとを特定する。
そして、設定情報特定部32は、組合せごとに、保持するデータのサイズに対する元データの倍数を算出し、候補を特定する(ステップS306)。条件の精度以上となる次元数と削減率の組合せが複数ある場合、最も精度が高い組合せと、最も倍率が小さい組合せとを選択し候補としてもよい。ユーザは、処理中のデータ量の増大を考慮して、剽窃検出の精度を選択することができる。設定情報特定部32は、次元数、削減率、精度等を示す1又は複数の設定情報22を記憶部130に記憶する。
設定情報特定部32によって1以上の設定情報22が得られると、設定情報表示部33は、設定情報22を示す設定情報画面G98a又はG98b(図19)を表示装置15に表示する(ステップS307)。設定情報表示部33は、条件データ21が倍率をしていしている場合、設定情報画面G98aを表示装置15に表示する。設定情報表示部33は、条件データ21が精度を指定している場合、設定情報画面G98bを表示装置15に表示する。
設定情報画面G98a又はG98b(図19)の表示後にユーザの操作を受け付けると、確定又は終了が選択されたか否かが判断される(ステップS308)。キャンセルが選択された場合(ステップS308のNO)、初期設定部30は、ステップS301へと戻り、上述した同様の処理を繰り返す。一方、確定又は終了が選択された場合(ステップS308のYES)、初期設定部30は、この初期設定処理を終了する。
上述では、領域のサイズを表す倍率又は精度のいずれかを選択する例で説明したが、倍率と精度とを条件としてもよい。上記式(2)を満たす次元数dと非マスキング率rとに基づいて実験結果20を参照して、条件で指定された精度以上となる点を取得すればよい。
図17は、条件設定画面の例を示す図である。図17において、条件設定画面G97は、倍率を指定する領域97aと、精度を指定する領域97bと、確定ボタン97cと、終了ボタン97dとを有する。
ユーザは、領域97aと領域97bのいずれかの領域に値を設定する。例えば、領域97aには、8を入力し、元データに対する倍率に8倍を指定する。又は、領域97bには、0.999を入力し、精度「0.999」以上を指定する。値「1」が最も高い精度となる。
予め用意した実験結果20と、上述したユーザによる条件設定との関係を図18で説明する。図18は、実験結果と条件設定との関係を説明するための図である。図18に示すグラフ92は、実験結果20を表し、横軸及び縦軸は図14と同様である。
図18において、グラフ92では、100次元、20次元、及び4次元のそれぞれのランダムなベクトル表現による実験結果を示している。グラフ92内には、3点Q1、Q2、及びQ3が(データ削減率、剽窃検知の精度)で示されている。
点Q1は、8倍が条件の場合に設定情報特定部32が求めた、
4dr<8
になるような次元数dと非マスキング率rに相当する点である。この場合、基準次元Drefは100であり、倍率Mは8であるから、上述式(5)によりデータ削減率DTrは0.02(=8/(4×100))を得る。得られたデータ削減率DTrで実験結果20を参照することにより、次元数dは4であることを特定できる。
そして、得られた点Q1のデータ削減率DTr、基準次元Dref、及び次元数dとを、上記式(6)に代入することで、
0.02×(100/4)
を計算して、非マスキング率「0.5」を得る。従って、
次元数dは4、かつ、非マスキング率rは0.5
を得る。以下に示される非マスキング率rも同様にして得られる。
上述から、
「d=4かつr=0.5のとき、精度「0.991」が見込まれる」
と判定できる。
精度「0.999」以上の条件に対して、点Q2と点Q3とが選択されている。点Q2と点Q3とについて説明する。
点Q2は、精度「0.999」以上、かつ、最も倍率が小さくなる点である。つまり、次元数dは「20」であり、上記式(6)により非マスキング率rとして「0.5」を得るため、4drを算出することで、データ量が元データに対して「40」倍となることを予測する。点Q2の精度は「0.999」であるから、
「d=20かつr=0.5のとき、精度「0.999」が見込まれ、保持するデータのサイズは元データの40倍程になり得る」
と判定できる。
点Q3は、精度「0.999」以上、かつ、最も精度が高い点である。点Q3に関して、次元数dは「100」であり、上記式(6)により非マスキング率rとして「0.5」を得るため、4drを算出することで、データ量が元データに対して「200」倍となることを予測する。点Q3の精度は「0.9995」であるから、
「d=100かつr=0.5のとき、精度「0.9995」が見込まれ、保持するデータのサイズは元データの100倍程になり得る」
と判定できる。
上述では、非マスキング率r=0.5であるため、マスキング率(1−r)も0.5とである。
上述した点Q1〜Q3から得られた判定結果に基づいて表示される設定情報画面例について説明する。図19は、設定情報画面の例を示す図である。図19(A)は、条件に倍率が指定された場合の設定情報画面例を示している。図19(B)は、条件に精度が指定された場合の設定情報画面例を示している。
図19(A)に例示する設定情報画面G98aは、図18の点Q1から得られた情報を示す画面であり、ユーザの所望の倍率にした場合の種々の情報を表示する表示領域99aと、キャンセルボタン99bと、確定ボタン99cと、終了ボタン99dとを有する。
倍率「8」が指定された場合、表示領域99aには、例えば、
「保持するデータのサイズを
元データの8倍以下に抑えたい場合、
次元数=4 かつ マスキング率=0.5
を得ました。この場合、0.991の精度を見込めます。」
のようなメッセージが表示される。マスキング率では、与えられた非マスキング率rを1から減算した値を表示すればよい。以下も同様である。
ユーザがこの表示内容を確認し、キャンセルボタン99bを押下すると、図17の条件設定画面G97が表示され、ユーザは、条件の再設定を行うことができる。確定ボタン99cが押下された場合、次元数「4」及びマスキング率「0.5」が設定され、検知用データ生成処理における対象文書60と、剽窃検知処理における問合文書70の各語のベクトル表現は4次元で行われ、検知用データ生成処理における変換後対象文書行列62aに対するマスキングはマスキング率「0.5」で行われる。変換後対象文書行列62aの行の総数に対して上位から半分までがマスキングされる。終了ボタン99dが押下された場合、初期設定部30は、初期設定処理を終了する。
図19(B)に例示する設定情報画面G98bは、図18の点Q2及び点Q3から得られた情報を示す画面であり、ユーザの所望する精度を得るための次元数とマスキング率とによる組合せの候補を選択可能に表示する選択領域99gと、設定情報画面G98aと同様のキャンセルボタン99bと、確定ボタン99cと、終了ボタン99dとを有する。
精度「0.999」以上が指定された場合、選択領域99gには、例えば、第1の候補として、
「次元数=100 かつ マスキング率=0.5 の場合に、
0.9995の精度を見込めます。
保持するデータのサイズは元データの200倍です。」
が示される。また、第2の候補として、
「次元数=20 かつ マスキング率=0.5 の場合に、
0.999の精度を見込めます。
保持するデータのサイズは元データの40倍です。」
が示される。
ユーザは、第1の候補か第2の候補かを選択し、確定ボタン99cを押下することで、選択された候補で示される次元数とマスキング率とが、図19(A)で説明したように、検知用データ生成処理及び剽窃検知処理とに適用される。
例えば、第2の候補が選択された場合、検知用データ生成処理における対象文書60と、剽窃検知処理における問合文書70の各語のベクトル表現は20次元で行われ、検知用データ生成処理における変換後対象文書行列62aに対するマスキングはマスキング率「0.5」で行われる。変換後対象文書行列62aの行の総数に対して上位から半分がマスキングされる。キャンセルボタン99b及び終了ボタン99dについては、図19(A)で説明した通りであるので、ここでは省略する。
本実施例において、実験結果20が得られていない場合、一般的な文書について、語彙数の対数程度の次元数dのランダムなベクトル表現により、高精度でスコアベクトルを近似可能である。また、マスキング率が0.5のとき剽窃検知の精度低下はほぼ無い。従って、マスキング率は0.5を規定値とし、次元数dも経験値を規定値として定めてもよい。
本実施例では、上述した剽窃検知用データ69のデータ量の削減に加え、図3(B)の畳み込み演算に係る計算量を低減する。先ず、2つの問合文書70と対象文書60(以下、単に、文書という場合がある)のそれぞれの語又は文字列を入力とし、全ての位置ずれ(図3(B))についての語の一致数bを得る既存の計算方法について説明する。以下の説明では、全ての位置ずれで2つの文書を対応させて得る語の一致数を「相関」という。
文章間の相関を求める関連技術として、相関を求める高速アルゴリズムFFT(Fast Fourier Transform)‐based Algorithm(以下、単に、FFTという場合がある)が存在する。FFT‐based Algorithmは、離散フーリエ変換(DFT)を計算機上で高速に計算するアルゴリズムである。生成装置100において、上述した離散フーリエ変換(DFT)は、FFTにより行われ、逆離散フーリエ変換(逆DFT)は、逆FFTにより行われる。
FFTの処理では、O(nlogn)時間の畳み込み演算がσ回繰り返えされる。ここで、σは語又は文字列の種類の数を示し、nは各文章の語数又は文字列の長さを示す。
次に、相関の計算時間について考察する。相関計算の例として、語の比較を順に行う単純計算と、FFTを用いた計算量について比較する。
基本的に、σ≦nと見なせる場合、FFTが単純計算より高速である。即ち、σが一定で小さい場合、O(n2)とO(nlogn)の比較と見なせる。しかしながら、σが不定で小さい場合、O(n2logσ)に対するO(σnlogσ)の利点が小さい。即ち、σが大きい場合は想定されておらず、一定で小さいσを想定し、計算時間をO(nlogn)として扱っている(非特許文献1、2)。そのため、FFTの実行回数が多くなるという問題がある。
この問題に対して、畳み込みの繰り返しからk回分の結果だけを使って近似することが提案されている(非特許文献3、4、5)。しかしながら、畳み込み演算を一つの処理単位として扱っているため、畳み込み演算の処理回数の削減に留まっている。
さらに、このような近似的手法(非特許文献3、4、5)では、厳密な値でなく近似値を出力している。長さnの文書について、k回の繰り返しによる相関ciの推定値の分散は(n‐ci)/kで表される。近似値が正しい値ciに対して散らばる程度を表わす。大きなnについて誤差が大きく、長い文書に適していない。さらに、小さなciについて誤差が大きい。相関のうち小さい値の推定値の精度が低いことを示す。つまり、移動平均の計算や相関全体をベクトルとして機械学習等に用いる場合に適用できない。
従来より、畳み込み演算は信号処理等の分野で一般的な概念である。信号処理では、データは、送受信間の通信で定められるデータ長を処理単位として処理されるためσが小さい。
また、畳み込み演算は、プログラミング言語においても既存の関数を利用できる。このような開発環境において、畳み込み演算内での処理負荷について詳細な解析がなされることがなかった。学会誌、学術論文等の文書の長さは、通信におけるデータ長よりはるかに大きい。
本実施例では、σが大きな場合に、更なる処理の高速化を実現し、近年の文書間の比較等での大きなσの大量データに対して相関を求める需要に対応する。
ここで、相関の計算時間における課題は、現実的な実行時間の削減である。具体的には、σnlogσに対する係数部分、即ち、FFTの実行回数を削減することである。発明者は、畳み込み演算が、DFTと逆DFTの処理により行われることに着目し、大きなσの大量データを扱う場合の相関の計算処理の高速化を実現した。大きなσの大量データを、以下の説明では、2つの文書を例として説明する。
2文書s,t間の相関を求める場合、2文書s,tの各文字列内で連続した2語以上で類似する類似部分の位置は必ずしも同一位置ではない。類似部分が出現する位置がずれている場合についても考慮する必要がある。相関で考慮される位置ずれについて説明する。
まず、2つの文字列間の相関計算に係る表記を以下に定義する。
文書sと文書tの語は、長さnの文字列全体からなる集合Σ
nの要素として表される。
文書sと文書tとの相関c(s,t)は、2n‐1次元ベクトルで表され、i番目の要素は、
のように文字列を数式のように表わすことで、範囲外の形式的な比較のためにダミーの語を付加することを表現する。このようにすることで、位置ずれを考慮して相関を算出できる。
図20は、位置ずれを説明するための図である。図20では、文書sの文書tに対する語の位置ずれを考慮するために、文書tの前後に、文書sにも文書tにも属さないダミーの語を付加する概念図を示している。
文章sを1語ずつずらして、ずらした位置における文書tの1語との相関を算出する。文書tに対して、文書sでは語順を変えてある場合がずれ位置に相当する。1語ずらすごとに相関を算出することで、ずれごとの相関c1, c2,・・・, c2n‐1を得る。
全ての位置ずれを考慮した相関c(s,t)は、全ての位置ずれでの語の一致の数に相当するとした場合、単純な計算ではO(n2)回の語の比較が行われる。ここで、1回の語の比較の時間はlogσに依存する。
図20は、文書間の相関の例を示す図である。図20では、文章sは文字列“abbacab”であり、文書tは文字列“ababbac”である場合の相関の例を示している。図20において、ダミーの語xは空欄で表している。
文書tの前後にn‐1後のダミーを付加した文書t’の先頭に文書sの先頭を合せて、一語ずつ文書sをずらして一致する語数をカウントする。この例では、文書t’の先頭に文書sの先頭を合せた場合には、文書sと文書tとに一致する語が存在しない。従って、相関c1は0となる。一語ずらすと、文書sの末尾2語と文書tの先頭2語とが一致する。従って、相関c2は2となる。
更に1語ずらした相関c3は0となる。順に、相関c4は3、相関c5は1、相関c6は2、相関c7は3、相関c8は1、相関c9は5、相関c10は1、相関c11は0、相関c12は1、そして、相関c13は0となる。
ここで、語又は文字列の種類毎に行われるFFTによる畳み込みの計算について説明する。2つのn次元ベクトルuとvとの巡回畳み込みrは、
で表される。ただし、‐n+1≦i≦0についてはv
i=v
n+iである。
R,U,Vをそれぞれr,u,vの離散フーリエ変換としoを要素ごとの積(内積)とすると、
で表される。このことから、rは、uとvとからFFTによりO(nlogn)時間で計算可能である。計算ルートと計算時間との関係を図21で説明する。
図21は、計算と計算時間との関係を説明するための図である。図21において、nは文章の長さを表わす。uとvとからrを得る計算、即ち、語uと語vの比較rを行う計算の場合、計算時間O(n2)で表される。
一方、u,vの離散フーリエ変換U,Vの計算時間はO(nlogn)であり、U,Vの要素毎の積Rの計算時間は、O(n)である。また、Rからrへの逆FFTの計算時間は、O(nlogn)である。
次に、FFT‐based Algorithmの概要について説明する。FFT‐based Algorithmでは、語を数値化し、文字列間の相関をベクトルの畳み込みにより計算する。そうすることで、文字列全体の集合Σ内のある語aを1、それ以外を0に置き換えると、語aの一致のみを考慮した相関を畳み込み演算で算出でき、O(nlogn)時間で計算可能である。文書から数値列への置き換えはO(n)時間である。また、乗算で一致又は不一致を表現できるため、畳み込み演算が適用可能である。
文字列全体の集合Σ内の要素である語又は文字列の種類ごとに、O(nlogn)時間の畳み込み演算を行うため、語又は文字列の種類の数のσ回繰り返される。そして、ベクトルの要素ごとの和をとることで相関を算出する。即ち、ある位置ずれでの相関ciが求まる。また、ベクトルの内積の和をとるため、得られた相関は重み付き相関とみなせる。
より具体的に、FFT‐based Algorithmの計算式を以下に示す。
について、φ
aはaを1、それ以外を0に写す関数とし、定義(数3)より、n≦i≦2n‐1について、
(ua,1,ua,2,...,ua,2n‐1)と(va,1,va,2,...,va,2n‐1)とを、
である。数11では、1≦i≦nのときには、片方を反転させ、n≦i≦2n‐1のときには、0を埋める。2n‐1次元ベクトルとすると、数10は、
類似部分の位置ずれを考慮した場合、語又は文字列の種類(文字列全体の集合Σ内の要素)の数分の畳み込み演算を繰り返すことになり、計算時間が長くなる。
・1回の畳み込み演算に対して、2回のFFT、1回のベクトルの要素ごとの積(内積)、1回の逆FFTが行われる。ここで、逆FFTの計算時間はFFTの計算時間に相当すると考えられる。
・それぞれの1回の計算時間は、FFTがO(nlogn)時間、要素ごとの積はO(n)時間であり、FFTが支配的である。
・従って、1回の相関の計算で、FFTが3σ回必要であることが分かる。
また、畳み込み演算の繰り返しの回数σは、アルファベットサイズσに対する論理的な最小値である。
語又は文字列の種類ごとに畳み込み演算を行い、その結果を集約する関連技術に対して、発明者は、畳み込み演算の最後の処理であるフーリエ変換(逆FFT)の前に集約することで、フーリエ変換の回数を削減することを見出した。フーリエ変換の回数を削減するために、発明者が着目した計算式の変形について説明する。
raをuaとvaの巡回畳み込みとすると、相関c(s,t)は、
と表示することにする。そして、fを離散フーリエ変換、R
a=f(r
a)とすると、数15は、
と変形できる。数16の右辺より、ベクトルの要素ごとの加算後に逆FFTを行なえばよいことが分かる。要素ごとの加算後の逆FFTは、1回のFFTと見なせる。
図22は、計算方法の概念図を示す図である。図22において、畳み込み演算2pと、畳み込み演算2pを行わない単純な方法の計算部分は、集合Σの要素(語又は文字列の種類)ごとに処理が繰り返される部分である。即ちσ回数繰り返される。その後、得られたσ個のベクトルの要素ごとに値を合算して、文書sと文書tとの相関c(s,t)が得られる。
関連技術において、畳み込み演算2pでは、FFTの計算が、離散フーリエ変換時に2σ回行われ、逆FFT時にσ回行われるため、合計3σ回行われる。
一方、本実施例では、畳み込み演算2pのうち、逆FFTの実行前に、ベクトルの要素ごとの加算を行い、その結果に対して逆FFTを行うことで、逆FFTの計算回数をσ回から1回に削減する。本実施例では、σが大きいほど効果を奏し、関連技術に比べて、約3分の2の時間で2文書間の相関を取得できる。
また、σが小さい場合、応用の観点から各語での相関が得ることが必要となる場合があるが、σが大きい場合、特定語での相関が必要であっても、その他の語として大きなσを考える必要があり、その観点において、本実施例がより適していると言える。図3(B)の畳み込み演算に関する、上述した逆FFTの計算回数をσ回から1回に削減する手法は、同一出願人による特願2016−201933及び特願2016−229208の内容に基づく。
逆FFTの計算回数をσ回から1回に削減する第3の機能構成例について説明する。図23は、生成装置の第3の機能構成例を示す図である。図23において、生成装置100は、主に、検知用データ生成部40と、剽窃検知部50−2とを有する。記憶部130は、第1の機能構成における、対象文書60、対象文書行列データ61、変換後対象文書行列データ62、削減行列データ63、剽窃検知用データ69、問合文書70、問合文書行列データ71、変換後問合文書行列データ72、要素積行列データ73、及び一致数ベクトルデータ79等に加えて、要素合算ベクトルデータ77を有する。検知用データ生成部40の機能構成は第1の機能構成と同様であるためその説明を省略する。
剽窃検知部50−2は、ユーザからの剽窃部分を含んでいないかを判定する問合文書70を指定した要求に応じて、剽窃検知用データ69を用いて剽窃を検知する処理部である。剽窃検知部50−2では、逆離散フーリエ変換を1回でとするための構成として、第1の機能構成の問合文書行列生成部51、問合文書変換部52、及び要素乗算部53を含むが、第1の機能構成の逆変換部54及び要素合算部59の代わりに、変換前要素合算部57と、合算後逆変換部58とを含む。問合文書行列生成部51、問合文書変換部52、及び要素乗算部53は、第1の機能構成と同様であるため、その説明を省略する。
変換前要素合算部57は、変換後問合文書行列データ72と剽窃検知用データ69の要素の積を表す要素積行列データ73に対して、行ごとに要素を合算して、要素合算ベクトルデータ77を作成する。要素合算ベクトルデータ77は、記憶部130に記憶される。
合算後逆変換部58は、要素合算ベクトルデータ77に対して逆離散フーリエ変換を行い、一致数ベクトルデータ79を得る。一致数ベクトルデータ79は、記憶部130に記憶される。合算後逆変換部58は、一致数ベクトルデータ79を表示装置15に表示してもよい。
図24は、図23の第3の機能構成例における剽窃検知処理を説明するための図である。図24(A)ではフローチャートを示し、図24(B)では処理の過程を示す。図24(A)において、剽窃検知部50−2は、ユーザからの問合文書70を指定した要求に応じて、ステップS531からS535を行い、語ごとの一致数を示す一致数ベクトルデータ79を出力する。
剽窃検知部50において、問合文書行列生成部51は、問合文書70の語ごとのベクトルを作成し、問合文書70を表す問合文書行列データ71を生成する(ステップS531)。問合文書変換部52は、問合文書行列生成部51が生成した問合文書行列データ71に対して離散フーリエ変換を行い、変換後問合行列データ72を得る(ステップS532)。
要素乗算部53は、変換後問合行列データ72と剽窃検知用データ69とで、要素ごとに乗算し、要素の積で表される要素積行列データ73を作成する(ステップS533)。本実施例において、作成される要素積行列データ73は、上位行がマスキングされた行列を示す。
そして、変換前要素合算部57は、要素積行列データ73の行ごとに要素を合算し、要素合算ベクトルデータ77を得る(ステップS534)。要素合算ベクトルデータ77は、記憶部130に記憶される。
合算後逆変換部58は、要素合算ベクトルデータ77に対して逆離散フーリエ変換を行って、一致数ベクトルデータ79を得る(ステップS535)。合算後逆変換部58による逆離散フーリエ変換は1回のみである。一致数ベクトルデータ79は、記憶部130に記憶される。合算後逆変換部58は、一致数ベクトルデータ79を表示装置15に表示させてもよい。
上述したように、本実施例により、剽窃検知に利用できるスコアベクトルの低周波成分を保持しつつ、上位行のマスキングにより、剽窃検知用データ69のデータ量を削減することができる。
上記において、削減行列63aは検知用行列の一例であり、対象文書行列61aは数値行列の一例であり、変換後対象文書行列62aは変換行列の一例である。また、剽窃検知用データ69は検知用行列を表すデータの一例であり、対象文書行列データ61は数値行列を表すデータの一例であり、変換後対象文書行列データ62は変換行列を表すデータの一例である。更に、対象文書行列生成部41は対象文書60を行列へ変換する変換部の一例であり、対象文書変換部42は変換行列を生成する生成部の一例である。
また、問合文書行列データ71は数値行列を表すデータの一例であり、変換後問合文書行列データ72は変換行列を表すデータの一例であり、要素積行列データ73は、要素積行列を表すデータの一例である。一致数ベクトルデータ79は対象文書60と問合文書70との一致に係るベクトルを表すデータの一例である。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
対象文書を数値行列に変換し、
前記数値行列を離散フーリエ変換することで変換行列を生成し、
前記変換行列の上位行を0でマスキングして、剽窃検知に用いる検知用行列を生成する
処理をコンピュータに行わせる生成プログラム。
(付記2)
前記コンピュータに、
前記対象文書のサイズに応じて前記上位行に対する前記マスキングの範囲を決定させる
処理を行わせる付記1記載の生成プログラム。
(付記3)
前記コンピュータに、
前記対象文書のサイズに対する倍率の指定に応じて、該対象文書の次元数と、マスキング率と、該倍率とで表される条件式を用いて、該倍率を超えない該次元数と該マスキング率とを特定する
処理を行わせる付記2記載の生成プログラム。
(付記4)
前記コンピュータに、
特定した前記倍率と基準次元数とで表される式によって、データ削減率を取得し、
記憶部に記憶された、次元ごとにデータ削減率と剽窃検知精度との関係を示す実験結果を参照して、取得した前記データ削減率を満たす次元と剽窃検知精度とを取得する
処理を行わせる付記3記載の生成プログラム。
(付記5)
前記コンピュータに、
指定された剽窃検知精度に基づいて前記上位行に対する前記マスキングの範囲を決定させる
処理を行わせる付記1記載の生成プログラム。
(付記6)
前記コンピュータに、
記憶部に記憶された、次元ごとにデータ削減率と剽窃検知精度との関係を示した実験結果を参照して、指定された前記剽窃検知精度に対応する剽窃検知精度を取得する
処理を行わせる付記5記載の生成プログラム。
(付記7)
前記コンピュータに、
前記実験結果のうち、指定された前記剽窃検知精度を満たし、かつ、最小の倍率となる次元及びデータ削減率とを取得し、
取得した前記次元及び前記データ削減率と、基準次元数とを用いて、前記マスキングの範囲を表すマスキング率を取得する
処理を行わせる付記6記載の生成プログラム。
(付記8)
前記コンピュータに、
前記実験結果のうち、指定された前記剽窃検知精度以上、かつ、最大の精度となる次元及びデータ削減率とを取得し、
取得した前記次元及び前記データ削減率と、基準次元数とを用いて、前記マスキングの範囲を表すマスキング率を取得する
処理を行わせる付記6記載の生成プログラム。
(付記9)
対象文書を数値行列に変換し、
前記数値行列を離散フーリエ変換することで変換行列を生成し、
前記変換行列の上位行を0でマスキングして、剽窃検知に用いる検知用行列を生成する
処理をコンピュータが行う生成方法。
(付記10)
対象文書を数値行列に変換する変換部と、
前記数値行列を離散フーリエ変換することで変換行列を生成する生成部と、
前記変換行列の上位行を0でマスキングして、剽窃検知に用いる検知用行列を生成するマスキング部と、
を有する生成装置。
(付記11)
対象文書を第1数値行列に変換し、
前記第1数値行列を離散フーリエ変換することで第1変換行列を生成し、
前記第1変換行列の上位行を0でマスキングして、剽窃検知に用いる検知用行列を生成し、
問合文書を第2数値行列に変換し、
前記第2数値行列を前記離散フーリエ変換することで第2変換行列を生成し、 前記第2変換行列を要素ごとに乗算して、要素積行列を作成し、
作成された前記要素積行列の要素を行ごとに合算した後に、逆離散フーリエ変換を行って前記対象文書と前記問合文書との一致に係るベクトルを取得する
処理をコンピュータに行わせる剽窃検知プログラム。
(付記12)
前記要素積行列の要素を行ごとに合算して得た値は、前記対象文書と前記問合文書との重み付き相関を表すことを特徴とする付記11記載の剽窃検知プログラム。