JP7380078B2 - 名称抽出プログラム,情報処理装置及び名称抽出方法 - Google Patents

名称抽出プログラム,情報処理装置及び名称抽出方法 Download PDF

Info

Publication number
JP7380078B2
JP7380078B2 JP2019193593A JP2019193593A JP7380078B2 JP 7380078 B2 JP7380078 B2 JP 7380078B2 JP 2019193593 A JP2019193593 A JP 2019193593A JP 2019193593 A JP2019193593 A JP 2019193593A JP 7380078 B2 JP7380078 B2 JP 7380078B2
Authority
JP
Japan
Prior art keywords
programs
name
cluster
program
names
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.)
Active
Application number
JP2019193593A
Other languages
English (en)
Other versions
JP2021068226A (ja
Inventor
啓介 矢野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019193593A priority Critical patent/JP7380078B2/ja
Publication of JP2021068226A publication Critical patent/JP2021068226A/ja
Application granted granted Critical
Publication of JP7380078B2 publication Critical patent/JP7380078B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、名称抽出プログラム,情報処理装置及び名称抽出方法に関する。
顧客のアプリケーション資産の現状課題を見える化し、品質改善や保守効率化を図るサービスとして、資産分析サービスが存在する。
図1は、関連例としての資産分析サービスを例示する図である。
資産分析サービスでは、符号A1で示すようなアプリケーションの品質劣化等の現状の課題を入力として、符号A2に示すようなアプリケーション資産の見せる化が行なわれる。例えば、稼働資産分析や類似分析,システム相関分析,資産特性分析に対して、改善施策の立案が行なわれる。そして、符号A3に示すような、品質安定された理想とする姿のアプリケーションが出力される。
資産分析サービスのメニューの1つとして、ソフトウェア地図が存在する。
図2は、関連例としてのソフトウェア地図を例示する図である。
ソフトウェア地図では、プログラムがビル(別言すれば、建物)で表され、プログラムの複雑さがビルの高さで表され、サブシステムの種類がビルの色で表され、プログラム間の関係性がビル間の距離で表される。
符号B1に示すような高層ビル群では、複雑なアプリケーションが入り乱れ保守性が悪い。すなわち、高層ビル群が現れているアプリケーションは、構造が複雑なため、改善が必要である。
符号B2に示すような色が乱れた町並みでは、複数あるサブシステムのアプリケーションが入り乱れ保守性が悪い。すなわち、色が乱れた町並みが現れているアプリケーションは、構造が複雑なため、改善が必要である。
符号B3に示すような整然とした低層ビルの町並みでは、サブシステムの範囲が定まっており、保守がしやすい。すなわち、整然とした低層ビルの町並みが現れているアプリケーションは、構造が簡単で、影響範囲を特定しやすい。
このようなアプリケーション地図により、アプリケーションの保守や開発に関わるリスクを把握できる。また、経営層から開発者まで巻き込んだ議論が可能となる。更に、モダナイゼーションすべきアプリケーションの優先順位が判る。
図3は、関連例としてのソフトウェアクラスタリングを例示する図である。
図3において、符号C1で示すノードはプログラムに対応し、符号C2で示すノード間のエッジは依存関係(例えば、関数呼出し)に対応する。すなわち、プログラムを接点とし、プログラム間の依存関係を辺とするグラフ構造に対して、グラフクラスタリング技術が適用される。
ソフトウェアクラスタリングでは、大規模なソフトウェアが、何らかの基準に従って、構成するプログラム(例えば、ソースやファイル,クラス)のより小さな集まりに分割される。理解や管理のしやすいサイズに分割され、図3に示す例では、符号C3に示すように、依存関係の密な箇所がクラスタとして抽出される。
しかしながら、顧客にとって、クラスタが何を意味するか分かりにくいことがある。計算によって得られたクラスタは、一般にはソフトウェアの設計者が定義した分類と一致しないため、どの様な意味を持つ集合なのか分かりにくい場合がある。
そこで、プログラム名に含まれる単語からクラスタに特徴的なものを点数付けして上位のもの数語を抽出し、キーワードとして提示し、理解の助けとする技術がある。
特開2004-30021号公報 特開2019-21232号公報
しかしながら、業務用語等、連続した文字列を分割して単語として扱うと結果が判りにくいことがある。例えば、プログラム名「物品リスト情報の削除機能」の中から「リスト」や「物品」等の個々の単語がバラバラに出力されても、業務上何を意味しているか理解しづらい。
1つの側面では、クラスタの内容を代表する簡潔な名称を出力することを目的とする。
1つの側面では、名称抽出プログラムは、コンピュータに、同一のクラスタに属する複数のプログラムの名称に含まれる単語の出現頻度に基づき、前記複数のプログラムの中から少なくとも2つのプログラムを選択し、選択された前記少なくとも2つのプログラムの名称に含まれる共通の単語の配列を前記クラスタの名称として抽出する、処理を実行させる。
1つの側面では、クラスタの内容を代表する簡潔な名称を出力できる。
関連例としての資産分析サービスを例示する図である。 関連例としてのソフトウェア地図を例示する図である。 関連例としてのソフトウェアクラスタリングを例示する図である。 実施形態の一例における分析支援装置のハードウェア構成例を模式的に示すブロック図である。 図4に示した分析支援装置の機能構成例を模式的に示すブロック図である。 図5に示したプログラム名格納部におけるデータ例をテーブル形式で示す例である。 図5に示した単語得点格納部におけるデータ例をテーブル形式で示す例である。 図5に示したトータルスコア格納部におけるデータ例をテーブル形式で示す例である。 図5に示した代表プログラム格納部におけるデータ例をテーブル形式で示す例である。 図5に示したクラスタ名称格納部におけるデータ例をテーブル形式で示す例である。 図4に示した分析支援装置におけるソフトウェア地図の出力例を示す図である。 図4に示した分析支援装置におけるクラスタ名抽出処理を説明するフローチャートである。 図12に示したトータルスコア算出処理の詳細を説明するフローチャートである。 図12に示した代表プログラム選出処理の詳細を説明するフローチャートである。 図12に示した共通部分列計算処理の詳細を説明するフローチャートである。 第1変形例における単語得点格納部におけるデータ例をテーブル形式で示す図である。 第1変形例における共通部分列計算処理を説明するフローチャートである。 第2変形例におけるクラスタ名抽出処理を説明するフローチャートである。 図18に示した語順反転整列処理の詳細を説明するフローチャートである。
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
〔A〕実施形態の一例
〔A-1〕システム構成例
図4は、実施形態の一例における分析支援装置1のハードウェア構成例を模式的に示すブロック図である。
図4に示すように、分析支援装置1は、情報処理装置の一例であり、Central Processing Unit(CPU)11,メモリ12,表示制御部13,記憶装置14,入力Interface(I/F)15,読み書き処理部16及び通信I/F17を備える。
メモリ12は、記憶部の一例であり、例示的に、Read Only Memory(ROM)及びRandom Access Memory(RAM)を含む記憶装置である。メモリ12のROMには、Basic Input/Output System(BIOS)等のプログラムが書き込まれてよい。メモリ12のソフトウェアプログラムは、CPU11に適宜に読み込まれて実行されてよい。また、メモリ12のRAMは、一次記録メモリあるいはワーキングメモリとして利用されてよい。
表示制御部13は、表示装置130と接続され、表示装置130を制御する。表示装置130は、液晶ディスプレイやOrganic Light-Emitting Diode(OLED)ディスプレイ,Cathode Ray Tube(CRT),電子ペーパーディスプレイ等であり、オペレータ等に対する各種情報を表示する。表示装置130は、入力装置と組み合わされたものでもよく、例えば、タッチパネルでもよい。
記憶装置14は、例示的に、データを読み書きして記憶する装置であり、例えば、Hard Disk Drive(HDD)やSolid State Drive(SSD),Storage Class Memory(SCM)が用いられてよい。記憶装置14は、図5等を用いて後述するプログラム名格納部141,単語得点格納部142,トータルスコア格納部143,代表プログラム格納部144及びクラスタ名称格納部145として機能して良い。
入力I/F15は、マウス151やキーボード152等の入力装置と接続され、マウス151やキーボード152等の入力装置を制御してよい。マウス151やキーボード152は、入力装置の一例であり、これらの入力装置を介して、オペレータが各種の入力操作を行なう。
読み書き処理部16は、記録媒体160が装着可能に構成される。読み書き処理部16は、記録媒体160が装着された状態において、記録媒体160に記録されている情報を読み取り可能に構成される。本例では、記録媒体160は、可搬性を有する。例えば、記録媒体160は、フレキシブルディスク、光ディスク、磁気ディスク、光磁気ディスク、又は、半導体メモリ等である。
通信I/F17は、外部装置との通信を可能にするためのインタフェースである。
CPU11は、種々の制御や演算を行なう処理装置であり、メモリ12に格納されたOperating System(OS)やプログラムを実行することにより、種々の機能を実現する。
分析支援装置1全体の動作を制御するための装置は、CPU11に限定されず、例えば、MPUやDSP,ASIC,PLD,FPGAのいずれか1つであってもよい。また、分析支援装置1全体の動作を制御するための装置は、CPU,MPU,DSP,ASIC,PLD及びFPGAのうちの2種類以上の組み合わせであってもよい。なお、MPUはMicro Processing Unitの略称であり、DSPはDigital Signal Processorの略称であり、ASICはApplication Specific Integrated Circuitの略称である。また、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
図5は、図4に示した分析支援装置1の機能構成例を模式的に示すブロック図である。
図5に示すように、分析支援装置1のCPU11は、プログラム(別言すれば、名称抽出プログラム)を実行することにより、トータルスコア算出部111,代表プログラム選出部112及び共通部分列計算部113として機能する。また、分析支援装置1の記憶装置14は、プログラム名格納部141,単語得点格納部142,トータルスコア格納部143,代表プログラム格納部144及びクラスタ名称格納部145として機能する。
トータルスコア算出部111は、プログラム名格納部141のプログラム名と、単語得点格納部142の各単語の得点とに基づき、各プログラムのトータルスコアを算出して、トータルスコアをトータルスコア格納部143に格納する。
別言すれば、トータルスコア算出部111は、算出部の一例であり、複数のプログラムの名称に含まれる単語のそれぞれについて設定された得点を参照し、複数のプログラムの名称それぞれに対して得点の和を算出する。
代表プログラム選出部112は、トータルスコア格納部143における各プログラムのトータルスコアに基づき、代表プログラムを例えば2つ選出し、選出した代表プログラムの名称を代表プログラム格納部144に格納する。
別言すれば、代表プログラム選出部112は、選択部の一例であり、同一のクラスタに属する複数のプログラムの名称に含まれる単語の出現頻度に基づき、複数のプログラムの中から少なくとも2つのプログラムを選択する。また、代表プログラム選出部112は、算出された得点の和が上位のプログラムを、少なくとも2つのプログラムとして選択してよい。
共通部分列計算部113は、代表プログラム格納部144における複数の代表プログラムの名称に基づき、クラスタ名称を生成して、クラスタ名称をクラスタ名称格納部145に格納する。
別言すれば、共通部分列計算部113は、選択された少なくとも2つのプログラムの名称に含まれる共通の単語の配列をクラスタの名称として抽出する。
図6は、図5に示したプログラム名格納部141におけるデータ例をテーブル形式で示す例である。図7は、図5に示した単語得点格納部142におけるデータ例をテーブル形式で示す例である。
図6に示すように、プログラム名格納部141には、クラスタIDとプログラム名とが対応付けられたデータが格納される。
図7に示すように、単語得点格納部142には、クラスタIDと単語と得点とが対応付けられたデータが格納される。
トータルスコア算出部111は、プログラム名格納部141のプログラム名と、単語得点格納部142の各単語の得点とに基づき、各プログラムのトータルスコアを算出する。
例えば、図6に示すプログラム名「物品リスト情報の削除機能」は、図7に示す「物品」,「リスト」,「情報」,「削除」及び「機能」の各単語により構成される。各単語の得点の和は、0.014+0.006+0.009+0.214+0.006=0.249となる。
ここで、単語毎の得点は、既存技術であるtf-idfを用いて出現頻度に基づいて計算されてよい。
tf-idfは、文書におけるある単語の重要度を表す計算である。tf-idfは、文書における単語の頻度(term frequency)と、その単語がどれだけ多くの文書に現れるありふれたものであるかの指標(inverse document frequency)とが掛け合わされることによって計算される。
図8は、図5に示したトータルスコア格納部143におけるデータ例をテーブル形式で示す例である。
図8に示すように、トータルスコア格納部143には、クラスタIDとプログラム名とトータルスコアとが対応付けられたデータが格納される。
トータルスコア算出部111は、算出した各プログラム名のトータルスコアをトータルスコア格納部143に格納する。
図9は、図5に示した代表プログラム格納部144におけるデータ例をテーブル形式で示す例である。
図9に示すように、代表プログラム格納部144には、クラスタIDとプログラム名とが対応付けられたデータが格納される。
代表プログラム選出部112は、トータルスコア格納部143からトータルスコアが例えば上位2つのプログラム名を選出して、代表プログラム格納部144に格納する。
図8に示したトータルスコア格納部143では、「物品リスト情報の削除機能」が0.249であり、「物品リスト削除確認」が0.238であり、上位2つのトータルスコアを有する。そこで、代表プログラム選出部112は、「物品リスト情報の削除機能」及び「物品リスト削除確認」を代表プログラム格納部144に格納する。
ここで、代表プログラムとは、名称が当該クラスタを代表すると考えられるプログラムである。
なお、tf-idfのような単語の得点を用いず、他の方法によって代表プログラムが選出されてもよい。例えば、クラスタ内のコールグラフに基づいて、大本の呼出元に近いプログラムから順に代表プログラムとして選出されてもよい。
図10は、図5に示したクラスタ名称格納部145におけるデータ例をテーブル形式で示す例である。
図10に示すように、クラスタ名称格納部145には、クラスタIDとプログラム名とが対応付けられたデータが格納される。
共通部分列計算部113は、代表プログラム格納部144におけるプログラム名から、単語の共通部分を計算する。
共通部分の計算は、順序を保って共通部分を取り出す、Longest Common Subsequence(LCS;最長共通部分列)のロジックによって実施されてよい。例えば、2つの文字列「ABCDE」と「ABDF」とのLCSは、「ABD」となる。
また、日本語のプログラム名が形態素解析によって単語に分割され、特定の品詞(別言すれば、名詞)の単語に限って取り出されてLCSの対象として用いられてよい。例えば、プログラム名「物品リスト情報の削除機能」のうち、用いられる単語列は「物品,リスト,情報,削除,機能」とされてよい。
図9に示した代表プログラム格納部144では、「物品リスト情報の削除機能」及び「物品リスト削除確認」について、「物品,リスト,情報,削除,機能」及び「物品,リスト,削除,確認」の名詞の単語の列がそれぞれ生成される。2つの名詞の単語の列に対してLCSが適用されて「物品,リスト,削除」が残され、図10に示すクラスタ名称格納部145にクラスタ名称「物品リスト削除」として格納される。
図11は、図4に示した分析支援装置1におけるソフトウェア地図の出力例を示す図である。
図11に示すソフトウェア地図では、個々の建物(図示する正方形;符号D1参照)がソースファイルを表し、街区(図する二重枠の長方形;符号D2参照)がクラスタを表す。
街区(別言すれば、クラスタ)のそれぞれに対して、共通部分列計算部113によって計算されたクラスタ名称が応付けて表示される(符号D3参照)。これにより、各クラスタがどんな機能を実装しているか理解しやすくなる。
〔A-2〕動作例
図4に示した分析支援装置1におけるクラスタ名抽出処理を、図12に示すフローチャート(ステップS1~S3)に従って説明する。
トータルスコア算出部111は、各プログラム名のトータルスコアを算出する(ステップS1)。なお、ステップS1における処理の詳細は、図13を用いて後述する。
代表プログラム格納部144は、算出された各プログラムのトータルスコアに基づき、例えば2つの代表プログラムを算出する(ステップS2)。なお、ステップS2における処理の詳細は、図14を用いて後述する。
共通部分列計算部113は、例えば2つの代表プログラムの名称について、共通部分列を計算し(ステップS3)、処理は終了する。なお、ステップS3における処理の詳細は、図15を用いて後述する。
次に、図12に示したトータルスコア算出処理の詳細を、図13に示すフローチャート(ステップS11~S17)に従って説明する。
トータルスコア算出部111は、プログラム名格納部141から、注目クラスタに属するプログラム名を1つ取り出す(ステップS11)。
トータルスコア算出部111は、プログラム名を単語に分割し、採用する品詞(例えば、名詞)以外の語を除去する(ステップS12)。
トータルスコア算出部111は、プログラム名の単語からまだ確認していない単語を1つ取り出す(ステップS13)。
トータルスコア算出部111は、単語得点格納部142から、注目クラスタにおける注目単語の得点を取り出す(ステップS14)。
トータルスコア算出部111は、プログラム名において確認していない単語がまだあるかを判定する(ステップS15)。
確認していない単語がまだある場合には(ステップS15のYESルート参照)、処理はステップS13へ戻る。
一方、確認していない単語がもうない場合には(ステップS15のNOルート参照)、トータルスコア算出部111は、そのプログラム名の得点として、トータルスコア格納部143に格納する(ステップS16)。
トータルスコア算出部111は、注目クラスタに未処理のプログラム名があるかを判定する(ステップS17)。
未処理のプログラム名がある場合には(ステップS17のYESルート参照)、処理はステップS11へ戻る。
一方、未処理のプログラム名がない場合には(ステップS17のNOルート参照)、トータルスコア算出処理は終了する。
次に、図12に示した代表プログラム選出処理の詳細を、図14に示すフローチャート(ステップS21~S23)に従って説明する。
代表プログラム選出部112は、注目クラスタについて、トータルスコア格納部143から、プログラム名とそのトータルスコアとの組を全部取り出す(ステップS21)。
代表プログラム選出部112は、最もトータルスコアが大きなプログラム名を代表プログラム格納部144に格納する(ステップS22)。
代表プログラム選出部112は、2番目にトータルスコアが大きなプログラム名を代表プログラム格納部144に格納する(ステップS23)。そして、代表プログラム選出処理は終了する。
次に、図12に示した共通部分列計算処理の詳細を、図15に示すフローチャート(ステップS31~S36)に従って説明する。
共通部分列計算部113は、注目クラスタについて、代表プログラム格納部144から代表プログラム名を2つ取り出す(ステップS31)。
共通部分列計算部113は、両方のプログラム名についてそれぞれ、文字列を要素にとる配列を用意する(ステップS32)。
共通部分列計算部113は、各プログラム名を単語に分解し、注目する品詞(例えば、名詞)に限って、当該プログラム名のために用意された配列に格納する(ステップS33)。
共通部分列計算部113は、プログラム名に対応する2つの配列に対して、LCSの計算を行ない、結果を配列として得る(ステップS34)。
共通部分列計算部113は、結果の配列の要素(別言すれば、文字列)を連結し、クラスタ名称を得る(ステップS35)。
共通部分列計算部113は、注目しているクラスタIDに対するクラスタ名称をクラスタ名称格納部145に格納する(ステップS36)。そして、共通部分列計算処理は終了する。
〔A-3〕効果
上述した実施形態の一例における情報処理装置,名称抽出プログラム及び名称抽出方法によれば、例えば、以下の作用効果を奏することができる。
代表プログラム選出部112は、同一のクラスタに属する複数のプログラムの名称に含まれる単語の出現頻度に基づき、複数のプログラムの中から少なくとも2つのプログラムを選択する。共通部分列計算部113は、選択された少なくとも2つのプログラムの名称に含まれる共通の単語の配列をクラスタの名称として抽出する。
これにより、クラスタの内容を代表する簡潔な名称を出力できる。具体的には、代表的な複数のプログラム名の間の共通部分を抽出することにより、クラスタ内で共通に現れる処理内容の中心部分を残すことができる。また、元のプログラム名の語順を保持しているため、クラスタの機能に対する理解が容易になる。
トータルスコア算出部111は、複数のプログラムの名称に含まれる単語のそれぞれについて設定された得点を参照し、複数のプログラムの名称それぞれに対して得点の和を算出する。代表プログラム選出部112は、算出された得点の和が上位のプログラムを、少なくとも2つのプログラムとして選択する。
これにより、代表プログラムを効率的に選択できる。
単語の得点は、クラスタにおける出現頻度が高い単語ほど、大きく設定される。
これにより、同一のクラスタ内で頻出の単語を含むプログラムが代表プログラムとして選択されやすくなり、適切なクラスタの名称を抽出できる。
単語の得点は、複数のクラスタにおける共通した出現頻度が高い単語ほど、小さく設定される。
これにより、複数のクラスタ間で共通して頻出する単語を含むプログラムが代表プログラムとして選択されにくくなり、適切なクラスタの名称を抽出できる。
〔B〕第1変形例
代表プログラム名の共通部分に限って抽出されても、生成されるクラスタ名称が長くなってしまう場合がある。
例えば、2つの代表プログラム名として、「物品リスト情報内容の編集画面共通機能」と「物品リスト情報内容編集確認画面共通機能」とが抽出された場合を想定する。2つの代表プログラム名の名詞の列についてLCSを取ると、「物品リスト情報内容編集画面共通機能」となり、クラスタ名称が長くなってしまう。
そこで、本第1変形例では、LCSを取って残った単語であっても、単語得点格納部142における得点が低い単語については、クラスタ名称に採用しない。
すなわち、共通部分列計算部113は、得点が閾値未満である単語について、クラスタの名称として抽出する単語の配列から除外する。
図16は、第1変形例における単語得点格納部142におけるデータ例をテーブル形式で示す図である。
「物品リスト情報内容の編集画面共通機能」と「物品リスト情報内容編集確認画面共通機能」とのプログラム名からLCSを取った結果得られる単語列は、[物品,リスト,情報,内容,編集,画面,共通,機能]となる。
共通部分列計算部113は、図16に例示する単語得点格納部142から、それぞれの単語の当該クラスタ内におけるtf-idfスコアを参照する。
共通部分列計算部113は、閾値(例えば、0.005)未満の単語を除いて、残った単語を連結する。これにより、当該クラスタにおける出現頻度が低い単語が省略され(tfの効果)、他の多数のクラスタに現れるありふれた単語が省略される(idfの効果)。
図16に示す例では、共通部分列計算部113は、クラスタ名称として、「物品リスト情報編集」を抽出する。
第1変形例における共通部分列計算処理を、図17に示すフローチャート(ステップS41~S47)に従って説明する。
共通部分列計算部113は、注目クラスタについて、代表プログラム格納部144から代表プログラム名を2つ取り出す(ステップS41)。
共通部分列計算部113は、両方のプログラム名についてそれぞれ、文字列を要素に取る配列を用意する(ステップS42)。
共通部分列計算部113は、各プログラム名を単語に分解し、注目する品詞(例えば、名詞)に限って、当該プログラム名のために用意された配列に格納する(ステップS43)。
共通部分列計算部113は、配列の各要素の単語について単語得点格納部142を参照して得点を所得し、所定の閾値に満たない単語については配列から取り除く(ステップS44)。
共通部分列計算部113は、プログラム名に対応する2つの配列に対して、LCSの計算を行ない、結果を配列として得る(ステップS45)。
共通部分列計算部113は、結果の配列の要素(別言すれば、文字列)を連結し、クラスタ名称を得る(ステップS46)。
共通部分列計算部113は、注目しているクラスタIDに対するクラスタ名称をクラスタ名称格納部145に格納する(ステップS47)。
本第1変形例によれば、上述した実施形態の一例において奏することができる効果に加えて、例えば以下の作用効果を奏することができる。
プログラム名の枝葉の部分である単語をクラスタの名称から除外することができ、クラスタの機能の中心部を表す簡潔なフレーズを得ることができる。
〔C〕第2変形例
2つの代表プログラム名がほぼ同じ内容を表しているものの、語順が逆転している単語が含まれている場合がある。本第2変形例では、2つの代表プログラム名において語順が逆転している単語が含まれる場合にも、クラスタ名称を計算できるようにする。
例えば、代表プログラム名として、「オンライン会員登録画面」と「会員オンライン共通機能」とが抽出されたことを想定する。この2つの代表プログラム名のLCSを適用すると、「オンライン」又は「会員」がクラスタ名称から欠落してしまう。
共通部分列計算部113は、2つの代表プログラム名の間で単語の逆転があるかを判定し、単語の反転がある場合には、いずれかの代表プログラム名の語順に揃えてから2つの代表プログラム名に対してLCSを適用する。
単語の逆転の検出には、例えば既存技術であるDamerau-Levenshtein距離が用いられてよい。Damerau-Levenshtein距離は、2つの文字列間の違いの大きさを表し、一方の文字列に対して、1文字の追加・削除・置換・転置(transposition;別言すれば、隣接する文字の交換)が何回行なわれると他方の文字列と同一となるかの回数を示す。例えば、文字列#1「ABC」と文字列#2「ABXC」とは、文字列#1に「X」を1文字追加することで文字列#2となるため、Damerau-Levenshtein距離は1となる。また、「ABC」と「ACB」とは1回の転置であるため、Damerau-Levenshtein距離は1となる。
Damerau-Levenshtein距離の計算の際に転置が認識できるため、共通部分列計算部113は、転置の位置を記録しておき、転置の位置において一方のプログラム名の語順を反転させることで、他方のプログラム名の語順に揃える。
「オンライン会員登録画面」と「会員オンライン登録機能」とでは、位置1(別言すれば、先頭)において、「オンライン」と「単語」との語順の転置がある。そこで、共通部分列計算部113は、「会員オンライン登録機能」の語順を反転させて「オンライン会員登録機能」に変換する。そして、共通部分列計算部113は、「オンライン会員登録画面」と「オンライン会員登録機能」との間における共通部分を抽出する。この場合には、共通部分列計算部113は、クラスタ名称として、「オンライン会員登録」を抽出する。
すなわち、共通部分列計算部113は、少なくとも2つのプログラムの間において語順が反転している単語がある場合には、少なくとも2つのプログラムのうちの一方のプログラムについて、当該単語の語順を転置させる。
第2変形例におけるクラスタ名抽出処理を、図18に示すフローチャート(ステップS51~S54)に従って説明する。
トータルスコア算出部111は、各プログラム名のトータルスコアを算出する(ステップS51)。なお、ステップS51における処理の詳細は、図13を用いて前述した。
代表プログラム格納部144は、算出された各プログラムのトータルスコアに基づき、例えば2つの代表プログラムを算出する(ステップS52)。なお、ステップS52における処理の詳細は、図14を用いて前述した。
共通部分列計算部113は、2つの代表プログラムにおける名称の語順反転を整列させる(ステップS53)。なお、ステップS53における処理の詳細は、図19を用いて後述する。
共通部分列計算部113は、例えば2つの代表プログラムの名称について、共通部分列を計算し(ステップS54)、処理は終了する。なお、ステップS54における処理の詳細は、図15又は図17を用いて前述した。
次に、図18に示した語順反転整列処理の詳細を、図19に示すフローチャート(ステップS61~S67)に従って説明する。
共通部分列計算部113は、注目クラスタについて、代表プログラム格納部144から、代表プログラム名を2つ取り出す(ステップS61)。
共通部分列計算部113は、各プログラム名を単語に分解し、注目する品詞(例えば、名詞)に限って、当該プログラム名のために用意された配列#1に格納する(ステップS62)。
共通部分列計算部113は、2つのプログラム名に対応する配列#1のDamerau-Levenshtein距離を計算する。その際に、共通部分列計算部113は、転置を検出した時点の配列#1の2つ目のプログラム名の単語の位置を配列#2に格納していく(ステップS63)。
共通部分列計算部113は、配列#2の先頭の要素から順に1つずつ取り出す(ステップS64)。
共通部分列計算部113は、配列#2の注目している要素に従って、配列#1の2つ目の単語の転置の位置を特定し、語順を入れ替える(ステップS65)。
共通部分列計算部113は、配列#2の要素がまだあるかを判定する(ステップS66)。
配列#2の要素がまだある場合には(ステップS66のYESルート参照)、処理はステップS64へ戻る。
一方、配列#2の要素がもうない場合には(ステップS66のNOルート参照)、共通部分列計算部113は、語順入れ替えの完了した配列の要素を文字列に連結し、そのプログラム名を代表プログラム格納部144に格納する(ステップS67)。そして、語順反転整列処理は終了する。
本第2変形例によれば、上述した実施形態の一例において奏することができる効果に加えて、例えば以下の作用効果を奏することができる。
複数の代表プログラム間において語順が判定している単語が含まれている場合にも、適切なクラスタの名称を抽出できる。
〔D〕その他
開示の技術は上述した実施形態及び変形例に限定されるものではなく、本実施形態及び変形例の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態及び変形例の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
〔E〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
同一のクラスタに属する複数のプログラムの名称に含まれる単語の出現頻度に基づき、前記複数のプログラムの中から少なくとも2つのプログラムを選択し、
選択された前記少なくとも2つのプログラムの名称に含まれる共通の単語の配列を前記クラスタの名称として抽出する、
処理を実行させる、名称抽出プログラム。
(付記2)
前記複数のプログラムの名称に含まれる単語のそれぞれについて設定された得点を参照し、前記複数のプログラムの名称それぞれに対して前記得点の和を算出し、
算出された前記得点の和が上位のプログラムを、前記少なくとも2つのプログラムとして選択する、
処理を前記コンピュータに実行させる、付記1に記載の名称抽出プログラム。
(付記3)
前記得点は、前記クラスタにおける出現頻度が高い単語ほど、大きく設定される、
付記2に記載の名称抽出プログラム。
(付記4)
前記得点は、前記クラスタを含む複数のクラスタにおける共通した出現頻度が高い単語ほど、小さく設定される、
付記2又は3に記載の名称抽出プログラム。
(付記5)
前記得点が閾値未満である単語について、前記配列から除外する、
処理を前記コンピュータに実行させる、付記2~4のいずれか1項に記載の名称抽出プログラム。
(付記6)
前記少なくとも2つのプログラムの間において語順が反転している単語がある場合には、前記少なくとも2つのプログラムのうちの一方のプログラムについて、当該単語の語順を転置させる、
処理を前記コンピュータに実行させる、付記1~5のいずれか1項に記載の名称抽出プログラム。
(付記7)
同一のクラスタに属する複数のプログラムの名称に含まれる単語の出現頻度に基づき、前記複数のプログラムの中から少なくとも2つのプログラムを選択する選択部と、
前記選択部によって選択された前記少なくとも2つのプログラムの名称に含まれる共通の単語の配列を前記クラスタの名称として抽出する抽出部と、
を備える、情報処理装置。
(付記8)
前記複数のプログラムの名称に含まれる単語のそれぞれについて設定された得点を参照し、前記複数のプログラムの名称それぞれに対して前記得点の和を算出する算出部を更に備え、
前記選択部は、前記算出部によって算出された前記得点の和が上位のプログラムを、前記少なくとも2つのプログラムとして選択する、
付記7に記載の情報処理装置。
(付記9)
前記得点は、前記クラスタにおける出現頻度が高い単語ほど、大きく設定される、
付記8に記載の情報処理装置。
(付記10)
前記得点は、前記クラスタを含む複数のクラスタにおける共通した出現頻度が高い単語ほど、小さく設定される、
付記8又は9に記載の情報処理装置。
(付記11)
前記抽出部は、前記得点が閾値未満である単語について、前記配列から除外する、
付記8~10のいずれか1項に記載の情報処理装置。
(付記12)
前記抽出部は、前記少なくとも2つのプログラムの間において語順が反転している単語がある場合には、前記少なくとも2つのプログラムのうちの一方のプログラムについて、当該単語の語順を転置させる、
付記7~11のいずれか1項に記載の情報処理装置。
(付記13)
同一のクラスタに属する複数のプログラムの名称に含まれる単語の出現頻度に基づき、前記複数のプログラムの中から少なくとも2つのプログラムを選択し、
選択された前記少なくとも2つのプログラムの名称に含まれる共通の単語の配列を前記クラスタの名称として抽出する、
を備える、名称抽出方法。
(付記14)
前記複数のプログラムの名称に含まれる単語のそれぞれについて設定された得点を参照し、前記複数のプログラムの名称それぞれに対して前記得点の和を算出し、
算出された前記得点の和が上位のプログラムを、前記少なくとも2つのプログラムとして選択する、
付記13に記載の名称抽出方法。
(付記15)
前記得点は、前記クラスタにおける出現頻度が高い単語ほど、大きく設定される、
付記14に記載の名称抽出方法。
(付記16)
前記得点は、前記クラスタを含む複数のクラスタにおける共通した出現頻度が高い単語ほど、小さく設定される、
付記14又は15に記載の名称抽出方法。
(付記17)
前記得点が閾値未満である単語について、前記配列から除外する、
付記14~16のいずれか1項に記載の名称抽出方法。
(付記18)
前記少なくとも2つのプログラムの間において語順が反転している単語がある場合には、前記少なくとも2つのプログラムのうちの一方のプログラムについて、当該単語の語順を転置させる、
付記13~17のいずれか1項に記載の名称抽出方法。
1 :分析支援装置
11 :CPU
111 :トータルスコア算出部
112 :代表プログラム選出部
113 :共通部分列計算部
12 :メモリ
13 :表示制御部
130 :表示装置
14 :記憶装置
141 :プログラム名格納部
142 :単語得点格納部
143 :トータルスコア格納部
144 :代表プログラム格納部
145 :クラスタ名称格納部
15 :入力I/F
151 :マウス
152 :キーボード
16 :読み書き処理部
160 :記録媒体
17 :通信I/F

Claims (8)

  1. コンピュータに、
    同一のクラスタに属する複数のプログラムの名称に含まれる単語の出現頻度に基づき、前記複数のプログラムの中から少なくとも2つのプログラムを選択し、
    選択された前記少なくとも2つのプログラムの名称に含まれる共通の単語の配列を前記クラスタの名称として抽出する、
    処理を実行させる、名称抽出プログラム。
  2. 前記複数のプログラムの名称に含まれる単語のそれぞれについて設定された得点を参照し、前記複数のプログラムの名称それぞれに対して前記得点の和を算出し、
    算出された前記得点の和が上位のプログラムを、前記少なくとも2つのプログラムとして選択する、
    処理を前記コンピュータに実行させる、請求項1に記載の名称抽出プログラム。
  3. 前記得点は、前記クラスタにおける出現頻度が高い単語ほど、大きく設定される、
    請求項2に記載の名称抽出プログラム。
  4. 前記得点は、前記クラスタを含む複数のクラスタにおける共通した出現頻度が高い単語ほど、小さく設定される、
    請求項2又は3に記載の名称抽出プログラム。
  5. 前記得点が閾値未満である単語について、前記配列から除外する、
    処理を前記コンピュータに実行させる、請求項2~4のいずれか1項に記載の名称抽出プログラム。
  6. 前記少なくとも2つのプログラムの間において語順が反転している単語がある場合には、前記少なくとも2つのプログラムのうちの一方のプログラムについて、当該単語の語順を転置させる、
    処理を前記コンピュータに実行させる、請求項1~5のいずれか1項に記載の名称抽出プログラム。
  7. 同一のクラスタに属する複数のプログラムの名称に含まれる単語の出現頻度に基づき、前記複数のプログラムの中から少なくとも2つのプログラムを選択する選択部と、
    前記選択部によって選択された前記少なくとも2つのプログラムの名称に含まれる共通の単語の配列を前記クラスタの名称として抽出する抽出部と、
    を備える、情報処理装置。
  8. コンピュータは、
    同一のクラスタに属する複数のプログラムの名称に含まれる単語の出現頻度に基づき、前記複数のプログラムの中から少なくとも2つのプログラムを選択し、
    選択された前記少なくとも2つのプログラムの名称に含まれる共通の単語の配列を前記クラスタの名称として抽出する、
    処理を実行する、名称抽出方法。
JP2019193593A 2019-10-24 2019-10-24 名称抽出プログラム,情報処理装置及び名称抽出方法 Active JP7380078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019193593A JP7380078B2 (ja) 2019-10-24 2019-10-24 名称抽出プログラム,情報処理装置及び名称抽出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019193593A JP7380078B2 (ja) 2019-10-24 2019-10-24 名称抽出プログラム,情報処理装置及び名称抽出方法

Publications (2)

Publication Number Publication Date
JP2021068226A JP2021068226A (ja) 2021-04-30
JP7380078B2 true JP7380078B2 (ja) 2023-11-15

Family

ID=75637315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019193593A Active JP7380078B2 (ja) 2019-10-24 2019-10-24 名称抽出プログラム,情報処理装置及び名称抽出方法

Country Status (1)

Country Link
JP (1) JP7380078B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014146076A (ja) 2013-01-25 2014-08-14 Fujitsu Ltd 文字列抽出方法、文字列抽出装置、および文字列抽出プログラム
JP2014235723A (ja) 2013-06-05 2014-12-15 日本電信電話株式会社 情報提示装置、方法、及びプログラム
JP2019021232A (ja) 2017-07-21 2019-02-07 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014146076A (ja) 2013-01-25 2014-08-14 Fujitsu Ltd 文字列抽出方法、文字列抽出装置、および文字列抽出プログラム
JP2014235723A (ja) 2013-06-05 2014-12-15 日本電信電話株式会社 情報提示装置、方法、及びプログラム
JP2019021232A (ja) 2017-07-21 2019-02-07 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Also Published As

Publication number Publication date
JP2021068226A (ja) 2021-04-30

Similar Documents

Publication Publication Date Title
US7908588B2 (en) Program presentation with reviewer feedback maintenance
JP2010520531A (ja) 統合ピンイン及び画入力
US20180189249A1 (en) Providing application based subtitle features for presentation
JP2011028747A (ja) サーチ・タームを生成するシステムと方法
JP7081396B2 (ja) 生成方法、生成プログラム、および生成装置
US9613089B2 (en) Form template refactoring
JP5629908B2 (ja) セキュア文書検出方法、セキュア文書検出プログラム、及び光学式文字読取装置
KR102187550B1 (ko) 문서에 삽입되는 ole 개체에 대한 요약된 미리보기 화면을 생성할 수 있는 전자 장치 및 그 동작 방법
US20040004625A1 (en) Selecting elements from an electronic document
US20110013806A1 (en) Methods of object search and recognition
JP7380078B2 (ja) 名称抽出プログラム,情報処理装置及び名称抽出方法
US10754859B2 (en) Encoding edges in graph databases
KR102287149B1 (ko) Pdf 문서에서 텍스트 라인 정보를 기초로 단락의 구분선을 표시하는 전자 장치 및 그 동작 방법
JP2011164830A (ja) グラフ可視化装置及びグラフ可視化方法及びグラフ可視化プログラム
US6904426B2 (en) Method, computer program product, and system for the generation of transaction screen displays from a hierarchical database management log utilizing a batch terminal simulator
US20130311915A1 (en) Ui creation support system, ui creation support method, and non-transitory storage medium
JP5219543B2 (ja) 情報処理装置及び情報処理方法及びプログラム
KR20210050146A (ko) 입력된 문자를 기초로 전자 문서 상의 특정 위치에 특수문자의 삽입을 가능하게 하는 전자 문서 편집 장치 및 그 동작 방법
WO2024047997A1 (ja) 文書分析装置、及び文書分析用プログラム
US7613709B2 (en) System and method for editing operations of a text object model
US11645448B2 (en) Document analysis apparatus, document analysis method, and computer-readable recording medium
JP7244756B2 (ja) 分析プログラム、プログラム分析方法およびプログラム分析装置
KR102545262B1 (ko) 동시 사용 기준을 기초로 특정 문서와 연관된 다른 연관 문서들의 정보를 제공할 수 있는 전자 단말 장치 및 그 동작 방법
JP5358981B2 (ja) 情報処理装置、情報処理装置の制御方法および情報処理装置の制御用プログラム
JP4805491B2 (ja) 辞書管理プログラム及びコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230807

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230807

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: 20231003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231016

R150 Certificate of patent or registration of utility model

Ref document number: 7380078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150