(57)【要約】【課題】少ない分割数で再利用性の高い分割記号列を高速に得ること。【解決手段】１つ以上の記号を有する複数の第１記号列Ｃ１の情報と、２つ以上の第１記号列Ｃ１に共通して含まれる連続した２つ以上の記号を有する第２記号列Ｃ２の情報とが格納された記憶部１１から、第１記号列Ｃ１及び第２記号列Ｃ２の情報を取得可能なコンピュータが、複数の第１記号列Ｃ１を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む第１記号列Ｃ１の数が大きく、かつ、複数の第１記号列Ｃ１に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、分割記号列として利用する第２記号列Ｃ２の組み合わせを決定する分割記号列の決定方法が提供される。【選択図】図１
2015166992.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の記号を有する複数の第１記号列の情報と、２つ以上の前記第１記号列に共通して含まれる連続した２つ以上の記号を有する第２記号列の情報とが格納された記憶部から、前記第１記号列及び前記第２記号列の情報を取得可能なコンピュータが、
前記複数の第１記号列を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む前記第１記号列の数が大きく、かつ、前記複数の第１記号列に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、前記分割記号列として利用する前記第２記号列の組み合わせを決定する
分割記号列の決定方法。
【請求項２】
前記記憶部には、前記分割記号列の候補となる前記第２記号列を記載したリスト情報が格納されており、
前記コンピュータが、
前記リスト情報に記載されている前記第２記号列の中から、前記評価が最も高い前記第２記号列を前記分割記号列として選択し、選択した前記第２記号列を含む他の前記第２記号列を特定し、特定した他の前記第２記号列から、選択した前記第２記号列を除いた部分の記号列が連続した２つ以上の記号を含む場合、当該記号列を前記リスト情報に追加し、選択した前記第２記号列を前記リスト情報から消去する
請求項１に記載の分割記号列の決定方法。
【請求項３】
前記コンピュータが、
選択した前記第２記号列を含む前記第１記号列の数を示す第１含有数と、特定した他の前記第２記号列を含む前記第１記号列の数を示す第２含有数との差が、設定した数より小さい場合に、特定した他の前記第２記号列を前記リスト情報から消去する
請求項２に記載の分割記号列の決定方法。
【請求項４】
前記コンピュータが、
前記評価が最も高い前記第２記号列を選択した場合に当該評価の情報を前記記憶部に格納しておき、前記リスト情報に記載されている全ての前記第２記号列に対する評価が、前記評価の情報が示す評価よりも低い場合、既に選択した前記第２記号列の組み合わせを前記分割記号列に決定する
請求項２又は３に記載の分割記号列の決定方法。
【請求項５】
１つ以上の記号を有する複数の第１記号列の情報と、２つ以上の前記第１記号列に共通して含まれる連続した２つ以上の記号を有する第２記号列の情報とが格納された記憶部と、
前記複数の第１記号列を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む前記第１記号列の数が大きく、かつ、前記複数の第１記号列に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、前記分割記号列として利用する前記第２記号列の組み合わせを決定する演算部と
を有する、情報処理装置。
【請求項６】
１つ以上の記号を有する複数の第１記号列の情報と、２つ以上の前記第１記号列に共通して含まれる連続した２つ以上の記号を有する第２記号列の情報とが格納された記憶部から、前記第１記号列及び前記第２記号列の情報を取得可能なコンピュータに、
前記複数の第１記号列を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む前記第１記号列の数が大きく、かつ、前記複数の第１記号列に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、前記分割記号列として利用する前記第２記号列の組み合わせを決定する
処理を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分割記号列の決定方法、情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
近年、人間が手作業で行っていた様々な作業がコンピュータなどを利用して自動化され、人間の作業負担が低減されると共に作業効率が飛躍的に向上した。例えば、半導体装置や自動車などの製造現場では、多くの作業工程がロボットやコンピュータなどを利用して自動化されている。また、コンピュータ上で動作するアプリケーションプログラムは、ユーザが行う多くの操作工程を自動的に実行する機能を有している。例えば、無線ネットワークへの接続やディスプレイデバイスの認識などの処理は、コンピュータ上で動作するオペレーティングシステムなどのプログラムにより自動的に実行される。
【０００３】
一連の操作工程を記載した手順書が存在する場合、手順書に含まれる操作工程をコンピュータなどを用いて自動化すれば操作工程の自動化が実現される。また、類似の操作に関する複数の手順書が存在する場合、複数の手順書に共通の操作工程を自動化すれば、自動化した操作工程の運用管理が効率化される可能性がある。例えば、手順書に記載の操作工程を記号で表現し、複数の手順書に共通する記号の組をコンピュータにより抽出できれば、好適な自動化対象を容易に選択できるようになる可能性がある。
【０００４】
文字列の処理に関し、例えば、コンピュータを用いて、記号、英数字、漢字などの文字からなる複数の文字列同士、又は単数の文字列における一部同士を比較して、文字列の中の類似部分である類似部分文字列を検出する技術が提案されている。また、文字列の中から類似部分文字列を検出する方法としてはSmith-Waterman法なども知られている。
【０００５】
また、ドキュメント群のドキュメントを分割して部分文字列を生成し、ドキュメント群における部分文字列の出現頻度に基づいてキーワードを抽出する方法が提案されている。また、ＤＮＡの塩基配列やタンパク質のアミノ酸配列について、３つ以上の配列間で対応する部分が並ぶように整列するマルチプルアライメント法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３８３２９号公報
【特許文献２】特開２００２−１９７０９５号公報
【非特許文献】
【０００７】
【非特許文献１】Smith, Temple F.; and Waterman, Michael S. (1981). "Identification of Common Molecular Subsequences". Journal of Molecular Biology 147: 195-197.
【非特許文献２】D.Feng and R.F.Doolittle. (1987). "Progressive sequence alignment as a prerequisite to correct phylogenetic trees". Journal of Molecular Evolution 25: 351-360.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
Smith-Waterman法などの手法を応用すれば、例えば、操作工程を記号で表現した２つの手順書から、共通する最長の記号列を抽出することができると考えられる。共通の記号列を１つの単位として手順書を表現する場合、共通の記号列が長いほど少数の単位で手順書を表現できる。つまり、共通の記号列が長いほど、手順書を記号列の組に分割する際の分割数が少なくなる。この場合、共通の記号列を組み合わせて手順書を表現する際に、手順書を表現する記号列の組み合わせを抽出する処理の負荷が少なくなる。従って、処理負荷の観点からは、複数の手順書に共通する最長の記号列は好適である。
【０００９】
一方、記号列の管理という側面から見ると、同じ記号列を共通して含む手順書の数が多い（記号列の再利用性が高い）ほど管理が容易になる。記号列が長いほど、その記号列を共通して含む手順書の数が少なくなる。そのため、複数の手順書に共通する最長の記号列は、記号列の管理という側面から見ると好適ではない。Smith-Waterman法を適用した場合、上記の再利用性は考慮されない。
【００１０】
分割数の少なさと再利用性の高さとはトレードオフの関係にあり、好適な記号列の組み合わせを決めることは最適化問題を解くことである。従って、分割数の少なさに加えて再利用性の高さを考慮する場合、現実的な時間内に解を得る方法を見つけることが課題となる。なお、ここでは説明の都合上、手順書に基づく操作工程の自動化を例に説明したが、複数の記号列を分割して複数の分割記号列を得るような処理について同様の課題がある。
【００１１】
そこで、１つの側面によれば、本発明の目的は、少ない分割数で再利用性の高い分割記号列を高速に得ることが可能な、分割記号列の決定方法、情報処理装置、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本開示の１つの側面によれば、１つ以上の記号を有する複数の第１記号列の情報と、２つ以上の第１記号列に共通して含まれる連続した２つ以上の記号を有する第２記号列の情報とが格納された記憶部から、第１記号列及び第２記号列の情報を取得可能なコンピュータが、複数の第１記号列を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む第１記号列の数が大きく、かつ、複数の第１記号列に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、分割記号列として利用する第２記号列の組み合わせを決定する分割記号列の決定方法が提供される。
【００１３】
また、本開示の他の１つの側面によれば、１つ以上の記号を有する複数の第１記号列の情報と、２つ以上の第１記号列に共通して含まれる連続した２つ以上の記号を有する第２記号列の情報とが格納された記憶部と、複数の第１記号列を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む第１記号列の数が大きく、かつ、複数の第１記号列に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、分割記号列として利用する第２記号列の組み合わせを決定する演算部とを有する、情報処理装置が提供される。
【００１４】
また、本開示の他の１つの側面によれば、１つ以上の記号を有する複数の第１記号列の情報と、２つ以上の第１記号列に共通して含まれる連続した２つ以上の記号を有する第２記号列の情報とが格納された記憶部から、第１記号列及び第２記号列の情報を取得可能なコンピュータに、複数の第１記号列を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む第１記号列の数が大きく、かつ、複数の第１記号列に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、分割記号列として利用する第２記号列の組み合わせを決定する処理を実行させる、プログラムが提供される。
【発明の効果】
【００１５】
本発明によれば、少ない分割数で再利用性の高い分割記号列を高速に得ることが可能になる。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態に係る情報処理装置の一例を示した図である。
【図２】第２実施形態に係る部分列の決定方法について説明するための第１の図である。
【図３】第２実施形態に係る部分列の決定方法について説明するための第２の図である。
【図４】第２実施形態に係る部分列の決定方法について説明するための第３の図である。
【図５】第２実施形態に係る部分列の決定方法について説明するための第４の図である。
【図６】第２実施形態に係る部分列の決定方法について説明するための第５の図である。
【図７】第２実施形態に係る部分列の決定方法に関する処理を実行可能なハードウェアの一例を示した図である。
【図８】第２実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。
【図９】第２実施形態に係る操作列リストの一例を示した図である。
【図１０】第２実施形態に係る候補リストの一例を示した図である。
【図１１】第２実施形態に係る採用リストの一例を示した図である。
【図１２】第２実施形態に係る情報処理装置が実行する処理の一例を示した第１の図である。
【図１３】第２実施形態に係る情報処理装置が実行する処理の一例を示した第２の図である。
【図１４】第２実施形態に係る情報処理装置が実行する処理の一例を示した第３の図である。
【図１５】第２実施形態に係る情報処理装置が実行する処理の一例を示した第４の図である。
【図１６】第２実施形態に係る情報処理装置が実行する処理の一例を示した第５の図である。
【図１７】第２実施形態に係る情報処理装置が実行する処理の一例を示した第６の図である。
【図１８】第２実施形態に係る情報処理装置が実行する処理の一例を示した第７の図である。
【図１９】第２実施形態に係る情報処理装置が実行する処理の流れを示した第１のフロー図である。
【図２０】第２実施形態に係る情報処理装置が実行する処理の流れを示した第２のフロー図である。
【図２１】第２実施形態に係る情報処理装置が実行する処理の流れを示した第３のフロー図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１８】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。図１は、第１実施形態に係る情報処理装置の一例を示した図である。なお、図１に例示した情報処理装置１０は、第１実施形態に係る情報処理装置の一例である。
【００１９】
図１に示すように、情報処理装置１０は、記憶部１１、及び演算部１２を有する。
なお、記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置である。また、演算部１２は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、演算部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。演算部１２は、例えば、記憶部１１又は他のメモリに記憶されたプログラムを実行する。
【００２０】
記憶部１１には、１つ以上の記号を有する複数の第１記号列Ｃ１の情報と、２つ以上の第１記号列Ｃ１に共通して含まれる連続した２つ以上の記号を有する第２記号列Ｃ２の情報とが格納されている。
【００２１】
図１には、第１記号列Ｃ１の例として、第１記号列Ｃ１１（ＡＢＣＤＥ）、第１記号列Ｃ１２（ＡＢＤＥＦＧ）、及び第１記号列Ｃ１３（ＣＤＥＦ）が示されている。また、第１記号列Ｃ１１、Ｃ１２、Ｃ１３に対応する第２記号列Ｃ２として、第２記号列Ｃ２１（ＡＢ）、第２記号列Ｃ２２（ＣＤ）、第２記号列Ｃ２３（ＣＤＥ）、第２記号列Ｃ２４（ＤＥ）、及び第２記号列Ｃ２５（ＤＥＦ）が示されている。
【００２２】
なお、第１記号列Ｃ１１、Ｃ１２、Ｃ１３の少なくとも２つに共通する部分列として「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ｅ」、「Ｆ」が存在するが、これら長さが１の部分列は第２記号列Ｃ２に含まれない。
【００２３】
第２記号列Ｃ２１（ＡＢ）を用いると第１記号列Ｃ１１（ＡＢＣＤＥ）は、「｛Ｃ２１｝ＣＤＥ」（但し、｛Ｃ２１｝は第２記号列Ｃ２１を表す。）と表現できる。第１記号列Ｃ１２（ＡＢＤＥＦＧ）は、「｛Ｃ２１｝ＤＥＦＧ」と表現できる。第１記号列Ｃ１３（ＣＤＥＦ）は、第２記号列Ｃ２１を含まない。
【００２４】
また、第２記号列Ｃ２２（ＣＤ）を用いると第１記号列Ｃ１１（ＡＢＣＤＥ）は、「ＡＢ｛Ｃ２２｝Ｅ」（但し、｛Ｃ２２｝は第２記号列Ｃ２２を表す。）と表現できる。第１記号列Ｃ１２（ＡＢＤＥＦＧ）は、第２記号列Ｃ２２を含まない。第１記号列Ｃ１３（ＣＤＥＦ）は、「｛Ｃ２２｝ＥＦ」と表現できる。
【００２５】
また、第２記号列Ｃ２３（ＣＤＥ）を用いると第１記号列Ｃ１１（ＡＢＣＤＥ）は、「ＡＢ｛Ｃ２３｝」（但し、｛Ｃ２３｝は第２記号列Ｃ２３を表す。）と表現できる。第１記号列Ｃ１２（ＡＢＤＥＦＧ）は、第２記号列Ｃ２３を含まない。第１記号列Ｃ１３（ＣＤＥＦ）は、「｛Ｃ２３｝Ｆ」と表現できる。
【００２６】
また、第２記号列Ｃ２４（ＤＥ）を用いると第１記号列Ｃ１１（ＡＢＣＤＥ）は、「ＡＢＣ｛Ｃ２４｝」（但し、｛Ｃ２４｝は第２記号列Ｃ２４を表す。）と表現できる。第１記号列Ｃ１２（ＡＢＤＥＦＧ）は、「ＡＢ｛Ｃ２４｝ＦＧ」と表現できる。第１記号列Ｃ１３（ＣＤＥＦ）は、「Ｃ｛Ｃ２４｝Ｆ」と表現できる。
【００２７】
また、第２記号列Ｃ２５（ＤＥＦ）を用いると第１記号列Ｃ１１（ＡＢＣＤＥ）は、第２記号列Ｃ２５を含まない。第１記号列Ｃ１２（ＡＢＤＥＦＧ）は、「ＡＢ｛Ｃ２５｝Ｇ」（但し、｛Ｃ２５｝は第２記号列Ｃ２５を表す。）と表現できる。第１記号列Ｃ１３（ＣＤＥＦ）は、「Ｃ｛Ｃ２５｝」と表現できる。
【００２８】
演算部１２は、複数の第１記号列Ｃ１を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む第１記号列Ｃ１の数が大きく、かつ、複数の第１記号列Ｃ１に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標を利用する。例えば、演算部１２は、共通性及び分割性をそれぞれ表す評価値に基づくスコアを計算し、計算したスコアを上記の評価指標として利用する。そして、演算部１２は、分割記号列として利用する第２記号列Ｃ２の組み合わせを決定する。
【００２９】
例えば、演算部１２は、第２記号列Ｃ２１、Ｃ２２、Ｃ２３、Ｃ２４、Ｃ２５をそれぞれ用いて第１記号列Ｃ１１、Ｃ１２、Ｃ１３を表現した場合のスコアを計算している。図１の例では、第２記号列Ｃ２３を用いた場合のスコアが最大となる。この場合、演算部１２は、最大のスコア（Ｓｃ１）に対応する１つの第２記号列Ｃ２３を特定する。そして、演算部１２は、第２記号列Ｃ２３を用いて第１記号列Ｃ１１、Ｃ１２、Ｃ１３を表現する（Ｃ１ａを参照）。
【００３０】
また、演算部１２は、Ｃ１ａに示した第１記号列Ｃ１１、Ｃ１２、Ｃ１３に対し、第２記号列Ｃ２１、Ｃ２２、Ｃ２４、Ｃ２５を適用した場合のスコアを計算する。そして、演算部１２は、最大のスコア（Ｓｃ２）に対応する１つの第２記号列Ｃ２１を特定する。また、演算部１２は、Ｓｃ２がＳｃ１より大きいか否かを判定し、Ｓｃ２がＳｃ１より大きい場合に、特定した第２記号列Ｃ２１を用いて第１記号列Ｃ１１、Ｃ１２、Ｃ１３を表現する（Ｃ１ｂを参照）。
【００３１】
また、演算部１２は、Ｃ１ｂに示した第１記号列Ｃ１１、Ｃ１２、Ｃ１３に対し、第２記号列Ｃ２２、Ｃ２４、Ｃ２５を適用した場合のスコアを計算する。そして、演算部１２は、最大のスコア（Ｓｃ３）に対応する１つの第２記号列Ｃ２５を特定する。また、演算部１２は、Ｓｃ３がＳｃ２より大きいか否かを判定し、Ｓｃ３がＳｃ２より大きい場合に、特定した第２記号列Ｃ２５を用いて第１記号列Ｃ１１、Ｃ１２、Ｃ１３を表現する（Ｃ１ｃを参照）。
【００３２】
演算部１２は、最大のスコアが増加しなくなるまで第１記号列Ｃ１の表現に利用可能な第２記号列Ｃ２を順次特定する。最大のスコアが更新されなくなった場合、演算部１２は、既に特定した第２記号列Ｃ２の集合を分割記号列の組み合わせに決定する。
【００３３】
上記のように、演算部１２は、２つ以上の記号を含む第２記号列Ｃ２を利用する。そのため、２つ以上の第１記号列Ｃ１に共通して含まれる数が多く、かつスコア改善への寄与が小さい長さ１の部分列が分割記号列の候補から除外され、処理の高速化が実現される。
【００３４】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。以下では、説明の都合上、操作手順を示す複数の手順書から、自動化対象として好適な操作工程の組み合わせを決定する方法を例に挙げて説明を進める。但し、第２実施形態に係る技術の適用範囲はこの例に限定されない。
【００３５】
［２−１．部分列の決定方法］
まず、図２〜図６を参照しながら、第２実施形態に係る部分列の決定方法について説明する。なお、部分列とは、記号列の分割処理において得られる記号列の一部又は全部を意味する。図２〜図６に例示した記号列や分割方法は一例であり、第２実施形態に係る技術の適用範囲はこれに限定されない。例えば、適用可能な記号はアルファベットに限定されず、コンピュータが扱うことが可能な任意の記号を適用することができる。
【００３６】
なお、図２は、第２実施形態に係る部分列の決定方法について説明するための第１の図である。また、図３は、第２実施形態に係る部分列の決定方法について説明するための第２の図である。また、図４は、第２実施形態に係る部分列の決定方法について説明するための第３の図である。また、図５は、第２実施形態に係る部分列の決定方法について説明するための第４の図である。また、図６は、第２実施形態に係る部分列の決定方法について説明するための第５の図である。
【００３７】
（記号列への変換）
図２を参照しながら、手順書に記述された一連の操作を記号列で表現する方法について説明する。
【００３８】
手作業で行う操作の流れを記載した手順書は、自然言語で記述されていることが多い。図２の例では、手順書＃１に「操作＃１：ログイン」などと記述され、手順書＃２に「操作＃１：ログオン」などと記述されている。
【００３９】
例えば、「ログイン」と「ログオン」とは同じ内容の操作を表す。このような表現のゆらぎは、同じ内容の操作を自動分類するための辞書データ及び自然言語処理アルゴリズムなどを利用して吸収することができる。そのため、コンピュータを利用して、同じ内容の操作を同じ記号で表現した記号列表現へと手順書＃１、＃２の記載内容を変換することができる。
【００４０】
図２の例では、４つの記号「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」を並べた記号列により手順書＃１、＃２が表現されている。以下では記号列表現の手順書を想定して説明を進めるが、各手順書は図２に例示した方法と同様の方法を用いて生成されうる。
【００４１】
（共通性と分割性のバランス）
図３を参照する。図３には、３つの手順書＃１、＃２、＃３が例示されている。手順書＃１は、記号列「ＡＢＣＤＥ」（以下、記号列＃１）で表現されている。また、手順書＃２は、記号列「ＡＢＣＤ」（以下、記号列＃２）で表現されている。また、手順書＃３は、記号列「ＣＤＥＦＧ」（以下、記号列＃３）で表現されている。但し、記号「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ｅ」、「Ｆ」、「Ｇ」は、それぞれ操作を表している。
【００４２】
いま、記号列＃１、＃２、＃３をそれぞれ１つ又は複数の部分列に分割し、記号列＃１、＃２、＃３の少なくとも２つに共通する部分列をまとめて、部分列を整理する方法について考える。分割方法は任意であるが、一例として、図３に示すような分割方法が考えられる。図３の例では、手順書＃１が、３つの部分列Ｂ１１、Ｂ１２、Ｂ１３に分割されている。また、手順書＃２が、２つの部分列Ｂ２１、Ｂ２２に分割されている。手順書＃３は、３つの部分列Ｂ３１、Ｂ３２、Ｂ３３に分割されている。
【００４３】
２つの部分列Ｂ１１、Ｂ２１は同じである。また、３つの部分列Ｂ１２、Ｂ２２、Ｂ３１は同じである。また、２つの部分列Ｂ１３、Ｂ３２は同じである。そのため、同じ部分列をまとめることで８つの部分列Ｂ１１、…、Ｂ３３は、４つの部分列「ＡＢ」、「ＣＤ」、「Ｅ」、「ＦＧ」により表現することができる。
【００４４】
この場合、部分列「ＡＢ」は、２つの手順書＃１、＃２に共通して含まれる。また、部分列「ＣＤ」は、３つの手順書＃１、＃２、＃３に共通して含まれる。また、部分列「Ｅ」は、２つの手順書＃１、＃３に共通して含まれる。また、部分列「ＦＧ」は、１つの手順書＃３に含まれる。
【００４５】
複数の手順書に共通して含まれる部分列の数が多ければ（つまり、部分列の共通性が良好であれば）、管理対象となる部分列の数を減らすことができる。例えば、部分列を単位として操作工程を自動化する場合、自動化対象にする操作ブロック（１つの単位となる一連の操作群）の数が減り、操作工程の管理が容易になる。言い換えると、１つの部分列を表現に利用する手順書の数（以下、利用数）が多ければ、操作工程の管理が容易になる。
【００４６】
一方、１つの手順書を表現する部分列の数（以下、分割数）が少なければ（つまり、手順書の分割性が良好であれば）、部分列を組み合わせて手順書を再現する場合に費やす演算コストを低減することができる。但し、分割数が少なくなると、手順書から切り出される部分列が長くなる。部分列が長くなると、その部分列を共通して含む手順書の数が減少する可能性が高まる。つまり、分割性と共通性とはトレードオフの関係にある。
【００４７】
そこで、図４に示すように、共通性と分割性とのバランスを考える。図４の（Ａ）は、図３に例示した分割方法を実施した場合に得られる部分列毎の利用数を示した表である。図４の（Ｂ）は、図３に例示した分割方法を実施した場合に得られる手順書毎の分割数を示した表である。
【００４８】
図３に例示した分割方法の場合、図４の（Ａ）に示すように、部分列「ＡＢ」の利用数が２、部分列「ＣＤ」の利用数が３、部分列「Ｅ」の利用数が２、部分列「ＦＧ」の利用数が１となる。また、図４の（Ｂ）に示すように、手順書＃１の分割数が３、手順書＃２の分割数が２、手順書＃３の分割数が３となる。
【００４９】
共通性を示す指標（以下、共通性指標ＱC）を下記の式（１）により表現した場合、図４の例では共通性指標ＱCが２となる。また、分割性を示す指標（以下、分割性指標ＱD）を下記の式（２）により表現した場合、図４の例では分割性指標ＱDが約２．７となる。共通性指標ＱCは、共通性が高いほど値が大きくなる。一方、分割性指標ＱDは、分割性が高いほど値が小さくなる。
【００５０】
【数１】
2015166992.tif 000003
【００５１】
【数２】
2015166992.tif 000004
【００５２】
ここで、図５を参照しながら、分割数が最小になる分割方法について考える。
図５の例では、記号列＃１の全体が１つの部分列Ｂ１１である。同様に、記号列＃２の全体が１つの部分列Ｂ２１であり、記号列＃３の全体が１つの部分列Ｂ３１である。この場合に分割数が最小になる。図５に示すように、部分列Ｂ１１、Ｂ２１、Ｂ３１は互いに異なる記号列である。そのため、３つの部分列Ｂ１１、Ｂ２１、Ｂ３１をまとめることはできず、部分列「ＡＢＣＤＥ」、「ＡＢＣＤ」、「ＣＤＥＦＧ」がそのまま利用される。
【００５３】
この場合、図５の（Ａ）に示すように、部分列「ＡＢＣＤＥ」、「ＡＢＣＤ」、「ＣＤＥＦＧ」の利用数はそれぞれ１となる。また、図５の（Ｂ）に示すように、手順書＃１、＃２、＃３の分割数はそれぞれ１となる。また、共通性指標ＱCは１となり、分割性指標ＱDは１となる。つまり、図５に例示した分割方法は、図３に例示した分割方法よりも共通性は悪いが、分割性は良い。
【００５４】
次に、図６を参照しながら、利用数が最大になる分割方法について考える。
図６の例では、手順書＃１に記載の５つの記号がそれぞれ５つの部分列Ｂ１１、Ｂ１２、Ｂ１３、Ｂ１４、Ｂ１５である。同様に、手順書＃２に記載の４つの記号がそれぞれ４つの部分列Ｂ２１、Ｂ２２、Ｂ２３、Ｂ２４である。また、手順書＃３に記載の５つの記号がそれぞれ５つの部分列Ｂ３１、Ｂ３２、Ｂ３３、Ｂ３４、Ｂ３５である。この場合に利用数が最大になる。
【００５５】
図６の例では、２つの部分列Ｂ１１、Ｂ２１が同じである。また、２つの部分列Ｂ１２、Ｂ２２は同じである。また、３つの部分列Ｂ１３、Ｂ２３、Ｂ３１は同じである。また、３つの部分列Ｂ１４、Ｂ２４、Ｂ３２は同じである。また、２つの部分列Ｂ１５、Ｂ３３は同じである。そのため、部分列Ｂ１１、Ｂ１２、Ｂ１３、Ｂ１４、Ｂ１５、Ｂ２１、Ｂ２２、Ｂ２３、Ｂ２４、Ｂ３１、Ｂ３２、Ｂ３３について同じ記号列同士がまとめられ、７つの部分列「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ｅ」、「Ｆ」、「Ｇ」が得られる。
【００５６】
この場合、図６の（Ａ）に示すように、部分列「Ａ」の利用数は２、部分列「Ｂ」の利用数は２、部分列「Ｃ」の利用数は３、部分列「Ｄ」の利用数は３となる。さらに、部分列「Ｅ」の利用数は２、部分列「Ｆ」の利用数は１、部分列「Ｇ」の利用数は１となる。
【００５７】
また、図６の（Ｂ）に示すように、手順書＃１の分割数は５、手順書＃２の分割数は４、手順書＃３の分割数は５となる。また、共通性指標ＱCは２となり、分割性指標ＱDは約４．７となる。つまり、図６に例示した分割方法は、図３に例示した分割方法よりも共通性は良いが、分割性は悪い。
【００５８】
上記のように、図３、図５、図６に示した分割方法の比較から、図３に例示した分割方法が、共通性と分割性とのバランスがとれた好適な分割方法の１つであることが分かる。第２実施形態においては、このような共通性と分割性とのバランスを評価するために、下記の式（３）で表現されるバランス指標Ｑを導入する。
【００５９】
なお、下記の式（３）に含まれる「利用数合計の最大値」とは、図６に例示した分割方法のように、利用数が最大となる分割方法で分割した場合に得られる利用数の合計値（図６の例では１４）を表す。また、下記の式（３）に含まれる「分割数合計の最小値」とは、図５に例示した分割方法のように、分割数が最小となる分割方法で分割した場合に得られる分割数の合計値（図５の例では３）を表す。
【００６０】
【数３】
2015166992.tif 000005
【００６１】
上記の式（３）から明らかなように、バランス指標Ｑは、利用数の合計が大きくなるほど値が大きくなり、分割数の合計が小さくなるほど値が大きくなる。第２実施形態では、バランス指標Ｑを最大化する部分列の組み合わせを決める好適な方法を提案する。
【００６２】
以上、部分列の決定方法について説明した。
［２−２．ハードウェアの例］
次に、図７を参照しながら、第２実施形態に係る部分列の決定方法に関する処理を実行可能なハードウェアについて説明する。図７は、第２実施形態に係る部分列の決定方法に関する処理を実行可能なハードウェアの一例を示した図である。
【００６３】
第２実施形態に係る情報処理装置の一例である情報処理装置１００が有する機能は、例えば、図７に示すハードウェア資源を用いて実現することが可能である。つまり、情報処理装置１００が有する機能は、コンピュータプログラムを用いて図７に例示したハードウェアを制御することにより実現される。
【００６４】
図７に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００６５】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００６６】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
【００６７】
出力部９１８としては、例えば、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、又はＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置が用いられる。また、出力部９１８として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部９１８は、情報を視覚的又は聴覚的に出力することが可能な装置である。
【００６８】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤ（Solid State Drive）やＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００６９】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。リムーバブル記録媒体９２８には、例えば、コンピュータプログラムが格納される。
【００７０】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、ＲＳ−２３２Ｃポート、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、プリンタなどが用いられる。
【００７１】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ（Local Area Network）用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネット、ＬＡＮ、放送網、衛星通信回線などを含む。
【００７２】
以上、ハードウェアの例について説明した。
［２−３．情報処理装置の機能］
次に、図８〜図１８を参照しながら、第２実施形態に係る情報処理装置の機能について説明する。
【００７３】
なお、図８は、第２実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。また、図９は、第２実施形態に係る操作列リストの一例を示した図である。また、図１０は、第２実施形態に係る候補リストの一例を示した図である。また、図１１は、第２実施形態に係る採用リストの一例を示した図である。
【００７４】
図１２は、第２実施形態に係る情報処理装置が実行する処理の一例を示した第１の図である。また、図１３は、第２実施形態に係る情報処理装置が実行する処理の一例を示した第２の図である。また、図１４は、第２実施形態に係る情報処理装置が実行する処理の一例を示した第３の図である。また、図１５は、第２実施形態に係る情報処理装置が実行する処理の一例を示した第４の図である。
【００７５】
また、図１６は、第２実施形態に係る情報処理装置が実行する処理の一例を示した第５の図である。また、図１７は、第２実施形態に係る情報処理装置が実行する処理の一例を示した第６の図である。また、図１８は、第２実施形態に係る情報処理装置が実行する処理の一例を示した第７の図である。
【００７６】
（機能ブロック）
図８を参照しながら、情報処理装置１００の機能について説明する。なお、図８に例示した情報処理装置１００は、第２実施形態に係る情報処理装置の一例である。また、説明の中で、適宜、図９〜図１１を参照する。
【００７７】
図８に示すように、情報処理装置１００は、記憶部１０１、部分列抽出部１０２、スコア計算部１０３、リスト更新部１０４、及び部分列出力部１０５を有する。
なお、部分列抽出部１０２、スコア計算部１０３、リスト更新部１０４、及び部分列出力部１０５の機能は、上述したＣＰＵ９０２などを用いて実現できる。また、記憶部１０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。
【００７８】
記憶部１０１は、操作列リスト１０１ａ、候補リスト１０１ｂ、採用リスト１０１ｃ、及び最大スコア１０１ｄを記憶する。なお、以下では「リスト」という表現を用いるが、記号列のデータを蓄積する「バッファ」を利用しても同様の機能を実現可能である。
【００７９】
操作列リスト１０１ａは、手順書に記述された一連の操作を表現した記号列（以下、操作列）のリストである（例えば、図９を参照）。候補リスト１０１ｂは、操作列リスト１０１ａに記載された２つ以上の操作列に共通して含まれる部分列（以下、共通部分列）のリストである（例えば、図１０を参照）。採用リスト１０１ｃは、操作列リスト１０１ａに記載された操作列の分割に利用する分割記号列として抽出された共通部分列のリストである（例えば、図１１を参照）。最大スコア１０１ｄは、採用リスト１０１ｃに記載する共通部分列を抽出する際に計算されたスコアの最大値である。
【００８０】
部分列抽出部１０２は、操作列リスト１０１ａを参照し、２つ以上の記号を含む共通部分列（長さ２以上の共通部分列）を抽出する。そして、部分列抽出部１０２は、抽出した共通部分列を候補リスト１０１ｂに記載する。このとき、部分列抽出部１０２は、共通部分列を含む操作列の情報を候補リスト１０１ｂに記載する。
【００８１】
スコア計算部１０３は、候補リスト１０１ｂを参照し、候補リスト１０１ｂに記載の共通部分列を操作列に適用した場合に得られるスコアを共通部分列毎に計算する。例えば、上記の式（３）で表現されるバランス指標Ｑは、スコアの一例である。スコア計算部１０３により計算された共通部分列毎のスコアは、リスト更新部１０４に入力される。
【００８２】
リスト更新部１０４は、採用決定部１４１、分解判定部１４２、及び削除判定部１４３を含む。採用決定部１４１は、スコア計算部１０３により計算されたスコアの最大値を特定し、最大値に対応する共通部分列を抽出する。そして、採用決定部１４１は、抽出した共通部分列を操作列の分割に利用する部分列として採用し、採用リスト１０１ｃに記載する。また、採用決定部１４１は、特定した最大値を最大スコア１０１ｄとして記憶部１０１に格納する。
【００８３】
分解判定部１４２は、採用リスト１０１ｃに記載された共通部分列（以下、採用部分列）と、候補リスト１０１ｂに記載された他の共通部分列とを比較し、採用部分列を含む共通部分列を検出する。採用部分列を含む共通部分列を検出した場合、分解判定部１４２は、検出した共通部分列から採用部分列を除外した残りの記号列（以下、残余部分列）に注目する。例えば、採用部分列が「ＡＢＣ」、共通部分列が「ＸＹＺＡＢＣＤ」の場合、分解判定部１４２は、２つの残余部分列「ＸＹＺ」、「Ｄ」に注目する。
【００８４】
そして、分解判定部１４２は、残余部分列の長さが２以上であるか否か判定する。例えば、残余部分列「ＸＹＺ」（記号数が３）は長さが２以上である。一方、残余部分列「Ｄ」（記号数が１）は長さが２以上ではない。残余部分列の長さを判定した分解判定部１４２は、長さが２以上の残余部分列を共通部分列として候補リスト１０１ｂに追加し、採用部分列（及び残余部分列）を含む共通部分列を候補リスト１０１ｂから削除する。
【００８５】
削除判定部１４３は、採用部分列を含む共通部分列のうち、残余部分列の長さが全て１である共通部分列に注目する。削除判定部１４３は、注目した共通部分列について、採用部分列を含む操作列の数（以下、第１含有数）と、共通部分列を含む操作列の数（以下、第２含有数）とを比較する。削除判定部１４３は、第１含有数より第２含有数が２以上小さい場合に、注目した共通部分列を候補リスト１０１ｂに残し、それ以外の場合に、注目した共通部分列を候補リスト１０１ｂから削除する。
【００８６】
上記のようにして候補リスト１０１ｂ、採用リスト１０１ｃ、最大スコア１０１ｄが更新されると、スコア計算部１０３は、更新後の候補リスト１０１ｂを参照し、候補リスト１０１ｂに記載の共通部分列を操作列に適用した場合に得られるスコアを共通部分列毎に計算する。スコア計算部１０３により計算された共通部分列毎のスコアは、リスト更新部１０４に入力される。
【００８７】
採用決定部１４１は、スコア計算部１０３により計算されたスコアの最大値を特定し、最大値に対応する共通部分列を抽出する。さらに、採用決定部１４１は、特定した最大値と記憶部１０１に格納されている最大スコア１０１ｄとを比較する。特定した最大値が最大スコア１０１ｄよりも大きい場合、採用決定部１４１は、抽出した共通部分列を操作列の分割に利用する部分列として採用し、採用リスト１０１ｃに記載する。また、採用決定部１４１は、特定した最大値を最大スコア１０１ｄとして記憶部１０１に格納する。
【００８８】
特定した最大値が最大スコア１０１ｄよりも大きい場合、分解判定部１４２、及び削除判定部１４３の機能により候補リスト１０１ｂが更新される。一方、特定した最大値が最大スコア１０１ｄよりも小さい場合、採用決定部１４１は、部分列出力部１０５に対し、操作列の分割に利用する採用部分列の決定が完了したことを通知する。部分列出力部１０５は、採用リスト１０１ｃを参照し、採用リスト１０１ｃに記載された共通部分列の情報を出力する。
【００８９】
上記のように、情報処理装置１００は、共通性及び分割性のバランスを評価するスコアに基づいて操作列の分割に好適な採用部分列を決定する。そのため、共通性及び分割性を考慮した採用部分列の決定が実現される。また、情報処理装置１００は、長さ２以上の共通記号列を用いて採用部分列を決定する。そのため、採用部分列の決定に係る処理負荷が低減され、処理の高速化が実現される。
【００９０】
また、情報処理装置１００は、長さが２以上の残余部分列を共通部分列として利用する。つまり、情報処理装置１００は、採用部分列を含む共通部分列を分解し、採用可能性のある残余部分列を再利用する。そのため、操作列から直接的に抽出された共通部分列が無駄なく利用され、スコアの向上に寄与する。つまり、より好適な採用部分列の組み合わせを決定することが可能になる。
【００９１】
（記号列の分割処理）
ここで、図１２〜図１８を参照しながら、図９に例示した操作列リスト１０１ａに記載の操作列Ｘ００１、Ｘ００２、…、Ｘ００６を分割する処理について説明する。なお、説明の中で、適宜、図９〜図１１を参照する。
【００９２】
操作列Ｘ００１、Ｘ００２、…、Ｘ００６から２つ以上の記号を含む共通部分列を抽出すると、図１０に示した共通部分列Ｙ００１、Ｙ００２、…、Ｙ０１０が得られる。
図１０に示すように、共通部分列Ｙ００１は、６つの操作列Ｘ００１、Ｘ００２、…、Ｘ００６に含まれる（含有数：６）。共通部分列Ｙ００２は、４つの操作列Ｘ００１、Ｘ００３、Ｘ００４、Ｘ００６に含まれる（含有数：４）。共通部分列Ｙ００３は、３つの操作列Ｘ００１、Ｘ００４、Ｘ００５に含まれる（含有数：３）。共通部分列Ｙ００４は、２つの操作列Ｘ００２、Ｘ００５に含まれる（含有数：２）。共通部分列Ｙ００５は、２つの操作列Ｘ００１、Ｘ００６に含まれる（含有数：２）。
【００９３】
また、共通部分列Ｙ００６は、２つの操作列Ｘ００１、Ｘ００４に含まれる（含有数：２）。共通部分列Ｙ００７は、２つの操作列Ｘ００３、Ｘ００４に含まれる（含有数：２）。共通部分列Ｙ００８は、２つの操作列Ｘ００３、Ｘ００４に含まれる（含有数：２）。共通部分列Ｙ００９は、２つの操作列Ｘ００１、Ｘ００６に含まれる。共通部分列Ｙ０１０は、２つの操作列Ｘ００４、Ｘ００５に含まれる（含有数：２）。
【００９４】
図１２に示すように、スコア計算部１０３は、共通部分列Ｙ００１、Ｙ００２、…、Ｙ０１０をそれぞれ操作列Ｘ００１、Ｘ００２、…、Ｘ００６に適用した場合のスコアを計算する。例えば、スコア計算部１０３は、上記の式（３）に示したバランス指標Ｑを計算し、計算した値をスコアとする。
【００９５】
図１２の例では、共通部分列Ｙ００１を適用した場合のスコアが０．０９８、共通部分列Ｙ００２を適用した場合のスコアが０．０２８、共通部分列Ｙ００３を適用した場合のスコアが０．１０７となっている。また、共通部分列Ｙ００４を適用した場合のスコアは０．０６５、共通部分列Ｙ００５を適用した場合のスコアは０．０２４、共通部分列Ｙ００６を適用した場合のスコアは０．０２４となっている。
【００９６】
また、共通部分列Ｙ００７を適用した場合のスコアは０．０３１、共通部分列Ｙ００８を適用した場合のスコアは０．０２６、共通部分列Ｙ００９を適用した場合のスコアは０．０２７、共通部分列Ｙ０１０を適用した場合のスコアは０．０２６となっている。
【００９７】
採用決定部１４１は、前回の最大スコアＳｃＭと、共通部分列Ｙ００１、Ｙ００２、…、Ｙ０１０のそれぞれについて計算したスコアとを比較する。なお、最初は最大スコアＳｃＭが初期値（０．０００）に設定されている。図１２の例では、共通部分列Ｙ００１、Ｙ００２、…、Ｙ０１０のスコアがそれぞれ最大スコアＳｃＭより大きい。そのため、採用決定部１４１は、共通部分列Ｙ００１、Ｙ００２、…、Ｙ０１０を全て更新可能（図中では「ＯＫ」）と判断する。
【００９８】
また、採用決定部１４１は、更新可能と判断した共通部分列Ｙ００１、Ｙ００２、…、Ｙ０１０のうち、最大のスコアを有する共通部分列（図１２の例ではＹ００３）を抽出する。そして、採用決定部１４１は、抽出した共通部分列Ｙ００３を採用リスト１０１ｃに追加し、共通部分列Ｙ００３を候補リスト１０１ｂから削除する。また、採用決定部１４１は、共通部分列Ｙ００３のスコアで最大スコアＳｃＭを更新する。
【００９９】
また、分解判定部１４２は、図１３に示すように、採用リスト１０１ｃに追加した共通部分列Ｙ００３と、候補リスト１０１ｂに記載の共通部分列Ｙ００１、Ｙ００２、Ｙ００４、…、Ｙ０１０とを比較し、共通部分列Ｙ００３を含む共通部分列を検出する。図１３の例では、共通部分列Ｙ００３を含む共通部分列として、共通部分列Ｙ０１０が検出される。分解判定部１４２は、検出した共通部分列Ｙ０１０に共通部分列Ｙ００３を適用し、残余部分列（図１３の例では「Ｒ」）を特定する。
【０１００】
分解判定部１４２は、特定した全ての残余部分列の長さｄを検出し、長さｄの最大値が２以上であるか否かを判定する。共通部分列Ｙ０１０から特定された残余部分列「Ｒ」の長さは１であり、長さｄの最大値は２以上ではない。そのため、分解判定部１４２は、共通部分列Ｙ０１０を「分解しない」と判定する。
【０１０１】
分解判定部１４２により「分解しない」と判定された場合、削除判定部１４３は、共通部分列Ｙ００３の含有数よりも、共通部分列Ｙ０１０の含有数が２以上小さいか否かを判定する。共通部分列Ｙ００３の含有数は３であり、共通部分列Ｙ０１０の含有数は２である。従って、共通部分列Ｙ００３の含有数よりも、共通部分列Ｙ０１０の含有数が２以上小さくないと判定される。この場合、削除判定部１４３は、図１４に示すように、候補リスト１０１ｂから共通部分列Ｙ０１０を削除する。
【０１０２】
次に、スコア計算部１０３は、図１４に示した更新後の候補リスト１０１ｂを参照し、採用リスト１０１ｃに記載の共通部分列Ｙ００３を適用した操作列Ｘ００１、Ｘ００２、…、Ｘ００６について共通部分列毎のスコアを計算する。つまり、スコア計算部１０３は、共通部分列Ｙ００１、Ｙ００２、Ｙ００４、…、Ｙ００９のそれぞれと、共通部分列Ｙ００３とを操作列Ｘ００１、Ｘ００２、…、Ｘ００６に適用した場合のスコアを計算する。
【０１０３】
図１５の例では、共通部分列Ｙ００１を適用した場合のスコアが０．１８２、共通部分列Ｙ００２を適用した場合のスコアが０．１３５となっている。また、共通部分列Ｙ００４を適用した場合のスコアは０．１６３、共通部分列Ｙ００５を適用した場合のスコアは０．１２６、共通部分列Ｙ００６を適用した場合のスコアは０．１１４となっている。また、共通部分列Ｙ００７を適用した場合のスコアは０．１３２、共通部分列Ｙ００８を適用した場合のスコアは０．１３０、共通部分列Ｙ００９を適用した場合のスコアは０．１３６となっている。
【０１０４】
採用決定部１４１は、前回の最大スコアＳｃＭ（ＳｃＭ＝０．１０７）と、共通部分列Ｙ００１、Ｙ００２、Ｙ００４、…、Ｙ００９のそれぞれについて計算したスコアとを比較する。図１５の例では、共通部分列Ｙ００１、Ｙ００２、Ｙ００４、…、Ｙ００９のスコアがそれぞれ最大スコアＳｃＭより大きい。そのため、採用決定部１４１は、共通部分列Ｙ００１、Ｙ００２、Ｙ００４、…、Ｙ００９を全て更新可能と判断する。
【０１０５】
また、採用決定部１４１は、更新可能と判断した共通部分列Ｙ００１、Ｙ００２、Ｙ００４、…、Ｙ００９のうち、最大のスコアを有する共通部分列（図１５の例ではＹ００１）を抽出する。そして、採用決定部１４１は、抽出した共通部分列Ｙ００１を採用リスト１０１ｃに追加し、共通部分列Ｙ００１を候補リスト１０１ｂから削除する。また、採用決定部１４１は、共通部分列Ｙ００１のスコアで最大スコアＳｃＭを更新する。
【０１０６】
また、分解判定部１４２は、採用リスト１０１ｃに追加した共通部分列Ｙ００１と、候補リスト１０１ｂに記載の共通部分列Ｙ００２、Ｙ００４、…、Ｙ００９とを比較し、共通部分列Ｙ００１を含む共通部分列を検出する。図１５の例では、共通部分列Ｙ００１を含む共通部分列として、共通部分列Ｙ００２、Ｙ００４、Ｙ００６、Ｙ００８、Ｙ００９が検出される。分解判定部１４２は、図１６に示すように、検出した共通部分列Ｙ００２、Ｙ００４、Ｙ００６、Ｙ００８、Ｙ００９にそれぞれ共通部分列Ｙ００１を適用し、残余部分列を特定する。
【０１０７】
共通部分列Ｙ００２に対して共通部分列Ｙ００１を適用した場合の残余部分列は「Ｌ」である。また、共通部分列Ｙ００４に対して共通部分列Ｙ００１を適用した場合の残余部分列は「ＸＪＵＪ」、「ＫＫ」である。共通部分列Ｙ００６に対して共通部分列Ｙ００１を適用した場合の残余部分列は「ＬＲ」である。共通部分列Ｙ００８に対して共通部分列Ｙ００１を適用した場合の残余部分列は「Ｖ」、「Ｌ」である。共通部分列Ｙ００９に対して共通部分列Ｙ００１を適用した場合の残余部分列は「ＡＡＡＡＡＡ」、「Ｌ」である。
【０１０８】
分解判定部１４２は、共通部分列Ｙ００２から特定した全ての残余部分列の長さｄを検出し、長さｄの最大値が２以上であるか否かを判定する。共通部分列Ｙ００２から特定された残余部分列「Ｌ」の長さｄは１であり、長さｄの最大値は２以上ではない。そのため、分解判定部１４２は、共通部分列Ｙ００２を「分解しない」ものと判定する。
【０１０９】
この場合、削除判定部１４３は、共通部分列Ｙ００１の含有数よりも、共通部分列Ｙ００２の含有数が２以上小さいか否かを判定する。共通部分列Ｙ００１の含有数は６であり、共通部分列Ｙ００２の含有数は４である。従って、共通部分列Ｙ００１の含有数よりも、共通部分列Ｙ００２の含有数が２以上小さいと判定される。この場合、削除判定部１４３は、候補リスト１０１ｂから共通部分列Ｙ００２を削除しない。
【０１１０】
また、分解判定部１４２は、共通部分列Ｙ００４から特定した全ての残余部分列の長さｄを検出し、長さｄの最大値が２以上であるか否かを判定する。共通部分列Ｙ００４から特定された残余部分列「ＸＪＵＪ」の長さｄは４であり、残余部分列「ＫＫ」の長さｄは２であるため、長さｄの最大値は２以上である。そのため、分解判定部１４２は、長さｄが２以上の残余部分列「ＸＪＵＪ」、「ＫＫ」を用いて共通部分列Ｙ００４を「分解する」ものと判定する。
【０１１１】
この場合、分解判定部１４２は、共通部分列Ｙ００４を候補リスト１０１ｂから削除し、残余部分列「ＸＪＵＪ」、「ＫＫ」を共通部分列として候補リスト１０１ｂに追加する（図１７の（Ａ）、（Ｂ）を参照）。以下、残余部分列「ＸＪＵＪ」を共通部分列Ｙ１００と表記し、残余部分列「ＫＫ」を共通部分列Ｙ１０１と表記する。
【０１１２】
また、分解判定部１４２は、共通部分列Ｙ００６から特定した全ての残余部分列の長さｄを検出し、長さｄの最大値が２以上であるか否かを判定する。共通部分列Ｙ００６から特定された残余部分列「ＬＲ」の長さｄは２であり、長さｄの最大値は２以上である。そのため、分解判定部１４２は、長さｄが２以上の残余部分列「ＬＲ」を用いて共通部分列Ｙ００６を「分解する」ものと判定する。
【０１１３】
この場合、分解判定部１４２は、共通部分列Ｙ００６を候補リスト１０１ｂから削除し、残余部分列「ＬＲ」を共通部分列として候補リスト１０１ｂに追加する（図１７の（Ｃ）を参照）。以下、残余部分列「ＬＲ」を共通部分列Ｙ１０２と表記する。
【０１１４】
また、分解判定部１４２は、共通部分列Ｙ００８から特定した全ての残余部分列の長さｄを検出し、長さｄの最大値が２以上であるか否かを判定する。共通部分列Ｙ００８から特定された残余部分列「Ｖ」、「Ｌ」の長さｄはいずれも１であり、長さｄの最大値は２以上ではない。そのため、分解判定部１４２は、共通部分列Ｙ００８を「分解しない」ものと判定する。
【０１１５】
この場合、削除判定部１４３は、共通部分列Ｙ００１の含有数よりも、共通部分列Ｙ００８の含有数が２以上小さいか否かを判定する。共通部分列Ｙ００１の含有数は６であり、共通部分列Ｙ００８の含有数は２である。従って、共通部分列Ｙ００１の含有数よりも、共通部分列Ｙ００８の含有数が２以上小さいと判定される。この場合、削除判定部１４３は、候補リスト１０１ｂから共通部分列Ｙ００８を削除しない。
【０１１６】
また、分解判定部１４２は、共通部分列Ｙ００９から特定した全ての残余部分列の長さｄを検出し、長さｄの最大値が２以上であるか否かを判定する。共通部分列Ｙ００９から特定された残余部分列「ＡＡＡＡＡＡ」の長さｄは６であり、残余部分列「Ｌ」の長さｄは１であるため、長さｄの最大値は２以上である。そのため、分解判定部１４２は、長さｄが２以上の残余部分列「ＡＡＡＡＡＡ」を用いて共通部分列Ｙ００９を「分解する」ものと判定する。
【０１１７】
この場合、分解判定部１４２は、共通部分列Ｙ００９を候補リスト１０１ｂから削除し、残余部分列「ＡＡＡＡＡＡ」を共通部分列として候補リスト１０１ｂに追加する（図１７の（Ｄ）を参照）。以下、残余部分列「ＡＡＡＡＡＡ」を共通部分列Ｙ１０３と表記する。図１６に示した処理を完了すると、図１７に示した候補リスト１０１ｂが得られる。
【０１１８】
次に、スコア計算部１０３は、図１７に示した更新後の候補リスト１０１ｂを参照し、採用リスト１０１ｃに記載の共通部分列Ｙ００１をさらに適用した操作列Ｘ００１、Ｘ００２、…、Ｘ００６について共通部分列毎のスコアを計算する。つまり、スコア計算部１０３は、共通部分列Ｙ００２、Ｙ００５、Ｙ００７、Ｙ００８、Ｙ１００、…、Ｙ１０３のそれぞれと、２つの共通部分列Ｙ００１、Ｙ００３とを操作列Ｘ００１、Ｘ００２、…、Ｘ００６に適用した場合のスコアを計算する。
【０１１９】
図１８の例では、共通部分列Ｙ００２を適用した場合のスコアが０．１８０、共通部分列Ｙ１００を適用した場合のスコアが０．２０２となっている。また、共通部分列Ｙ１０１を適用した場合のスコアは０．１８０、共通部分列Ｙ００５を適用した場合のスコアは０．１９１、共通部分列Ｙ１０２を適用した場合のスコアは０．１７３となっている。また、共通部分列Ｙ００７を適用した場合のスコアは０．２００、共通部分列Ｙ００８を適用した場合のスコアは０．１７０、共通部分列Ｙ１０３を適用した場合のスコアは０．１９１となっている。
【０１２０】
採用決定部１４１は、前回の最大スコアＳｃＭ（ＳｃＭ＝０．１８２）と、共通部分列Ｙ００２、Ｙ００５、Ｙ００７、Ｙ００８、Ｙ１００、…、Ｙ１０３のそれぞれについて計算したスコアとを比較する。図１８の例では、共通部分列Ｙ１００、Ｙ００５、Ｙ００７、Ｙ１０３のスコアがそれぞれ最大スコアＳｃＭより大きい。一方、共通部分列Ｙ００２、Ｙ１０１、Ｙ１０２、Ｙ００８のスコアがそれぞれ最大スコアＳｃＭより小さい。そのため、採用決定部１４１は、共通部分列Ｙ１００、Ｙ００５、Ｙ００７、Ｙ１０３を更新可能と判断し、共通部分列Ｙ００２、Ｙ１０１、Ｙ１０２、Ｙ００８を更新不可（図中では「ＮＧ」）と判断する。
【０１２１】
また、採用決定部１４１は、更新可能と判断した共通部分列Ｙ１００、Ｙ００５、Ｙ００７、Ｙ１０３のうち、最大のスコアを有する共通部分列（図１８の例ではＹ１００）を抽出する。そして、採用決定部１４１は、抽出した共通部分列Ｙ１００を採用リスト１０１ｃに追加し、共通部分列Ｙ１００を候補リスト１０１ｂから削除する。また、採用決定部１４１は、共通部分列Ｙ１００のスコアで最大スコアＳｃＭを更新する。
【０１２２】
その後、図１６に示した処理と同様に分解判定が行われ、図１７に示した処理と同様に候補リスト１０１ｂの更新が行われる。さらに、スコアの計算、採用、分解判定、候補リスト１０１ｂの更新が繰り返し実行され、候補リスト１０１ｂに記載の共通部分列全てについて採用決定部１４１により更新不可と判断された場合、部分列出力部１０５により採用リスト１０１ｃの内容が出力される。
【０１２３】
上記のように、採用部分列を含む共通部分列を分解し、採用可能性のある残余部分列を再利用することで、共通部分列が無駄なく利用され、より好適な採用部分列の組み合わせが得られる。
【０１２４】
以上、情報処理装置１００の機能について説明した。
［２−４．処理の流れ］
次に、図１９〜図２１を参照しながら、情報処理装置１００が実行する処理の流れについて説明する。
【０１２５】
なお、図１９は、第２実施形態に係る情報処理装置が実行する処理の流れを示した第１のフロー図である。また、図２０は、第２実施形態に係る情報処理装置が実行する処理の流れを示した第２のフロー図である。また、図２１は、第２実施形態に係る情報処理装置が実行する処理の流れを示した第３のフロー図である。
【０１２６】
図１９に示すように、情報処理装置１００は、部分列抽出部１０２の機能により、操作列リスト１０１ａに記載の操作列から２つ以上の記号を含む共通部分列を抽出する（Ｓ１０１）。次いで、情報処理装置１００は、部分列抽出部１０２の機能により、Ｓ１０１で抽出した共通部分列を候補リスト１０１ｂに追加する（Ｓ１０２）。また、情報処理装置１００は、最大スコアＳｃＭを初期化（０に設定）する（Ｓ１０３）。
【０１２７】
次いで、情報処理装置１００は、スコア計算部１０３の機能により、候補リスト１０１ｂから共通部分列Ｙ１を取得する（Ｓ１０４）。次いで、情報処理装置１００は、スコア計算部１０３の機能により、共通部分列Ｙ１を適用可能な操作列Ｘが操作列リスト１０１ａにあるか否かを判定する（Ｓ１０５）。共通部分列Ｙ１を適用可能な操作列Ｘが操作列リスト１０１ａにある場合、処理はＳ１０７へと進む。一方、共通部分列Ｙ１を適用可能な操作列Ｘが操作列リスト１０１ａにない場合、処理はＳ１０６へと進む。
【０１２８】
処理がＳ１０６へと進んだ場合、情報処理装置１００は、スコア計算部１０３の機能により、共通部分列Ｙ１を候補リスト１０１ｂから削除する（Ｓ１０６）。Ｓ１０６の処理が完了すると、処理はＳ１１０へと進む。処理がＳ１０７へと進んだ場合、情報処理装置１００は、スコア計算部１０３の機能により、共通部分列Ｙ１を適用可能な操作列Ｘの情報をもとに候補リスト１０１ｂの中で共通部分列Ｙ１を含む操作列Ｘの情報を更新する（Ｓ１０７）。さらに、Ｓ１０７の処理において、情報処理装置１００は、スコア計算部１０３の機能により、共通部分列Ｙ１を操作列リスト１０１ａに記載の操作列に適用した場合のスコアを計算する。
【０１２９】
次いで、情報処理装置１００は、採用決定部１４１の機能により、Ｓ１０７で計算したスコアが最大スコアＳｃＭより大きいか否かを判定する。Ｓ１０７で計算したスコアが最大スコアＳｃＭより大きい場合、処理はＳ１０９へと進む。一方、Ｓ１０７で計算したスコアが最大スコアＳｃＭより大きくない場合、処理はＳ１１０へと進む。
【０１３０】
処理がＳ１０９へと進んだ場合、情報処理装置１００は、採用決定部１４１の機能により、採用部分列として共通部分列Ｙ１を採用リスト１０１ｃに追加する（Ｓ１０９）。Ｓ１０９の処理が完了すると、処理はＳ１１０へと進む。
【０１３１】
処理がＳ１１０へと進んだ場合、情報処理装置１００は、候補リスト１０１ｂに記載された共通部分列を全て取得したか否かを判定する（Ｓ１１０）。候補リスト１０１ｂに記載された共通部分列を全て取得した場合、処理は図２０のＳ１１１へと進む。一方、候補リスト１０１ｂに記載された共通部分列の全てを取得し終えていない場合、処理はＳ１０４へと進む。
【０１３２】
図２０のＳ１１１へと処理が進んだ場合、情報処理装置１００は、採用リスト１０１ｃに採用部分列の記載があるか否かを判定する（Ｓ１１１）。採用リスト１０１ｃに採用部分列の記載がある場合、処理はＳ１１２へと進む。一方、採用リスト１０１ｃに採用部分列の記載がない場合、図１９〜図２１に示した一連の処理は終了する。
【０１３３】
処理がＳ１１２へと進んだ場合、情報処理装置１００は、採用決定部１４１の機能により、採用部分列として採用リスト１０１ｃに記載の共通部分列Ｙ２を操作列リスト１０１ａに記載の操作列に適用する（Ｓ１１２）。次いで、情報処理装置１００は、採用決定部１４１の機能により、Ｓ１１２で操作列に適用した共通部分列Ｙ２を候補リスト１０１ｂから削除する（Ｓ１１３）。
【０１３４】
次いで、情報処理装置１００は、候補リスト１０１ｂに共通部分列の記載があるか否かを判定する（Ｓ１１４）。候補リスト１０１ｂに共通部分列の記載がある場合、処理は図２１のＳ１１５へと進む。一方、候補リスト１０１ｂに共通部分列の記載がない場合、図１９〜図２１に示した一連の処理は終了する。
【０１３５】
図２１のＳ１１５へと処理が進んだ場合、情報処理装置１００は、分解判定部１４２の機能により、候補リスト１０１ｂから１つの共通部分列Ｙ３を取得する（Ｓ１１５）。
次いで、情報処理装置１００は、分解判定部１４２の機能により、Ｓ１１５で取得した共通部分列Ｙ３が、Ｓ１１２で操作列に適用した共通部分列Ｙ２を含むか否かを判定する（Ｓ１１６）。共通部分列Ｙ３が共通部分列Ｙ２を含む場合、処理はＳ１１７へと進む。一方、共通部分列Ｙ３が共通部分列Ｙ２を含まない場合、処理はＳ１２３へと進む。
【０１３６】
処理がＳ１１７へと進んだ場合、情報処理装置１００は、分解判定部１４２の機能により、共通部分列Ｙ３に共通部分列Ｙ２を適用する（Ｓ１１７）。
次いで、情報処理装置１００は、分解判定部１４２の機能により、共通部分列Ｙ３のうち共通部分列Ｙ２以外の部分（残余部分列）Ｙ４が長さ２以上であるか否かを判定する（Ｓ１１８）。残余部分列Ｙ４の全てが長さ２以上でない場合、処理はＳ１１９へと進む。一方、少なくとも１つの残余部分列Ｙ４が長さ２以上である場合、処理はＳ１２０へと進む。
【０１３７】
処理がＳ１１９へと進んだ場合、情報処理装置１００は、削除判定部１４３の機能により、共通部分列Ｙ３の含有数が、共通部分列Ｙ２の含有数より２以上少ないか否かを判定する（Ｓ１１９）。共通部分列Ｙ３の含有数が、共通部分列Ｙ２の含有数より２以上少ない場合、処理はＳ１２３へと進む。一方、共通部分列Ｙ３の含有数が、共通部分列Ｙ２の含有数より２以上少なくない場合、処理はＳ１２２へと進む。
【０１３８】
処理がＳ１２０へと進んだ場合、情報処理装置１００は、分解判定部１４２の機能により、残余部分列Ｙ４と同じ共通部分列が候補リスト１０１ｂにあるか否かを判定する（Ｓ１２０）。残余部分列Ｙ４と同じ共通部分列が候補リスト１０１ｂにある場合、処理はＳ１２２へと進む。一方、残余部分列Ｙ４と同じ共通部分列が候補リスト１０１ｂにない場合、処理はＳ１２１へと進む。
【０１３９】
処理がＳ１２１へと進んだ場合、情報処理装置１００は、分解判定部１４２の機能により、残余部分列Ｙ４を共通部分列として候補リスト１０１ｂに追加する（Ｓ１２１）。Ｓ１２１の処理が完了すると、処理はＳ１２２へと進む。
【０１４０】
処理がＳ１２２へと進んだ場合、情報処理装置１００は、削除判定部１４３の機能により、共通部分列Ｙ３を候補リスト１０１ｂから削除する（Ｓ１２２）。Ｓ１２２の処理が完了すると、処理はＳ１２３へと進む。
【０１４１】
処理がＳ１２３へと進んだ場合、情報処理装置１００は、候補リスト１０１ｂに記載の共通部分列を全て取得したか否かを判定する（Ｓ１２３）。候補リスト１０１ｂに記載の共通部分列を全て取得した場合、処理は図１９のＳ１０４へと進む。一方、候補リスト１０１ｂに記載の共通部分列を全て取得し終えていない場合、処理はＳ１１５へと進む。
【０１４２】
以上、情報処理装置１００が実行する処理の流れについて説明した。
以上説明したように、情報処理装置１００は、共通性及び分割性のバランスを評価するスコアに基づいて操作列の分割に好適な採用部分列を決定する。そのため、共通性及び分割性を考慮した採用部分列の決定が実現される。また、情報処理装置１００は、長さ２以上の共通記号列を用いて採用部分列を決定する。そのため、採用部分列の決定に係る処理負荷が低減され、処理の高速化が実現される。
【０１４３】
また、情報処理装置１００は、長さが２以上の残余部分列を共通部分列として利用する。つまり、情報処理装置１００は、採用部分列を含む共通部分列を分解し、採用可能性のある残余部分列を再利用する。そのため、操作列から直接的に抽出された共通部分列が無駄なく利用され、スコアの向上に寄与する。つまり、第２実施形態に係る技術を適用することで、より好適な採用部分列の組み合わせが得られる。
【０１４４】
以上、第２実施形態について説明した。
＜３．付記＞
以上説明した実施形態に関し、さらに以下の付記を開示する。
【０１４５】
（付記１）  １つ以上の記号を有する複数の第１記号列の情報と、２つ以上の前記第１記号列に共通して含まれる連続した２つ以上の記号を有する第２記号列の情報とが格納された記憶部から、前記第１記号列及び前記第２記号列の情報を取得可能なコンピュータが、
前記複数の第１記号列を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む前記第１記号列の数が大きく、かつ、前記複数の第１記号列に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、前記分割記号列として利用する前記第２記号列の組み合わせを決定する
分割記号列の決定方法。
【０１４６】
（付記２）  前記記憶部には、前記分割記号列の候補となる前記第２記号列を記載したリスト情報が格納されており、
前記コンピュータが、
前記リスト情報に記載されている前記第２記号列の中から、前記評価が最も高い前記第２記号列を前記分割記号列として選択し、選択した前記第２記号列を含む他の前記第２記号列を特定し、特定した他の前記第２記号列から、選択した前記第２記号列を除いた部分の記号列が連続した２つ以上の記号を含む場合、当該記号列を前記リスト情報に追加し、選択した前記第２記号列を前記リスト情報から消去する
付記１に記載の分割記号列の決定方法。
【０１４７】
（付記３）  前記コンピュータが、
選択した前記第２記号列を含む前記第１記号列の数を示す第１含有数と、特定した他の前記第２記号列を含む前記第１記号列の数を示す第２含有数との差が、設定した数より小さい場合に、特定した他の前記第２記号列を前記リスト情報から消去する
付記２に記載の分割記号列の決定方法。
【０１４８】
（付記４）  前記コンピュータが、
前記評価が最も高い前記第２記号列を選択した場合に当該評価の情報を前記記憶部に格納しておき、前記リスト情報に記載されている全ての前記第２記号列に対する評価が、前記評価の情報が示す評価よりも低い場合、既に選択した前記第２記号列の組み合わせを前記分割記号列に決定する
付記２又は３に記載の分割記号列の決定方法。
【０１４９】
（付記５）  １つ以上の記号を有する複数の第１記号列の情報と、２つ以上の前記第１記号列に共通して含まれる連続した２つ以上の記号を有する第２記号列の情報とが格納された記憶部と、
前記複数の第１記号列を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む前記第１記号列の数が大きく、かつ、前記複数の第１記号列に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、前記分割記号列として利用する前記第２記号列の組み合わせを決定する演算部と
を有する、情報処理装置。
【０１５０】
（付記６）  １つ以上の記号を有する複数の第１記号列の情報と、２つ以上の前記第１記号列に共通して含まれる連続した２つ以上の記号を有する第２記号列の情報とが格納された記憶部から、前記第１記号列及び前記第２記号列の情報を取得可能なコンピュータに、
前記複数の第１記号列を複数の分割記号列に分割する場合に、同じ分割記号列を共通して含む前記第１記号列の数が大きく、かつ、前記複数の第１記号列に含まれる分割記号列の数が小さくなるほど高い評価となる評価指標に基づいて、前記分割記号列として利用する前記第２記号列の組み合わせを決定する
処理を実行させる、プログラム。
【０１５１】
（付記７）  前記記憶部には、前記分割記号列の候補となる前記第２記号列を記載したリスト情報が格納されており、
前記演算部は、前記リスト情報に記載されている前記第２記号列の中から、前記評価が最も高い前記第２記号列を前記分割記号列として選択し、選択した前記第２記号列を含む他の前記第２記号列を特定し、特定した他の前記第２記号列から、選択した前記第２記号列を除いた部分の記号列が連続した２つ以上の記号を含む場合、当該記号列を前記リスト情報に追加し、選択した前記第２記号列を前記リスト情報から消去する
付記５に記載の情報処理装置。
【０１５２】
（付記８）  前記演算部は、選択した前記第２記号列を含む前記第１記号列の数を示す第１含有数と、特定した他の前記第２記号列を含む前記第１記号列の数を示す第２含有数との差が、設定した数より小さい場合に、特定した他の前記第２記号列を前記リスト情報から消去する
付記７に記載の情報処理装置。
【０１５３】
（付記９）  前記演算部は、前記評価が最も高い前記第２記号列を選択した場合に当該評価の情報を前記記憶部に格納しておき、前記リスト情報に記載されている全ての前記第２記号列に対する評価が、前記評価の情報が示す評価よりも低い場合、既に選択した前記第２記号列の組み合わせを前記分割記号列に決定する
付記７又は８に記載の情報処理装置。
【０１５４】
（付記１０）  付記６に記載のプログラムが格納された、コンピュータにより読み取り可能な記録媒体。
【符号の説明】
【０１５５】
１０  情報処理装置
１１  記憶部
１２  演算部
Ｃ１、Ｃ１１、Ｃ１２、Ｃ１３  第１記号列
Ｃ２、Ｃ２１、Ｃ２２、Ｃ２３、Ｃ２４、Ｃ２５  第２記号列
Ｓｃ１、Ｓｃ２、Ｓｃ３  スコア
【図１】
2015166992.tif 000006
【図２】
2015166992.tif 000007
【図３】
2015166992.tif 000008
【図４】
2015166992.tif 000009
【図５】
2015166992.tif 000010
【図６】
2015166992.tif 000011
【図７】
2015166992.tif 000012
【図８】
2015166992.tif 000013
【図９】
2015166992.tif 000014
【図１０】
2015166992.tif 000015
【図１１】
2015166992.tif 000016
【図１２】
2015166992.tif 000017
【図１３】
2015166992.tif 000018
【図１４】
2015166992.tif 000019
【図１５】
2015166992.tif 000020
【図１６】
2015166992.tif 000021
【図１７】
2015166992.tif 000022
【図１８】
2015166992.tif 000023
【図１９】
2015166992.tif 000024
【図２０】
2015166992.tif 000025
【図２１】
2015166992.tif 000026