(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024108323
(43)【公開日】2024-08-13
(54)【発明の名称】文章管理システム及び文章管理プログラム
(51)【国際特許分類】
G06F 16/332 20190101AFI20240805BHJP
【FI】
G06F16/332
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023012632
(22)【出願日】2023-01-31
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【弁理士】
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【弁理士】
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【弁理士】
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】山本 敬之
(72)【発明者】
【氏名】金田 健太郎
(72)【発明者】
【氏名】▲高▼橋 勇太
(72)【発明者】
【氏名】川▲崎▼ 正幸
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175HB03
(57)【要約】
【課題】文章全体が意味するところを把握したい用途に向く文章管理システム等を提供すること。
【解決手段】文章管理システム100は、着目文章及び複数の比較文章を取得する取得部112と、着目文章と各比較文章との文章距離を算出する距離算出部116と、着目文章と比較文章と文章距離の順に比較文書名を並べたリストと、を同時に表示させる表示処理部118と、を備える。距離算出部116は、着目文章と各比較文章との間の単語単位での編集の数を計算することで文章距離を算出する。表示処理部118は、着目文章と比較文章との間の編集の位置について、文章距離に応じた態様で表示する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
着目文章及び複数の比較文章を取得する取得部と、
前記着目文章と各比較文章との文章距離を算出する距離算出部と、
前記着目文章と比較文章と前記文章距離の順に比較文書名を並べたリストと、を同時に表示させる表示処理部と、
を備え、
前記距離算出部は、前記着目文章と前記各比較文章との間の単語単位での編集の数を計算することで前記文章距離を算出し、
前記表示処理部は、前記着目文章と前記比較文章との間の編集の位置について、前記文章距離に応じた態様で表示することを特徴とする文章管理システム。
【請求項2】
請求項1に記載された文章管理システムにおいて、
前記距離算出部は、前記編集の数に対して編集の種類に応じた編集重みを用いて加算することで前記文章距離を算出することを特徴とする文章管理システム。
【請求項3】
請求項2に記載された文章管理システムにおいて、
前記編集重みの設定をユーザーから受け付ける重み受け付け部をさらに備えることを特徴とする文章管理システム。
【請求項4】
請求項1に記載された文章管理システムにおいて、
前記取得部は、比較文章間の文章距離も取得し、
前記距離算出部は、三角不等式により文章距離が遠い前記着目文章と比較文章の前記文章距離は算出しないことを特徴とする文章管理システム。
【請求項5】
請求項2に記載された文章管理システムにおいて、
前記編集重みは、類義語のデータベースに含まれる類義語に置換された編集よりも非類義語に置換された編集の方が重いことを特徴とする文章管理システム。
【請求項6】
請求項1に記載された文章管理システムにおいて、
前記編集は、単語の挿入、削除及び置換を含むことを特徴とする文章管理システム。
【請求項7】
請求項6に記載された文章管理システムにおいて、
前記編集は、単語のスペルミス及び単語の誤記の少なくとも一方を更に含むことを特徴とする文章管理システム。
【請求項8】
請求項1に記載された文章管理システムにおいて、
前記表示処理部は、前記着目文章と前記比較文章との間の非一致単語を強調することで、前記編集の位置を表示することを特徴とする文章管理システム。
【請求項9】
着目文章及び複数の比較文章を取得するステップと、
前記着目文章と各比較文章との間の単語単位での編集の数を計算することで、前記着目文章と前記各比較文章との文章距離を算出するステップと、
前記着目文章と比較文章と前記文章距離の順に比較文書名を並べたリストと、を同時に表示させると共に、前記着目文章と前記比較文章との間の編集の位置について、前記文章距離に応じた態様で表示するステップと、
をコンピューターに実行させることを特徴とする文章管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文章管理システム及び文章管理プログラム等に関する。
【背景技術】
【0002】
非特許文献1には、調査対象の文章がインターネット上のテキストをコピーアンドペーストしたものであるか否かを判別することを目的とした、文章比較ツールが開示されている。このツールは、調査対象の文章とインターネット上の候補テキストとの類似度の一覧表示、及び調査対象の文章とテキストとの対比表示を備えている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】“記事・文章コピペチェックツール「コピペリン」”,[online],株式会社サクラボ,[令和5年1月6日検索],インターネット<URL:https://saku-tools.info/copyperin/>
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1の文章比較ツールは、インターネット上からテキストをコピーアンドペーストしたか否かを判別することを目的として比較アルゴリズムと表示態様が設計されている。このため、非特許文献1の文章比較ツールは、文章全体が意味するところを把握したい用途にはむかないという課題がある。
【課題を解決するための手段】
【0005】
本開示の一態様は、着目文章及び複数の比較文章を取得する取得部と、前記着目文章と各比較文章との文章距離を算出する距離算出部と、前記着目文章と比較文章と前記文章距離の順に比較文書名を並べたリストと、を同時に表示させる表示処理部と、を備え、前記距離算出部は、前記着目文章と前記各比較文章との間の単語単位での編集の数を計算することで前記文章距離を算出し、前記表示処理部は、前記着目文章と前記比較文章との間の編集の位置について、前記文章距離に応じた態様で表示する文章管理システムに関係する。
【0006】
また本開示の他の態様は、着目文章及び複数の比較文章を取得するステップと、前記着目文章と各比較文章との間の単語単位での編集の数を計算することで、前記着目文章と前記各比較文章との文章距離を算出するステップと、前記着目文章と比較文章と前記文章距離の順に比較文書名を並べたリストと、を同時に表示させると共に、前記着目文章と前記比較文章との間の編集の位置について、前記文章距離に応じた態様で表示するステップと、をコンピューターに実行させることを特徴とする文章管理プログラムに関係する。
【図面の簡単な説明】
【0007】
【
図4】第1詳細例における文章距離算出を説明する図
【
図5】第1詳細例における一致部分特定を説明する図
【
図7】着目文章と比較文章の表示における文字色及び背景色の例
【
図8】第2詳細例における文章距離算出を説明する図
【
図9】第2詳細例における一致部分特定を説明する図
【
図11】第3詳細例における文章距離算出を説明する図
【
図12】第3詳細例における一致部分特定を説明する図
【
図14】第4詳細例における文章距離算出を説明する図
【
図15】第4詳細例における一致部分特定を説明する図
【
図17】三角不等式を用いて探索を省略する手法のフロー
【
図19】三角不等式により推定される類似度の範囲の例
【
図20】三角不等式により推定された編集距離の範囲及び類似度の範囲の一覧
【発明を実施するための形態】
【0008】
以下、本開示の好適な実施形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された内容を不当に限定するものではなく、本実施形態で説明される構成の全てが必須構成要件であるとは限らない。
【0009】
1.文章管理システム
図1は、文章管理システムの構成例である。文章管理システム100は、処理部110と記憶部120と表示部180と操作部190とを含む。文章管理システム100は、PC等の情報処理装置で構成される。或いは、文章管理システム100は、複数の情報処理装置を用いた分散処理システム又はクラウドシステムによって実現されてもよい。
【0010】
表示部180は、処理部110が出力した画像を表示する。表示部180は、ディスプレイ又はモニター等とも呼ばれ、例えば液晶表示装置である。操作部190は、ユーザーからの操作入力を受け付ける。操作部190は、例えば、マウス又はタッチパネル等のポインティングデバイス、キーボード、ボタン或いはダイヤルである。
【0011】
記憶部120は、着目文章と比較するための複数の比較文章を含んだ比較文章データ122を記憶する。また記憶部120は、処理部110の各部が行う処理の内容が記述されたプログラム124を記憶してもよい。記憶部120は、半導体メモリー、ハードディスクドライブ又は光学ドライブ等である。半導体メモリーは、例えば、RAM等の揮発性メモリー、又はEEPROM等の不揮発性メモリーである。
【0012】
処理部110は、一例としてプロセッサーである。プロセッサーは、例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、マイクロコンピューター、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)等である。プロセッサーは、CPU、GPU、マイクロコンピューター、DSP、ASIC及びFPGA等のうち1又は複数で構成されてもよい。プロセッサーは、プログラム124を実行することで、処理部110の各部の機能を処理として実現する。
【0013】
処理部110は、上記のようなソフトウェア処理に限定されず、各部の機能をハードウェア的に実装した回路であってもよい。その場合には、記憶部120はプログラム124を記憶していなくてもよい。
【0014】
処理部110は、着目文章と比較文章の比較を行い、その比較結果を表示部180に表示させる。着目文章とは、文章管理システム100を用いて調査される調査対象の文章である。比較文章とは、着目文章と比較される文章である。例えば、後述するオープンソースソフトウェア(以下、OSSと省略する)のライセンスにおいて、利用したいオープンソースソフトウェアに添付されたライセンスが着目文章である。文章管理システム100をOSSのライセンスに適用した場合には、例えばライセンスの類型判断が目的となるが、その類型を示すライセンス文章が、比較文章である。
【0015】
なお、着目文章及び比較文章はOSSのライセンスに限らず様々な文章であってよい。一例としては、着目文章及び比較文章は、定型的な文章、或いは、それを編集することで生成された文章であってもよい。その場合、定型的な文章が比較文章となり、それを編集することで生成された文章が着目文章となる。或いは、着目文章及び比較文章は、改訂履歴などのように初版の文章を編集することで生成される文章であってもよい。この場合、例えば、初版が段階的に編集されることで複数の版が生成され、その各版の文章が比較文章となり、どの版に最も近いかを判定したい文章が着目文章となる。
【0016】
処理部110は、取得部112と距離算出部116と表示処理部118とを含む。また処理部110は、重み受け付け部114を更に含んでもよい。
【0017】
取得部112は、着目文章及び複数の比較文章を取得する。距離算出部116は、着目文章と各比較文章との文章距離を算出する。表示処理部118は、着目文章と、比較文章と、文章距離の順に比較文書名を並べたリストと、を同時に表示させる。距離算出部116は、着目文章と各比較文章との間の単語単位での編集の数を計算することで文章距離を算出する。表示処理部118は、着目文章と比較文章との間の編集の位置について、文章距離に応じた態様で表示する。
【0018】
これにより、着目文章と比較文章の文章距離を算出し、その文章距離に基づく類似度順に比較文章を並べてリスト表示すると共に、対比表示によって着目文章と比較文章の異同を可視化できる。また以下のように、本実施形態によれば文章間の意味の相違を把握しやすくなる。
【0019】
文章間の意味の相違は、文字単位の違いよりも単語単位の違いによって生じることが多いと考えられる。文字単位の文章比較では、文章間の意味の相違が適切に評価されず、着目文章と比較文章の意味の違いを把握しにくい可能性がある。本実施形態によれば単語単位の比較によって文章距離が算出されるので、その文章距離に基づく対比表示によって、着目文章と比較文章の意味の違いを把握しやすくなる。
【0020】
また、互いに異なるアルゴリズムで算出された類似度に基づいて一覧表示と対比表示が行われた場合には、一覧表示で類似度が上位にあることと、対比表示で一致部分が多いことが連動しない可能性がある。文章間の類似度が高く、文章間の一致部分が多ければ、その文章間の意味が近い可能性が高いと考えられるが、類似度と一致部分の多寡が連動しないことで、文章間の意味の相違を判断しにくくなる。本実施形態によれば、リスト表示が文章距離に応じてソートされており、その文章距離に応じた態様で着目文章と比較文章との間の編集の位置が表示される。これにより、一覧表示で類似度が上位にあることと、対比表示で一致部分が多いことが連動しやすくなり、文章間の意味の相違を判断しやすくなる。
【0021】
このように文章間の意味の相違を把握しやすいことで、例えば、後述するOSSのライセンス比較においては、調査対象のライセンスに対して許諾条件が最も近いライセンス類型を、発見しやすくなる。
【0022】
なお、文章距離とは、着目文章と比較文章とでどれだけ似ているのかを表す指標である。文章が似ていれば似ているほど文章距離は小さくなる。編集とは、文章に変更を加えることである。一例として、編集は、単語の挿入、削除及び置換を含む。置換は、異義語への置換、同義語への置換、又は類義語への置換を含んでよい。また置換は、曖昧な同一単語への置換を含んでもよい。曖昧な同一単語の一例は、スペルミス、誤記、名詞の単数形と複数形、又は動詞の活用形である。編集の数とは、ある文章に幾つかの編集を加えることによって別の文章に変換できる場合において、その加えた編集の数のことである。編集の位置の表示は、一例としては、編集された単語の強調表示であるが、これに限定されず、どの単語が編集されたのか認識できる表示であればよい。文章距離に応じた態様とは、表示される編集の位置が文章距離に応じて変化することである。即ち、ある着目文章と比較文章の組み合わせにおいて、どの単語が編集されたかの判別結果は、算出された文章距離に応じて変わる。編集重み等に応じて文章距離が変わると、表示される編集の位置も変わり、それが文章距離に応じた態様で表示することに該当する。
【0023】
また本実施形態では、距離算出部116は、編集の数に対して編集の種類に応じた編集重みを用いて加算することで文章距離を算出してもよい。
【0024】
編集の種類に応じて、その編集が文章の意味に与える影響は異なると考えられる。本実施形態によれば、編集が文章の意味に与える影響に応じた編集重みを用いて、文章距離を算出できるようになるので、文章全体の意味を把握しやすくなる。例えば、意味を変えない編集の編集重みを小さくすることで、相対的に、意味を変える編集の文章距離への寄与が大きくなる。これにより、文章距離が近いことと、文章間の意味が近いことが一致しやすくなるので、文章距離の近い文章を参考にして文章全体の意味を把握しやすくなる。
【0025】
なお、編集重みとは、編集の数を数えるときに、編集の種類に対応して用いられる重み係数のことである。編集重みは、例えば、予め決められた所定の値であってもよいし、文章管理システム100の外部から入力された値であってもよいし、記憶部120に記憶された値であってもよい。なお、編集の種類に応じた重み付けを実施しない場合には、例えば、いずれの編集の種類についても1つの編集を1個と数えればよい、或いは、いずれの編集の種類に対しても同じ編集重みを用いればよい。
【0026】
また本実施形態では、重み受け付け部114は、編集重みの設定をユーザーから受け付けてもよい。
【0027】
本実施形態によれば、ユーザーが編集重みを設定することで、着目文章に近い比較文章を発見しやすくなる。例えば、着目文章に類似した比較文章を発見できなかった場合において、意味を大きく変えない編集の編集重みを小さくすることで、着目文章に意味が近い比較文章を発見しやすくなる。
【0028】
なお、例えばユーザーが操作部190を用いて編集の種類ごとに編集重みを入力し、重み受け付け部114は、その入力された編集重みの情報を受け付ける。この入力された編集重みの情報は、記憶部120に保存されてもよい。
【0029】
また本実施形態では、取得部112は、比較文章間の文章距離も取得してもよい。距離算出部116は、三角不等式により文章距離が遠い着目文章と比較文章の文章距離は算出しなくてもよい。
【0030】
これにより、着目文章と、ある比較文章との間の文章距離、及び、その比較文章と他の比較文章との間の文章距離を用いて、三角不等式により、着目文章と他の比較文章との間の文章距離の範囲を評価できる。その文章距離の範囲に基づいて、着目文章との距離が遠いと評価された比較文章については、着目文章との文章距離の算出を省略できる。これにより、文章距離の計算負荷を低減できる。
【0031】
なお、比較文章間の文章距離は、例えば記憶部120に保存されていてもよいし、或いは文章管理システム100の外部から入力されてもよい。取得部112は、記憶部120に保存された又は外部から入力された比較文章間の文章距離を取得する。比較文章間の文章距離は、予め距離算出部116によって算出されたものであってもよいし、文章管理システム100の外部で算出されたものであってもよい。
【0032】
また本実施形態では、編集重みは、類義語のデータベースに含まれる類義語に置換された編集よりも非類義語に置換された編集の方が重くてもよい。
【0033】
ある単語が非類義語に置換された場合、その単語が類義語に置換された場合よりも文章の意味に与える影響が大きいと考えられる。本実施形態によれば、類義語への置換の編集重みよりも非類義語への置換の編集重みが重いことで、意味を変える編集の編集重みの方が大きくなる。これにより、着目文章に意味が近い比較文章を発見しやすくなる。
【0034】
また本実施形態では、編集は、単語の挿入、削除及び置換を含んでもよい。また編集は、単語のスペルミス及び単語の誤記の少なくとも一方を更に含んでもよい。
【0035】
単語単位の挿入、削除及び置換の数を編集の数として数えることで、単語単位に拡張されたレーベンシュタイン距離を文章距離として算出できる。また、単語単位に拡張されたことによって、単語のスペルミス又は単語の誤記など、文章の意味を変えない編集の文章距離への影響を、小さくできる。これにより、着目文章に意味が近い比較文章を発見しやすくなる。
【0036】
また本実施形態では、表示処理部118は、着目文章と比較文章との間の非一致単語を強調することで、編集の位置を表示してもよい。
【0037】
着目文章と比較文章との間の非一致単語によって、着目文章と比較文章の意味の違いが生じる可能性が高い。本実施形態によれば、着目文章と比較文章との間の非一致単語が強調表示されるので、着目文章と比較文章の意味の違いを判断しやすい。
【0038】
また本実施形態は、文章管理プログラムとして実施されてもよい。文章管理プログラムは、着目文章及び複数の比較文章を取得するステップを、コンピューターに実行させる。文章管理プログラムは、着目文章と各比較文章との間の単語単位での編集の数を計算することで、着目文章と各比較文章との文章距離を算出するステップを、コンピューターに実行させる。文章管理プログラムは、着目文章と比較文章と文章距離の順に比較文書名を並べたリストと、を同時に表示させると共に、着目文章と比較文章との間の編集の位置について、文章距離に応じた態様で表示するステップを、コンピューターに実行させる。
【0039】
なお、コンピューターにより読み取り可能な媒体である非一時的な情報記憶媒体が、文章管理プログラムを格納してもよい。情報記憶媒体は、例えば光ディスク、メモリカード、ハードディスクドライブ、或いは不揮発性の半導体メモリーである。
【0040】
2.文章比較の詳細例
以下では主に着目文章及び比較文章がOSSのライセンスである場合を例にとって説明する。
【0041】
OSSは、ソースコード又はそれがコンパイルされたバイナリーファイルが公開されたソフトウェアである。OSSとして多種多様なソフトウェアが存在しており、個々のOSSは、一定の条件のもとに使用すること又は製品へ組み込むことが許諾される。この許諾条件のテキストをライセンス或いは契約書と呼ぶ。OSSに含まれるソフトウェアごとに多種多様なライセンスがあり、それらのライセンスは同一であったり、似通っていたり、或いは全く異なっていたりする。2つのライセンスが似通っていて、かつ、相違がある場合、その相違の部分に重要な特徴があることも多い。
【0042】
近年、SPDXと言う、OSSのライセンスの標準類型を定める動きが活発になっている。SPDXの仕様は、2021年にISO/IEC 5962:2021 として制定されている。しかし、標準類型が国際標準で制定されたからと言って、過去に公開された多種多様なOSSライセンスが、類型のいずれに該当するかが整理されているわけではない。例えば、“MIT”なるライセンスには、少なくとも24個の亜種が確認されているし、“BSD”なるライセンスには少なくとも16個の亜種が確認されている。これらの亜種が、SPDXで定める類型のいずれに該当するかは、判断が難しい。
【0043】
使用したいOSSのライセンスの類型、及びそのライセンスと類型の差異を判断できれば、そのOSSの許諾条件を知ることが出来る。しかし、ライセンスが標準類型のいずれに該当するかを判断することは非常に煩雑な作業であり、多大な人的リソースを必要とする。例えば、1製品の組み込みソフトウェアに500個程度のOSSが用いられていたとする。各OSSが100程度のソースコードを含んでおり、その各々にライセンスが付与されているとすると、5万個程度のライセンスについて許諾条件を判断しなければならない。このような多量のライセンスについて、該当する類型と差異を判断することは多大な人的リソースを必要とする。
【0044】
また、OSSのライセンスに限らず、一般企業で契約書を作成する際に、テンプレートを用意し、テンプレート上の必要事項を挿入することで、個々の契約書を作成している場合がある。このような例は、例えば特開2002-230467号公報に記載されている。このようにして契約書を量産した場合、個々の契約書を理解するには、どのテンプレートに基づいたかと、テンプレートとの相違点とが重要になる。
【0045】
また、OSSのライセンスであっても一般の契約書であっても、画面表示、印刷又はデータ送受信などの場合に、改行位置が変更されることがある。例えば、フォントのポイントサイズを維持したまま、A4用紙に印刷した場合と、B4用紙に印刷した場合とでは改行位置が異なる。このように改行位置が変更された場合であっても、類型と差異を判断できる必要がある。
【0046】
以下、本実施形態の文章管理システム100が行う文章比較の詳細例を説明する。OSSライセンスの類型はデータベースとして保持されており、
図1において記憶部120が記憶する比較文章データ122に該当する。ライセンスの類型は特定のものである、つまり類型の数は有限であり、且つ各類型のライセンスは特定の文章である。例えば、上述したSPDXの仕様に準拠した類型が用いられる。このデータベースは、例えば、ユーザーによって予め準備されたものであってもよいし、ネットワークからダウンロードされたものであってもよい。
【0047】
図2は、文章管理システムが行う処理のフローである。ステップS1において、取得部112は、調査対象の契約書を読み込む。
【0048】
ステップS2~S5において、比較文章であるデータベース上の契約書に対してステップS3とS4の処理が繰り返される。ステップS3において、取得部112は、データベース上の契約書を1つ読み込む。ステップS4において、距離算出部116は、調査対象の契約書と比較文章の契約書との間の類似度を計算する。
【0049】
ステップS6において、距離算出部116は、ステップS2~S5で計算された類似度の順に、比較文章の契約書をソートする。
【0050】
ステップS7において、距離算出部116は、調査対象の契約書と、比較文章の契約書のうち類似度が最大である契約書との間の一致部分を特定する。
【0051】
ステップS8において、表示処理部118は、調査対象の契約書と、比較文章の契約書のうち類似度が最大である契約書とを表示部180に表示すると共に、各契約書において一致部分に該当しなかった単語を強調表示する。
【0052】
図3は、ステップS4における類似度計算の詳細フローである。ステップS1で読み込まれた調査対象の契約書をテキストAとし、ステップS3で読み込まれた比較文章の契約書をテキストBとする。
【0053】
ステップS11において、距離算出部116は、テキストAを単語ごとに分解し、その単語の語順を変えずにリストAとして格納する。なお、ステップS11は、ステップS1の後に1回実行されればよい。
【0054】
ステップS12において、距離算出部116は、テキストBを単語ごとに分解し、その単語の語順を変えずにリストBとして格納する。
【0055】
リストAの要素数をLAとし、リストBの要素数をLBとする。ステップS13において、距離算出部116は、(LA+1)×(LB+1)の大きさの2次元配列D[x,y]を作成する。xは列番号であり、x=0,1,2,・・・,LAである。yは行番号であり、y=0,1,2,・・・,LBである。
【0056】
ステップS14において、距離算出部116は、2次元配列の最初の列D[0,y]と最初の行D[x,0]を初期化する。
【0057】
ステップS15~S17において、距離算出部116は、2次元配列の残りの要素D[1,1]~D[LA,LB]の各要素についてステップS16を実行する。ステップS16において計算対象となっている要素を対象要素と呼ぶこととする。
【0058】
ステップS16において、距離算出部116は、対象要素の近傍要素と、対象要素に対応するリストA及びリストBの要素とに基づいて、対象要素の値を決定する。
【0059】
ステップS18において、距離算出部116は、2次元配列の最後の要素D[LA,LB]の値を、テキストAとテキストBの間の編集距離として得る。
【0060】
ステップS19において、距離算出部116は、編集距離を適切な値で除算することで、編集距離を0以上1以下の値に正規化する。
【0061】
ステップS20において、距離算出部116は、正規化された編集距離を1から減算することで類似度を得る。なお、着目文章と比較文章の間の文章距離は、文章間の距離を示す指標であればよく、本フローにおいては編集距離、正規化された編集距離又は類似度のいずれであってもよい。
【0062】
2.1.第1詳細例
以下、具体例を用いてステップS4の類似度計算、ステップS7の一致部分特定、及びステップS8の表示について説明する。以下、実際のOSSのライセンス文章の代わりに、一般的な文章を例に挙げて処理内容を説明していく。また、OSSのライセンスに通常用いられる英語を例にしているが、他の言語に対しても同様な手法を適用可能である。
【0063】
着目文章であるテキストA、及び比較文章であるテキストBを、以下とする。ここではテキストA、Bが改行を含まない例を用いているが、テキストA、Bは改行を含んでもよい。
テキストA“I feel very happy today. It is fine Sky and sea live because wind run fast.”
テキストB“It is fine today and I feeel very hapy. Sky and wind run fast because sea live.”
【0064】
図4は、第1詳細例における文章距離算出を説明する図である。本実施形態ではWagner-Fischer法を単語単位の比較に拡張した手法を用いて文章間のレーベンシュタイン距離を算出する。以下、レーベンシュタイン距離を編集距離とも呼ぶ。
【0065】
編集距離の算出において計上される編集として、置換、削除、挿入、類義語への置換、及びスペルミスの補正等がある。第1詳細例では、計上される編集は、置換、挿入及び削除である。また、編集の数の計上において重み付けは行われない。重み付けが行われないことは、置換、挿入及び削除の編集重みが等しいということもできる。第1詳細例では、置換、挿入及び削除の編集重みを1とする。
【0066】
距離算出部116は、テキストAの単語リストAを列方向に並べ、テキストBの単語リストBを行方向に並べる。リストAの要素をA[x]で示し、単語リストBの要素をB[y]で示す。リストAの要素数はLA=16であり、リストBの要素数はLB=17である。即ち、2次元配列D[x,y]の大きさは(LA+1)×(LB+1)=17×18である。なお、テキストA、Bに改行が含まれている場合には、距離算出部116は、改行を無視して単語リストA、Bを生成する。
【0067】
距離算出部116は、第0行の要素をD[x,0]=x×vに初期化し、第0列の要素をD[0,y]=y×vに初期化する。係数vは挿入及び削除の編集重みである。本例においてはv=1である。
【0068】
距離算出部116は、行番号及び列番号の小さい方から大きい方に向かって、順に要素D[x,y]の値を計算していく。即ち、距離算出部116は、第0行について列番号x=0、1、2、・・・、16の順に要素D[x,0]を計算し、次に第1行について列番号x=0、1、2、・・・、16の順に要素D[x,1]を計算し、それを第17行まで繰り返す。距離算出部116は、下式(1)により要素D[x,y]を算出する。A[x]=B[y]は、単語リストAの要素A[x]と単語リストBの要素B[y]とが一致することを示す。本例において単語の一致とは、単語のスペルが一致していることを意味する。min()は、引数のうち最小値を返す関数である。uは置換の編集重みであり、vは挿入及び削除の編集重みである。本例においてはu=v=1である。
【数1】
【0069】
上記の計算の結果、
図4に示す行列が得られる。ハッチングを付した行列要素は、A[x]=B[y]となっている行列要素を示す。距離算出部116は、列番号x及び行番号yが最大の要素D[16,17]を、テキストAとテキストBの間の編集距離とする。
【0070】
距離算出部116は、テキストAとテキストBの間の類似度を編集距離から計算する。類似度は、その値が大きいほど2つのテキストが似通っており、その値が小さいほど2つのテキストが異なっており、100分率で表示できることが望ましい。2つのテキストが完全に異なっている場合において、その2つのテキスト間の距離は、長い方のテキストの単語数に一致する。そこで、距離算出部116は、テキスト間の距離を、長い方のテキストの単語数で除し、その結果を1から引くことで類似度を求める。
図4の例では、テキスト間の距離はD[16,17]=15である。また、長い方のテキストの要素数はLB=17である。これにより、類似度は(1-15/17)×100%=11.8%である。
【0071】
具体的には距離算出部116は、下式(2)により類似度Sを計算する。
図4の例ではLA=16、LB=17、D[16,17]=15、u=v=1なので、S=1-15/(1×16+1×(17-16))=1-15/17=0.118である。100分率で表すとS=11.8%であり、上述の計算結果と同じになる。
【数2】
【0072】
図5は、第1詳細例における一致部分特定を説明する図である。2次元配列D[x.y]上の各要素をノード、要素間の隣接関係をリンクと見立てて、グラフ理論を当てはめることで、テキスト間で対応する単語の特定が可能となる。具体的には、行番号及び列番号が最も大きい要素D[LA,LB]を起点に、ダイクストラ法と類似の動的計画法を用いる。
【0073】
要素間の隣接のうち、有効なリンクは以下の条件1又は条件2を満たすリンクである。
条件1:
(x,y)に対応するテキストAとテキストBの単語が一致する、つまりA[x]=B[y]であるとき、
D[x,y]=D[x+1,y+1]を満たす場合の、(x,y)と(x+1,y+1)のリンク
条件2:
要素D[x,y]に対応するテキストAとテキストBの単語が一致しない、つまりA[x]≠B[y]であるとき、
D[x,y]+u=D[x+1,y+1]を満たす場合の、(x,y)と(x+1,y+1)のリンク
D[x,y]+v=D[x+1,y]を満たす場合の、(x,y)と(x+1,y)のリンク
D[x,y]+v=D[x,y+1]を満たす場合の、(x,y)と(x,y+1)のリンク
【0074】
距離算出部116は、行番号及び列番号が最も大きい要素D[LA,LB]と最も小さい要素D[0,0]とを結ぶ経路のうち、各行番号及び各列番号に対応する単語が一致する個数を最大化する経路を求め、当該経路で一致した単語を対応する単語と看做す。
【0075】
具体的には、距離算出部116は、各要素が3次元ベクトルである2次元配列R[x,y]を用意し、その各要素を計算する。3次元ベクトルの第1要素は列番号xであり、第2要素は行番号yであり、第3要素は、調査済みの経路上において一致した単語の個数である。なお、数式内においてはベクトルを示す矢印記号を付すが、文章中においては矢印記号を省略する。例えばR[x,y]については、数式内においてはRの上に矢印記号を付すが、文章中においては単にRと表記する。
【0076】
まず、距離算出部116は、経路特定の起点である、行番号及び列番号が最大の要素R[LA,LB]に下式(3)の値を代入する。
図5の例ではR[16,17]=(16,17,0)である。
【数3】
【0077】
次に、距離算出部116は、行番号及び列番号が小さくなる方向にR[x,y]を決定していく。距離算出部116は、下記のように条件1を満たすとき式(4)によりR[x,y]を決定し、条件2を満たすとき式(5)によりR[x,y]を決定する。
条件1:
(x+1,y+1)に対応するテキストAとテキストBの単語が一致する、つまりA[x]=B[y]であり、且つ、R[x+1,y+1]に値があるとき、
【数4】
条件2:
(x+1,y+1)に対応するテキストAとテキストBの単語が一致しない、つまりA[x]≠B[y]であるとき、
【数5】
【0078】
下式(6)に示すように、z(r)は、3次元ベクトルrの第3要素を取り出す関数である。
図5の例ではLA=16、LB=17なので、距離算出部116は、第17行について列番号x=16、15、・・・、0の順に要素R[x,17]を計算し、次に第16行について列番号x=16、15、・・・、0の順に要素R[x,16]を計算し、それを第0行まで繰り返す。
【数6】
【0079】
距離算出部116は、2次元配列R[x,y]の全ての要素を判定し終えた後、R[0,0]から順に各要素に格納された行番号及び列番号を次々たどっていくことで、目的とする経路を得る。即ち、距離算出部116は、R[0,0]に格納された第1要素の列番号及び第2要素の行番号を参照し、次に、その列番号及び行番号の要素R[(1,0,0)・R[0,0],(0,1,0)・R[0,0]]に格納された第1要素の列番号及び第2要素の行番号を参照する。距離算出部116は、行番号及び列番号が最大の要素R[LA,LB]にたどり着くまで上記参照を繰り返す。距離算出部116は、この過程で参照された行番号及び列番号の組み合わせをリスト化することで、目的とした経路を取得する。
【0080】
図5では、特定された経路に属する要素を太線枠で示している。この経路においてハッチングが付された要素がテキストAとテキストBの一致単語に該当しており、その一致単語に対応したリストA及びリストAの要素をハッチングで示している。A[x]=B[y]となる(x,y)の組は15個あるが、2次元配列R[x,y]に基づいて経路が決定された結果として、最終的に一致単語数が7個になっている。
【0081】
図6は、第1詳細例における表示の例である。表示処理部118は、着目文章を表示する領域RA、比較文章を表示する領域RB、及び比較文章と類似度の一覧を表示する領域RCを有する画像を、表示部180に表示させる。領域RAとRBは左右に対比表示されており、その右側に領域RCが設けられている。但し、領域RA~RCの配置は
図6に限定されない。
【0082】
領域Cには、比較文章であるライセンス類型の名称が、類似度が高い順にソートされて一覧表示される。ここでは、名称を「ライセンスA」、「ライセンスB」、「ライセンスC」、・・・としている。類似度は、例えば、数値、バー表示、又はその両方によって表示される。
図6には数値とバー表示が両方表示された例を示す。
【0083】
領域RAには、着目文章が表示されると共に、着目文章と比較文章の非一致単語が強調表示される。領域RBには、比較文章が表示されると共に、着目文章と比較文章の非一致単語が強調表示される。
図6には、着目文章としてテキストAを表示し、比較文章としてテキストBを表示した例を示している。テキストA、Bに改行が含まれている場合には、表示処理部118は、テキストA、Bに含まれている改行の位置に準拠してテキストA、Bを表示する。
【0084】
OSSのライセンス比較においては、着目文章は調査対象ライセンスであり、比較文章はライセンス類型である。比較文章は、領域RCに表示されたライセンス一覧のうち最も類似度が高いライセンスA、或いは、領域RCに表示されたライセンス一覧からユーザーが選択したライセンスであってよい。
【0085】
図7に、着目文章と比較文章の表示における文字色及び背景色の例を示す。このような4種類の要素に分類し、各要素に適切な文字色及び背景色を設定することで、相違個所を強調表示できる。要素間のホワイトスペースについては、前後の要素の分類が同一であれば、その分類の色にする。
【0086】
以上のような類似度算出と表示を行うことで、あるライセンスが、いずれの類型に属すか、あるいはいずれのテンプレートから作成されたかが分かると同時に、類型あるいはテンプレートからの相違点が分かる。または、既存の類型に属さない、既存のテンプレートから作成されたものではないということを判断する材料が得られる。また、改行位置が異なる場合であっても、異なる類義語が用いされている場合であっても、文章の内容が実質的に同じものが、見つけられる。
【0087】
2.2.第2詳細例及び第3詳細例
挿入及び削除の編集重みと、置換の編集重みを異ならせた場合の例を説明する。
【0088】
図8は、第2詳細例における文章距離算出を説明する図である。D[x,y]の数値を小数点以下1桁に丸めて図示する。本例において、挿入及び削除の編集重みはv=0.667であり、置換の編集重みはu=1である。比はv:u=0.667:1=2:3である。距離算出部116は、上式(1)により2次元配列D[x,y]の各要素を計算し、D[LA,LB]を編集距離に決定し、上式(2)により類似度Sを計算する。
図8の例では、編集距離はD[16,17]=11.3であり、類似度はS=1-11.3/(1×16+0.667×(17-16))=0.322である。
【0089】
図9は、第2詳細例における一致部分特定を説明する図である。距離算出部116は、上式(3)~(6)により2次元配列R[x,y]の各要素を計算し、R[0,0]から順に各要素に格納された行番号及び列番号をたどることで経路を特定する。本例ではA[x]=B[y]となる(x,y)の組は15個あるが、2次元配列R[x,y]に基づいて経路が決定された結果として、最終的に一致単語数が8個になっている。
【0090】
図10は、第2詳細例における表示の例である。表示処理部118は、
図9で特定された一致単語に基づいて、
図7に示した文字色及び背景色で着目文章と比較文章を対比表示する。また表示処理部118は、
図8と同様にして計算される着目文章と各比較文章の類似度に基づいて、類似度順にソートした比較文章一覧を表示する。
【0091】
図11は、第3詳細例における文章距離算出を説明する図である。本例において、挿入及び削除の編集重みはv=0.875であり、置換の編集重みはu=1である。比はv:u=0.875:1=7:8である。距離算出部116は、上式(1)により2次元配列D[x,y]の各要素を計算し、D[LA,LB]を編集距離に決定し、上式(2)により類似度Sを計算する。
図11の例では、編集距離はD[16,17]=13.6であり、類似度はS=1-13.6/(1×16+0.875×(17-16))=0.194である。
【0092】
図12は、第3詳細例における一致部分特定を説明する図である。距離算出部116は、上式(3)~(6)により2次元配列R[x,y]の各要素を計算し、R[0,0]から順に各要素に格納された行番号及び列番号をたどることで経路を特定する。本例ではA[x]=B[y]となる(x,y)の組は15個あるが、2次元配列R[x,y]に基づいて経路が決定された結果として、最終的に一致単語数が7個になっている。
【0093】
図13は、第3詳細例における表示の例である。表示処理部118は、
図11で特定された一致単語に基づいて、
図7に示した文字色及び背景色で着目文章と比較文章を対比表示する。また表示処理部118は、
図12と同様にして計算される着目文章と各比較文章の類似度に基づいて、類似度順にソートした比較文章一覧を表示する。
【0094】
図9に示すv:u=2:3のときの経路と、
図12に示すv:u=7:8のときの経路とを比較すると、編集重みによって経路及び一致単語が変化していることが分かる。それに伴って、
図10と
図13に示す着目文章と比較文章の表示態様が変化していることが分かる。また、v:u=2:3のときの類似度S=0.322と、v:u=7:8のときの類似度S=0.194とを比較すると、編集重みによって類似度が変化していることが分かる。これらのことから、編集重みを変えることによって、ライセンスの類型判断により適した文章比較ができると期待される。例えば、ライセンス類型のいずれも類似度が低い場合において、編集重みを変えることによって、類似度の高い類型を見いだす、或いは一致単語数を増やす効果が期待される。
【0095】
2.3.第4詳細例
編集距離の計算において、置換、削除及び挿入の数に加えて、スペルミスの補正の数を計算に含める例を、説明する。
【0096】
図14は、第4詳細例における文章距離算出を説明する図である。
図15は、第4詳細例における一致部分特定を説明する図である。本例において、挿入及び削除の編集重みはv=0.875であり、置換の編集重みはu=1であり、スペルミスの補正の編集重みはusp=0.25である。比はv:u:usp=0.875:1:0.25=7:8:2である。
【0097】
距離算出部116は、上式(1)により2次元配列D[x,y]の各要素を計算し、D[LA,LB]を編集距離に決定し、上式(2)により類似度Sを計算する。距離算出部116は、上式(3)~(6)により2次元配列R[x,y]の各要素を計算し、R[0,0]から順に各要素に格納された行番号及び列番号をたどることで経路を特定する。
【0098】
このとき、距離算出部116は、スペルミスの補正と判断した要素については、上式(1)と(5)のuをuspに置き換える。
図14の例では、B[7]=“feeelに対するA[2]=“feel”、及びB[9]=“hapy”に対するA[4]=“happy”が、スペルミスの補正に該当する。スペルミスに該当するか否かは、例えば単語間のレーベンシュタイン距離に基づいて判断される。
図14の例では、スペルミスの判定条件は、2つの単語の文字数がいずれも4以上であり、且つ単語間レーベンシュタイン距離が1又は2であること、である。但し、スペルミスの判定条件は種々考えられる。例えば、判定基準は、2つの単語の文字数のうち大きい方を基準とした単語間レーベンシュタイン距離が15%未満であること、であってもよい。
【0099】
図16は、第4詳細例における表示の例である。表示処理部118は、対比表示において、
図7に示した文字色及び背景色に加えて、スペルミスの補正箇所を、非一致単語及び一致単語とは区別して強調表示させる。例えば、表示処理部118は、スペルミスの補正に該当する単語の文字色を黒、背景色を黄色で表示する。
【0100】
なお、スペルミスの補正の編集重みは、置換の編集重みよりも小さい値に設定されることが、望ましい。スペルミスの補正の編集重みを0に設定すると、スペルミスを単語の一致と看做して扱うことも可能である。
【0101】
編集距離の計算において、置換、削除及び挿入の数に加えて、類義語への置換の数を計算に含めてもよいし、スペルミスの補正及び類義語への置換の数を計算に含めてもよい。類義語への置換は、上位概念語への置換、下位概念語への置換、又は同義語への置換などである。類義語への置換は、例えばシソーラスデータベースを用いて判断される。類義語への置換の編集重みと、スペルミスの補正の編集重みは、同じであっても異なってもよい。類義語への置換の編集重みは、置換の編集重みよりも小さい値に設定されることが、望ましい。類義語への置換の編集重みを0に設定すると、類義語を単語の一致と看做して扱うことも可能である。
【0102】
第1~第3詳細例で説明した編集距離は、レーベンシュタイン距離を単語単位に拡張したものと看做せる。単語単位に拡張したことによって、第4詳細例のように、単純な単語の一致又は不一致以外にも、意味を変えない単語の置換又はスペルミスなどを考慮することができる。
【0103】
3.三角不等式を用いて探索を省略する手法
多数のライセンス類型のうち着目ライセンスとの類似度が最大となる類型を検索するためには、例えば、全ての類型と着目ライセンスとの間の類似度を算出する必要がある。以下に説明する手法では、三角不等式を用いて各類型の類似度範囲を見積もることで、一部の類型についてのみ類似度を算出すれば、類似度が最大となる類型を検索できる。
【0104】
図17は、三角不等式を用いて探索を省略する手法のフローである。ステップS31において、取得部112は、調査対象の契約書を読み込む。
【0105】
ステップS32~S38において、比較文章であるデータベース上の契約書に対してステップS33~S37の処理が繰り返される。
【0106】
ステップS33において、距離算出部116は、調査対象の契約書と比較文章の契約書との類似度の範囲を、三角不等式を用いて計算する。
【0107】
ステップS34において、距離算出部116は、類似度の範囲が仮の類似度の最大値より十分に小さいか否かを判断する。距離算出部116は、類似度の範囲が仮の類似度の最大値より十分に小さい場合にはステップS35~S37を実行せず、類似度の範囲が仮の類似度の最大値より十分に小さくない場合にはステップS35に進む。
【0108】
ステップS35において、取得部112は、データベースから比較文章の契約書を読み込む。
【0109】
ステップS36において、距離算出部116は、調査対象の契約書と比較文章の契約書との間の類似度を計算する。
【0110】
ステップS37において、距離算出部116は、ステップS36で求めた類似度に基づいて仮の類似度を更新する。具体的には、距離算出部116は、ステップS36で求めた類似度が現在の仮の類似度より高い場合には、その類似度を新たな仮の類似度に設定する。
【0111】
ステップS39において、距離算出部116は、ステップS32~S38で計算された類似度の順に、比較文章の契約書をソートする。距離算出部116は、類似度の計算が省略された契約書については、三角不等式から推定された類似度範囲の上限値を、その契約書の類似度として用いる。
【0112】
ステップS40において、距離算出部116は、調査対象の契約書と、比較文章の契約書のうち類似度が最大である契約書との間の一致部分を特定する。
【0113】
ステップS41において、表示処理部118は、調査対象の契約書と、比較文章の契約書のうち類似度が最大である契約書とを表示部180に表示すると共に、各契約書において一致部分に該当しなかった単語を強調表示する。
【0114】
以下、三角不等式を用いて探索を省略する手法の具体例を説明する。
図18に示すように、比較文章間における相互の編集距離が予め算出されている。例えば、距離算出部116が比較文章間の相互の編集距離を算出し、その情報を記憶部120に保存してもよい。或いは、比較文章間の相互の編集距離が文章管理システム100の外部から記憶部120に書き込まれてもよい。そして、取得部112が記憶部120から比較文章間の相互の編集距離を読み出し、その情報を用いて距離算出部116が三角不等式による推定を行う。
【0115】
図18には、データベースにライセンスA~Mが格納されている場合における、相互の編集距離の例を示す。比較文章間の編集距離は、着目文章と比較文章の間の編集距離と同様に、単語単位の比較で計算される。同一ライセンス同士の編集距離はゼロなので、その算出は実施されなくてよい。
【0116】
図19は、三角不等式により推定される類似度の範囲の例である。本例では、調査対象のライセンスとライセンスDの間の編集距離が既に54と計算されているとする。調査対象のライセンスとライセンスDの間の編集距離をD1とし、ライセンスDとライセンスHの間の編集距離をD2としたとき、調査対象のライセンスとライセンスHの間の編集距離の範囲DRは、三角不等式|D1-D2|≦DR≦D1+D2を満たす。D1=54、D2=174を代入すると、174-54=120≦DR≦228=174+54である。
【0117】
図20は、三角不等式により推定された編集距離の範囲及び類似度の範囲の一覧である。ライセンスDと調査対象のライセンスとの間の編集距離は、既に54と算出されており、その類似度は79.2%である。この既知の類似度が、ステップS34の仮の類似度に該当する。類似度が79.2%を超える可能性があるのは、ライセンスEのみである。距離算出部116は、調査対象のライセンスとライセンスEの間の類似度計算を行い、ライセンスA~CとF~Mについては類似度計算を省略する。調査対象のライセンスとライセンスEの間の類似度が、例えば86.1%と計算されたとする。その場合、ライセンスEが類似度最大のライセンスとなる。一覧表示においては、ライセンスDとEについては、計算された類似度が表示され、ライセンスA~CとF~Mについては三角不等式で推定された類似度範囲の上限値が表示される。
【0118】
4.従来技術について
いくつかの従来技術と本実施形態の比較について説明する。
【0119】
(1)WinMerge、TortoiseGitMerge
ソフトウェアエンジニアの間では、2つのテキストを比較し、差分を強調表示するツールがいくつか知られている。また、ファイルの比較だけでなく、フォルダ単位でのファイル構成の比較も可能になっている。
【0120】
これら既存の比較ツールは、最も類似度が高い文章を検索することができない。また、差分の強調表示についても、行単位の比較ののち、単語又は文字単位の比較を行うため、比較対象の2つのテキストで、改行位置がずれていたりすると、望ましい表示結果が得られない。
【0121】
本実施形態によれば、調査対象のライセンスに対して最も類似度が高い類型を検索できる。また、単語単位の比較が行われるため改行に影響されず、テキスト間で改行位置がずれていても、望ましい表示結果が得られる。
【0122】
(2)grep
ソフトウェアエンジニアの間では、ファイルやフォルダ内から、指定したテキストを検索して抽出するツールも良く知られている。このツールは、機能の名称として用いられることもあり、著名なテキストエディターにはたいてい実装されている。
【0123】
既存の検索ツールは、一致および類似した文章を検索できるが、類似度の高低を確認することができない。類似したものを検索する場合に制約、あるいは、使用者の工夫が必要になる。また改行を含む長文のテキストを検索する場合に制約があり、一致した部分の強調表示はあっても、相違点の強調表示がない。
【0124】
本実施形態によれば、調査対象のライセンスと類型の間の類似度一覧を表示し、それによりユーザーが類似度の高低を確認できる。単語単位の比較が行われるため改行に影響されず、改行を含む長文のテキストであっても検索できる。また、対比表示においてテキスト間の非一致部分が強調表示されるので、相違点が強調表示される。
【0125】
(3)コピペリン
文章作成を外注した際に、外注先が著作権法に反して文章の盗用を行うことがある。発注元がこのような盗用の有無を検証するツールが知られている。具体的には、検索対象の文章を、インターネット上の記事と比較し、類似度が高い部分を盗用の疑いがあるとして強調表示する。
【0126】
インターネット上のテキストから検索するため、比較候補テキストの候補に流動性がある。このため、検索ごとに結果が異なり検索の再現性が無いし、事前に検索範囲を厳密に定義することができないし、常にその時点の候補のすべてとの比較を必要とする。検索候補を効果的に削減する方法について記載は無い。検索から除外するURLを設定可能であるが、ユーザーの創意工夫に依存する。また、テキストの類似度が文字単位であり、一覧作成時にはステミングやシソーラスの活用できず、結果として無視してよい違いを大きく評価してしまう。対比表示のみあいまい比較が行われており、一覧と対比表示で異なる評価となっている。このため、一覧で上位にいることと、対比で一致箇所が多い事とが、必ずしも一致しない。対比表示において一致している部分を強調表示するため、相違個所を確認するのに適さない。
【0127】
本実施形態によれば、データベースに格納されたライセンス類型を用いるので、検索範囲が有限な範囲に限定されており、検索の再現性がある。また単語単位の比較によりテキストの類似度が算出されるので、ステミング又はシソーラスを活用できる。結果として無視してよい違いを小さく評価できる、又は無視できる。また、一覧表示の類似度に用いられる編集距離と、対比表示のための経路判定に用いられる編集距離は、同じものである。これにより、一覧で上位にあることと、対比で一致箇所が多い事とが、一致する。また、対比表示においてテキスト間の非一致部分が強調表示されるので、相違点が強調表示される。
【0128】
(4)特開2002-251408号公報
本公報の情報閲覧支援装置は、Webページのアクセス履歴から、ユーザーが関心を持ったキーワードの履歴を推定する。このキーワード履歴から、次に関心を持つと予想されるキーワードを推定して、ユーザーの情報閲覧支援を行う。このキーワードの推定のために、同じユーザーの、過去の履歴との比較を行う。この過去の履歴の比較のために、レーベンシュタイン距離を、文字単位ではなく、単語単位で算出する方法と、レーベンシュタイン距離から類似度を計算する方法が記載されている。
【0129】
個々の単語に、スペルの揺らぎ、誤字、脱字、OCR誤認識、文字化け又は三人称単数現在形の活用等の影響があった場合に、異なる単語として比較される。また、単語内の文字単位のあいまいさを補正することが難しい。例えば、誤字及び脱字の候補まで含めて「キーワードに付与された番号」変換することで、ある程度は誤字及び脱字等への対策はできるが、複数の候補に該当する単語が存在するため、最良の比較結果を得るための対応付けができない事がある。例えば、colorとcolour、又はcenterとcentreのスペルの揺らぎには対応できるが、誤字及び脱字の可能性まで考慮して候補を広げると、対応できない。例えば、send、sent、tent、end及びsand、又はsing、song、ping及びpongの揺らぎには対応できない。
【0130】
本実施形態によれば、編集距離の算出においてスペルミスの補正又は類義語の置換に編集重みを付与することで、単語内の文字単位のあいまいさを考慮して類似度を算出できる。例えば、単語間のレーベンシュタイン距離を用いることで、スペルミスを判断可能であり、それによって単語内の文字単位のあいまいさを考慮して単語比較できる。或いは、シソーラス等のデータベースを用いることで類義語を判断可能であり、それによって複数の候補に該当する単語が存在するとしたとしても、最良の比較結果を得るための対応付けが可能である。
【0131】
(5)特開2022-93215号公報
本公報は、英語学習者の英作文を添削者の手により添削するときの支援技術を、開示している。本公報の英作文添削結果分析システムは、英語学習者が作成した誤答を含む英文から、最も近い正答を検索する。この目的のために、入力された誤答を含む英文を、あらかじめ用意された正答候補の英文すべてと比較して、レーベンシュタイン距離が最小になる対応付けを行う。
【0132】
2つのテキストの間に改行又はホワイトスペースの差異がある場合、それらの文章の内容は等価であっても、2つのテキストに差異があるものとして表示される。また、相違点の強調表示がない。類似度は既知の技術を列挙したのみで、類似度に関する改善は開示されていない。
【0133】
本実施形態によれば、単語単位の比較が行われるため改行及びホワイトスペースの差異に影響されず、等価な文章を等価なものとして正しく表示できる。また、対比表示においてテキスト間の非一致部分が強調表示されるので、相違点が強調表示される。
【0134】
なお、上記のように本実施形態について詳細に説明したが、本開示の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本開示の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義又は同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また本実施形態及び変形例の全ての組み合わせも、本開示の範囲に含まれる。また文章管理システムの構成、文章管理システムが実行する処理内容、及び文章管理プログラムがコンピューターに実行させる処理内容等も、本実施形態で説明したものに限定されず、種々の変形実施が可能である。例えば、文章管理システムにおいて、複数の構成要素が一体となっていてもよいし、一つの構成要素が複数の装置が協働することで実現されていてもよい。また、文章距離は、様々な方法で算出してもよい。すなわち上述した方法で文章距離を計算するものに限られない。また、本願発明は、文章管理システム、文章管理プログラム、文章管理装置、文章管理方法としてとらえることができる。
【符号の説明】
【0135】
100…文章管理システム、110…処理部、112…取得部、114…重み受け付け部、116…距離算出部、118…表示処理部、120…記憶部、122…比較文章データ、124…プログラム、180…表示部、190…操作部、A[x],B[x]…リスト、D[x,y],R[x,y]…2次元配列、x…列番号、y…行番号