(57)【要約】【課題】自然言語で配布されるセキュリティインテリジェンスを効率的に構造化する。【解決手段】構造化支援システムであって、所定の処理を実行する演算装置と、前記演算装置と接続された記憶装置とを備え、前記演算装置が、自然言語で記述された情報を取得する収集部と、前記演算装置が、前記取得された情報に含まれる単語が関連すると推定されるラベル及び当該ラベルの信頼度を付与するラベル付与部と、前記演算装置が、前記付与されたラベル及びその信頼度に基づいて、ユーザに提示する画面のデータを生成する画面生成部と、を有する。【選択図】図１
2019197389.tif 000002
【特許請求の範囲】
【請求項１】
構造化支援システムであって、
所定の処理を実行する演算装置と、前記演算装置と接続された記憶装置とを備え、
前記演算装置が、自然言語で記述された情報を取得する収集部と、
前記演算装置が、前記取得された情報に含まれる単語が関連すると推定されるラベル及び当該ラベルの信頼度を付与するラベル付与部と、
前記演算装置が、前記付与されたラベル及びその信頼度に基づいて、ユーザに提示する画面のデータを生成する画面生成部と、を有することを特徴とする構造化支援システム。
【請求項２】
請求項１に記載の構造化支援システムであって、
前記画面生成部は、当該単語が既知のラベルのいずれにも関連しない信頼度が、当該単語が既知のラベルに関連する信頼度より大きい場合、当該単語に関連すると推定されるラベルを検証するための画面のデータを生成することを特徴とする構造化支援システム。
【請求項３】
請求項２に記載の構造化支援システムであって、
前記画面生成部は、当該単語が既知のラベルのいずれにも関連しない信頼度が、当該単語が既知のラベルに関連する信頼度より大きい場合であって、当該単語に関連する既知のラベルの信頼度が所定の閾値以上であるとき、当該単語に関連すると推定されるラベルを検証するための画面のデータを生成することを特徴とする構造化支援システム。
【請求項４】
請求項１に記載の構造化支援システムであって、
前記画面生成部は、前記単語に関連するラベルの信頼度が所定の閾値より小さい場合、当該単語に関連すると推定されるラベルを検証するための画面のデータを生成することを特徴とする構造化支援システム。
【請求項５】
所定の処理を実行する演算装置と、前記演算装置と接続された記憶装置とを有する構造化支援システムが実行する構造化支援方法であって、
前記演算装置が、自然言語で記述された情報を取得する収集手順と、
前記演算装置が、前記取得された情報に含まれる単語が関連すると推定されるラベル及び当該ラベルの信頼度を付与するラベル付与手順と、
前記演算装置が、前記付与されたラベル及びその信頼度に基づいて、ユーザに提示する画面のデータを生成する画面生成手順と、を含むことを特徴とする構造化支援方法。
【請求項６】
請求項５に記載の構造化支援方法であって、
前記画面生成手順では、前記演算装置は、当該単語が既知のラベルのいずれにも関連しない信頼度が、当該単語が既知のラベルに関連する信頼度より大きい場合、当該単語に関連すると推定されるラベルを検証するための画面のデータを生成することを特徴とする構造化支援方法。
【請求項７】
請求項６に記載の構造化支援方法であって、
前記画面生成手順では、前記演算装置は、当該単語が既知のラベルのいずれにも関連しない信頼度が、当該単語が既知のラベルに関連する信頼度より大きい場合であって、当該単語に関連する既知のラベルの信頼度が所定の閾値以上であるとき、当該単語に関連すると推定されるラベルを検証するための画面のデータを生成することを特徴とする構造化支援方法。
【請求項８】
請求項５に記載の構造化支援方法であって、
前記画面生成手順では、前記演算装置は、前記単語に関連するラベルの信頼度が所定の閾値より小さい場合、当該単語に関連すると推定されるラベルを検証するための画面のデータを生成することを特徴とする構造化支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然言語データを構造化する構造化支援システムに関する。
【背景技術】
【０００２】
年々サイバー攻撃が高度化・増加しており、企業や国家にとって重大な脅威となっている。一方で、人材不足が顕在化していることから、セキュリティ監視業務を担うＳＯＣ（Security Operation Center）における業務の効率化及び自動化が求められている。ＳＯＣ業務の自動化には、構造化されたインテリジェンスが必要となることから、自然言語で配布されるセキュリティインテリジェンスを専門家が分析し、人手で構造化していた。
【０００３】
本技術分野の背景技術として、以下の先行技術がある。特許文献１（特開２０１５−１３８３４３号公報）には、複数の医療文書を取得する取得手段と、取得された複数の医療文書を構造化する構造化手段と、医療知識情報に基づいて、構造化された複数の医療文書の類似度を取得する類似度取得手段と、取得された類似度に基づいて新規医療文書のひな形を生成する生成手段とを有する情報処理装置が記載されている。
【０００４】
また、非特許文献１には、機械学習を用いて、サイバーセキュリティに関する文書を構造化する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１３８３４３号公報
【非特許文献】
【０００６】
【非特許文献１】Amav Joshi, et. al., "Extracting Cybersecurity Related Linked Data from Text", Semantic Computing (ICSC), 2013 IEEE Seventh International Conference on, 16 Septmber, 2013
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載された技術では、辞書やルールマッチングによって自然言語を構造化するものの、予め辞書やルールを定義しなければならず、この定義のためのコストが大きく、ルールにない未知の単語や表現の構造化は困難である。また、非特許文献１に記載された技術のように、ルールの作成が不要で、かつ新しい表現を認識できる方法が開発されているものの、大量の教師データ（コーパス）が必要となり、作成コストが大きいという課題がある。さらに、セキュリティ分野では、新しい単語（未知語）が生まれやすく、このような未知語への対応が必要である。
【０００８】
このため、自然言語で配布されるセキュリティインテリジェンスの効率的な構造化が求められている。
【課題を解決するための手段】
【０００９】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、構造化支援システムであって、所定の処理を実行する演算装置と、前記演算装置と接続された記憶装置とを備え、前記演算装置が、自然言語で記述された情報を取得する収集部と、前記演算装置が、前記取得された情報に含まれる単語が関連すると推定されるラベル及び当該ラベルの信頼度を付与するラベル付与部と、前記演算装置が、前記付与されたラベル及びその信頼度に基づいて、ユーザに提示する画面のデータを生成する画面生成部と、を有する。
【発明の効果】
【００１０】
本発明の一態様によれば、ユーザが注意すべき語を的確に提案できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】セキュリティインテリジェンス構造化支援システムの構成を示す図である。
【図２】セキュリティインテリジェンス構造化支援システムの動作を示すシーケンス図である。
【図３】インテリジェンス収集先一覧の構成例を示す図である。
【図４】インテリジェンス一覧の構成例を示す図である。
【図５】アノテーション結果一時保存領域の構成例を示す図である。
【図６】アノテーション結果保存領域の構成例を示す図である。
【図７】セキュリティインテリジェンス構造化支援システムの全体の処理のフローチャートである。
【図８】インテリジェンス収集処理のフローチャートである。
【図９】ラベル付与処理のフローチャートである。
【図１０】アノテーション実施判定処理のフローチャートである。
【図１１】見落とし語拾得処理のフローチャートである。
【図１２】画面生成処理のフローチャートである。
【図１３】アノテーション結果表示画面の例を示す図である。
【図１４】アノテーション制御処理のフローチャートである。
【図１５】アノテーション結果反映処理のフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、本発明の実施例のセキュリティインテリジェンス構造化支援システム１の構成を示す図である。
【００１３】
セキュリティインテリジェンス構造化支援システム１は、プロセッサ（ＣＰＵ）１１、メインメモリ１２、記憶装置１３及び通信インターフェース１４、１５を有する計算機によって構成される。セキュリティインテリジェンス構造化支援システム１には、ネットワーク１９を介してユーザ端末２が接続される。また、セキュリティインテリジェンス構造化支援システム１には入出力装置１６が接続されてもよい。
【００１４】
プロセッサ１１は、メインメモリ１２に格納されたプログラムを実行する演算装置である。具体的には、プロセッサ１１が、各種プログラム２１〜２７を実行することによって、セキュリティインテリジェンス構造化支援システム１の各種機能が実現される。なお、プロセッサ１１がプログラムを実行して行う処理の一部を、他の演算装置（例えば、ＦＰＧＡ）で実行してもよい。
【００１５】
メインメモリ１２は、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶素子であり、プロセッサ１１が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００１６】
記憶装置１３は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶装置である。記憶装置１３は、プロセッサ１１がプログラムの実行時に使用するデータ（例えば、インテリジェンス収集先一覧３１、インテリジェンス一覧３２、アノテーション結果一時保存領域３３、アノテーション結果保存領域３４）、及びプロセッサ１１が実行するプログラムを格納する。すなわち、プログラムは、記憶装置１３から読み出されて、メインメモリ１２にロードされて、プロセッサ１１によって実行される。
【００１７】
具体的には、インテリジェンス収集先一覧３１は、インテリジェンス収集プログラム２１がインテリジェンスを収集するための情報を格納する。インテリジェンス収集先一覧３１の詳細は、図３を参照して後述する。インテリジェンス一覧３２は、インテリジェンス収集プログラム２１が収集したインテリジェンスの情報を格納する。インテリジェンス一覧３２の詳細は、図４を参照して後述する。アノテーション結果一時保存領域３３は、ラベル付与プログラム２２、アノテーション実施判定プログラム２３、見落とし語拾得プログラム２４及びアノテーション制御プログラム２６によるインテリジェンスのアノテーション処理の途中経過を一時的に格納する。アノテーション結果一時保存領域３３の詳細は、図５を参照して後述する。アノテーション結果保存領域３４は、インテリジェンスのアノテーション処理の結果を格納する。アノテーション結果保存領域３４の詳細は、図６を参照して後述する。
【００１８】
通信インターフェース１４、１５は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。具体的には、通信インターフェース１４は、ネットワーク１９を介してユーザ端末２と接続する。通信インターフェース１５は、ネットワーク１７を介してインターネット１８と接続する。図１には、二つの通信インターフェース１４、１５を図示したが、一つの通信インターフェースがネットワーク１７及び１９と接続してもよい。
【００１９】
入出力装置１６は、ユーザからの入力を受ける入力装置（キーボード、マウスなど）、及びプログラムの実行結果をユーザが視認可能な形式で出力する出力装置（ディスプレイ装置、プリンタなど）によって構成される。なお、セキュリティインテリジェンス構造化支援システム１にネットワークを介して接続された端末（例えば、ユーザ端末２）が入出力装置１６を提供してもよい。
【００２０】
プロセッサ１１が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介してセキュリティインテリジェンス構造化支援システム１に提供され、非一時的記憶媒体である不揮発性の記憶装置１３に格納される。このため、セキュリティインテリジェンス構造化支援システム１は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００２１】
セキュリティインテリジェンス構造化支援システム１は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【００２２】
図２は、セキュリティインテリジェンス構造化支援システム１の動作を示すシーケンス図である。
【００２３】
まず、インテリジェンス収集プログラム２１がインテリジェンス収集先一覧３１に規定されたタイミングで起動し、インテリジェンスを収集する（Ｓ１０１）。具体的には、インテリジェンス収集プログラム２１がインテリジェンスの収集先であるオープンインテリジェンスにアクセスして、インテリジェンスを要求し（Ｓ１０２）、オープンインテリジェンスからインテリジェンスを取得する（Ｓ１０３）。
【００２４】
本実施例において、インテリジェンスとは、セキュリティに関する有益な情報である。本実施例のセキュリティインテリジェンス構造化支援システムが収集するインテリジェンスは、情報が構造化されておらず、かつ、未知の語が含まれていてもよい。
【００２５】
インテリジェンスの収集先であるオープンインテリジェンスは、セキュリティ情報を提供しているＩＰＡやＪＰＣＥＲＴ等の機関のウェブサイトや、セキュリティ情報を提供している会社のウェブサイトや、セキュリティ情報を掲載しているブログやＳＮＳなどである。
【００２６】
次に、ラベル付与プログラム２２が、収集したインテリジェンスから単語を抽出し、抽出された単語のラベルを推定し、当該ラベルの信頼度を計算して、アノテーション結果一時保存領域３３に記録するラベル付与処理を実行する（Ｓ１０４）。
【００２７】
その後、アノテーション実施判定プログラム２３が、信頼度に従って各単語に付されたラベルをランク付けをして、アノテーション結果一時保存領域３３に記録するアノテーション実施判定処理を実行する（Ｓ１０５）。
【００２８】
さらに、見落とし語拾得プログラム２４が、第一候補が固有表現でないと判定された単語について、第二候補のラベルが固有表現であるかを人手で検証するように設定して、アノテーション結果一時保存領域３３に記録する見落とし語拾得処理を実行する（Ｓ１０６）。
【００２９】
次に、画面生成プログラム２５が、各単語のラベルを人手で検証するためのアノテーション結果表示画面２００を生成する画面生成処理を実行する（Ｓ１０７）。
【００３０】
その後、アノテーション制御プログラム２６が、アノテーション結果表示画面２００を用いた各単語のラベルの人手による検証を制御するアノテーション制御処理を実行し（Ｓ１０８）、人手によるラベルの検証結果を受け取るアノテーション実施処理を実行する（Ｓ１０９）。
【００３１】
さらに、アノテーション結果反映プログラム２７が、アノテーション結果をアノテーション結果保存領域３４に保存するアノテーション結果反映処理を実行する（Ｓ１１０）。
【００３２】
画面生成プログラム２５は、ユーザ端末Ａ２にアノテーション結果表示画面（図１３の２００）を表示するためのデータを送信した後、ユーザ端末Ａ２からの指示によって、ユーザ端末Ｂ２にアノテーション結果表示画面２００を表示するためのデータを送信してもよい。これによって、当該インテリジェンスを処理する権限がユーザ端末Ａ２からユーザ端末Ｂ２に移る。この権限の移行は、一般のオペレータで処理が困難なインテリジェンスの処理をエキスパートに依頼する場合に利用するとよい。また、収集したインテリジェンスの内容によって、セキュリティインテリジェンス構造化支援システム１が、当該インテリジェンスを処理するユーザ端末２を決定して、ユーザ端末Ａ２からユーザ端末Ｂ２に権限を移行してもよい。
【００３３】
そして、前述したステップＳ１０７〜Ｓ１１０と同様に、ステップＳ１１１〜Ｓ１１４を実行して、各単語のラベルを人手で検証するためのアノテーション結果表示画面２００をユーザ端末Ｂ２に送り、人手によるアノテーション結果をアノテーション結果保存領域３４に保存する。
【００３４】
図３は、インテリジェンス収集先一覧３１の構成例を示す図である。
【００３５】
インテリジェンス収集先一覧３１は、インテリジェンスを収集するための情報（収集先、収集タイミング）を格納しており、ＩＤ３１１、ＵＲＬ３１２及び収集周期３１３を含む。ＩＤ３１１は、インテリジェンス収集先一覧３１においてインテリジェンス収集先を一意に識別するための識別情報である。ＵＲＬ３１２は、インテリジェンスを収集するアドレスである。収集周期３１３は、インテリジェンスを収集する時間間隔であり、収集周期３１３に規定されたタイミングでインテリジェンス収集プログラム２１が起動する。
【００３６】
図４は、インテリジェンス一覧３２の構成例を示す図である。
【００３７】
インテリジェンス一覧３２は、収集したインテリジェンスの状態を格納しており、ＩＤ３２１、ＵＲＬ３２２及びステータス３２３を含む。ＩＤ３２１は、インテリジェンス一覧３２において収集したインテリジェンスを一意に識別するための識別情報である。ＵＲＬ３２２は、インテリジェンスの収集先のアドレスである。
【００３８】
ステータス３２３は、収集したアノテーションの処理状況を表す。例えば、「アノテーション済（手動）」は、ユーザ端末２によってオペレータがアノテーションを完了していることを示し、「アノテーション済（自動）」は、セキュリティインテリジェンス構造化支援システム１が自動的に実行したアノテーションが完了していることを示す。「未アノテーション」は、アノテーションが実施されていない状態を示す。また、「手動アノテーション待ち」は、セキュリティインテリジェンス構造化支援システム１による自動的なアノテーションによって、手動のアノテーションが必要であると判定され、ユーザ端末２による手動のアノテーションが完了していない状態である。すなわち、アノテーション実施判定プログラム２３や見落とし語拾得プログラム２４によって固有表現性３３６が「固有表現の可能性有」又は「低」であると判定されて、ユーザ端末２を用いた手動のアノテーションが行われていない状態である。
【００３９】
図５は、アノテーション結果一時保存領域３３の構成例を示す図である。
【００４０】
アノテーション結果一時保存領域３３は、収集したインテリジェンスのアノテーション結果を一時的に格納しており、ＩＤ３３１、ＵＲＬ３３２、単語３３３、第一候補３３４、第二候補３３５、固有表現性３３６及びユーザ選択内容３３７を含む。
【００４１】
ＩＤ３３１は、アノテーション処理が行われているインテリジェンスを一意に識別するための識別情報である。ＵＲＬ３３２は、インテリジェンスの収集先のアドレスである。単語３３３は、インテリジェンスから抽出された単語である。
【００４２】
第一候補３３４及び第二候補３３５は、単語３３３に記録された単語について、アノテーションによって推定されるラベルの候補であり、各ラベルの候補には信頼度が付加されている。その信頼度が最も高いラベルが第一候補３３４であり、信頼度が次に高いラベルが第二候補３３５である。ラベルは、各単語の属性、すなわち各単語が持っている意味である。本実施例では、例えば、マルウェアの名前（Malware Name）、攻撃方法（Attack Method）など、セキュリティに関する用語の種類をラベルに使用する。なお、アノテーションの結果、固有表現ではない（すなわち、本実施例ではセキュリティ情報として構造化するための意味を持たない）と判定された場合（Not Named Entity）も、一つのラベルとして取り扱うとよい。
【００４３】
固有表現性３３６は、当該単語の第一候補のラベルの確からしさをランク付けしたものであり、後述するアノテーション実施判定プログラム２３や見落とし語拾得プログラム２４によって判定される。例えば、ラベルの信頼度と所定の閾値とを比較した結果に基づいて、信頼度を「高」又は「低」にランク付けする。また、第一候補のラベルが固有表現ではなく、第二候補のラベルの信頼度が所定の閾値以上である場合、当該語の固有表現性を「固有表現の可能性有」に設定する。
【００４４】
例えば、図５に示す、アノテーション結果一時保存領域３３では、１行目に記録された単語「Hoge」は、５０％の信頼度で固有表現ではない（Not Named Entity）と推定され、４０％の信頼度でマルウェアの名前であると推定されている。この場合、第一候補のラベルが固有表現ではなく、第二候補のラベルの信頼度が所定の閾値以上であるため、当該語の固有表現性に「固有表現の可能性有」が記録されている。また、６行目に記録された単語「DoS」は、３５％の信頼度で攻撃方法であると推定され、３２％の信頼度で脆弱性であると推定されている。この場合、第一候補のラベルの信頼度が所定の閾値より小さいので、当該語の固有表現性に「低」が記録されている。いずれの場合も、第二候補のラベルが正しい可能性があるので、手動によりラベルを検証する。
【００４５】
図６は、アノテーション結果保存領域３４の構成例を示す図である。
【００４６】
アノテーション結果保存領域３４は、収集したインテリジェンスのアノテーションの最終的な結果を格納しており、ＩＤ３４１、ＵＲＬ３４２、単語３４３及び正解ラベル３４４を含む。
【００４７】
ＩＤ３４１は、アノテーション処理が行われているインテリジェンスを一意に識別するための識別情報である。ＵＲＬ３４２は、インテリジェンスの収集先のアドレスである。単語３４３は、インテリジェンスから抽出された単語である。正解ラベル３４４は、単語３４３に記録された単語について、アノテーションによって決定されたラベルである。なお、アノテーションの結果、固有表現ではない場合（Not Named Entity）と判定されたラベルが付与される場合もある。
【００４８】
図７は、セキュリティインテリジェンス構造化支援システム１の全体の処理のフローチャートである。
【００４９】
インテリジェンス収集先一覧３１の収集周期３１３に規定されたタイミングでインテリジェンス収集プログラム２１が起動して、処理を開始する。すなわち、プロセッサ１１はインテリジェンス収集プログラム２１を起動し、インテリジェンス収集先一覧３１に規定された収集先からインテリジェンスを取得するインテリジェンス収集処理を実行する（Ｓ１２１）。インテリジェンス収集処理は、図８を参照して後述する。
【００５０】
そして、収集したインテリジェンスが新しいインテリジェンスであるかを判定する（Ｓ１２２）。具体的には、インテリジェンス一覧３２を参照して、収集したインテリジェンスがインテリジェンス一覧３２に格納されていなければ、新しいインテリジェンスであると判定できる。また、収集したインテリジェンスがアノテーション結果一時保存領域３３及びアノテーション結果保存領域３４のいずれにも格納されていなければ、新しいインテリジェンスであると判定してもよい。
【００５１】
その結果、収集したインテリジェンスに新しいインテリジェンスが含まれていなければ、処理を終了する。一方、収集したインテリジェンスが新しいインテリジェンスであれば、プロセッサ１１はラベル付与プログラム２２を起動し、収集したインテリジェンスから抽出された単語のラベルを推定し、信頼度と共にアノテーション結果一時保存領域３３に記録するラベル付与処理（Ｓ１２３）を実行する。ラベル付与処理は、図９を参照して後述する。
【００５２】
その後、プロセッサ１１は、アノテーション実施判定プログラム２３を起動し、信頼度に従って各単語に付されたラベルをランク付けをして、アノテーション結果一時保存領域３３に記録するアノテーション実施判定処理（Ｓ１２４）を実行する。アノテーション実施判定処理は、図１０を参照して後述する。
【００５３】
その後、プロセッサ１１は、見落とし語拾得プログラム２４を起動し、第一候補が固有表現でないと判定された単語について、第二候補のラベルが固有表現であるかを人手で検証するように設定して、アノテーション結果一時保存領域３３に記録する見落とし語拾得処理（Ｓ１２５４）を実行する。見落とし語拾得処理は、図１１を参照して後述する。
【００５４】
その後、ループを制御するパラメータｉを０に初期設定し（Ｓ１２６）、ＩＤがｉのインテリジェンスの処理（Ｓ１２７〜Ｓ１３０）を実行する。
【００５５】
具体的には、プロセッサ１１は、アノテーション結果一時保存領域３３からＩＤ＝ｉのインテリジェンスを取得し、画面生成プログラム２５を起動し、各単語のラベルを人手で検証するためのアノテーション結果表示画面２００を生成する画面生成処理（Ｓ１２７）を実行する。画面生成処理は、図１２を参照して後述する。
【００５６】
さらに、プロセッサ１１は、アノテーション制御プログラム２６を起動し、アノテーション結果表示画面２００を用いた各単語のラベルの人手による検証を制御するアノテーション制御処理（Ｓ１２８）を実行する。アノテーション制御処理は、図１４を参照して後述する。
【００５７】
その後、プロセッサ１１は、アノテーション結果反映プログラム２７を起動し、アノテーション結果をアノテーション結果保存領域３４に保存するアノテーション結果反映処理（Ｓ１２９）を実行する。アノテーション結果反映処理は、図１５を参照して後述する。
【００５８】
その後、プロセッサ１１は、ｉに１を加算し（Ｓ１３０）、アノテーションが行われていないインテリジェンスがインテリジェンス一覧３２にあるかを判定する（Ｓ１３１）。アノテーションが行われていないインテリジェンスがインテリジェンス一覧３２にあれば、ステップＳ１２７に戻り、次のインテリジェンスを処理する。インテリジェンス一覧３２の全てのインテリジェンスについてアノテーションが完了していれば、処理を終了する。
【００５９】
図８は、インテリジェンス収集プログラム２１が実行するインテリジェンス収集処理（Ｓ１２１）のフローチャートである。
【００６０】
まず、プロセッサ１１（インテリジェンス収集プログラム２１）は、インテリジェンス収集先一覧３１を参照して、インテリジェンスを収集する（Ｓ１４１）。具体的には、インテリジェンス収集プログラム２１がインテリジェンス収集先一覧３１のＵＲＬ３１２に記録されたアドレスにアクセスして、インテリジェンスを要求し、オープンインテリジェンスからインテリジェンスを取得する。例えば、オープンインテリジェンスがｗｅｂサイトである場合、取得するインテリジェンスはＨＴＭＬ形式で記述されているので、取得したＨＴＭＬデータからテキストデータを抽出する。さらに、ステップＳ１４１では、オープンインテリジェンスから取得したＨＴＭＬ文を解析して、当該ＨＴＭＬ文に含まれるリンク先からさらにインテリジェンスを取得するとよい。
【００６１】
そして、インテリジェンス収集プログラム２１は、収集したインテリジェンスが新しいインテリジェンスであるかを判定する（Ｓ１４２）。具体的には、ステップＳ１２２と同様に、インテリジェンス一覧３２を参照して、収集したインテリジェンスがインテリジェンス一覧３２に格納されていなければ、新しいインテリジェンスであると判定できる。また、収集したインテリジェンスがアノテーション結果一時保存領域３３及びアノテーション結果保存領域３４のいずれにも格納されていなければ、新しいインテリジェンスであると判定してもよい。
【００６２】
インテリジェンス収集プログラム２１は、収集したインテリジェンスの情報（取得先のＵＲＬ）をインテリジェンス一覧３２へ保存し（Ｓ１４３）、収集したインテリジェンスのステータス３２３に「未アノテーション」を記録する（Ｓ１４４）。
【００６３】
図９は、ラベル付与プログラム２２が実行するラベル付与処理（Ｓ１２３）のフローチャートである。
【００６４】
まず、プロセッサ１１（ラベル付与プログラム２２）は、インテリジェンス一覧３２を走査し、アノテーションが行われていないインテリジェンスを取得する（Ｓ１５１）。
【００６５】
次に、ラベル付与プログラム２２は、アノテーションを開始する（Ｓ１５２）。具体的には、インテリジェンスに形態素解析を適用して、単語を抽出する。単語の抽出にＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）を用いてもよい。
【００６６】
その後、ラベル付与プログラム２２は、各単語の第一候補及び第二候補のラベル推定し、推定された各ラベルの信頼度と共にアノテーション結果一時保存領域３３へ保存する（Ｓ１５３）。
【００６７】
その後、ラベル付与プログラム２２は、アノテーションが行われていないインテリジェンスがインテリジェンス一覧３２にあるかを判定する（Ｓ１５４）。アノテーションが行われていないインテリジェンスがインテリジェンス一覧３２にあれば、ステップＳ１５１に戻り、次のインテリジェンスを処理する。インテリジェンス一覧３２の全てのインテリジェンスについてアノテーションが完了していれば、処理を終了する。
【００６８】
図１０は、アノテーション実施判定プログラム２３が実行するアノテーション実施判定処理（Ｓ１２４）のフローチャートである。
【００６９】
まず、プロセッサ１１（アノテーション実施判定プログラム２３）は、アノテーション結果一時保存領域３３から、インテリジェンス毎にアノテーション結果を取得する（Ｓ１６１）。
【００７０】
その後、アノテーション実施判定プログラム２３は、ループを制御するパラメータｉを０に初期設定し（Ｓ１６２）、ＩＤがｉのインテリジェンスの処理（Ｓ１６３〜Ｓ１６６）を実行する。
【００７１】
具体的には、アノテーション実施判定プログラム２３は、第一候補のラベルの信頼度が所定の閾値以上であるかを判定する（Ｓ１６３）。その結果、第一候補のラベルの信頼度が所定の閾値より小さければ、第一候補のラベルが正しくない可能性があるので、固有表現性に「低」を記録する（Ｓ１６４）。第一候補のラベルの信頼度が低い場合、画面生成プログラム２５が生成するアノテーション結果表示画面２００でユーザによるラベルの検証を促す。一方、第一候補のラベルの信頼度が所定の閾値以上であれば、第一候補のラベルが正しい可能性が高いので、当該単語の固有表現性に「高」を記録する（Ｓ１６５）。第一候補のラベルの信頼度が高い場合、当該単語のラベルは、ユーザによる検証を受けることなく、そのまま決定される。
【００７２】
その後、アノテーション実施判定プログラム２３は、未処理の単語があるかを判定する（Ｓ１６６）。未処理の単語があれば、ステップＳ１６３に戻り、次の単語を処理する。
【００７３】
当該インテリジェンスに含まれる全ての単語の処理が完了していれば、アノテーション実施判定プログラム２３は、ｉに１を加算し（Ｓ１６７）、処理が行われていないインテリジェンスがアノテーション結果一時保存領域３３にあるかを判定する（Ｓ１６８）。処理が行われていないインテリジェンスがアノテーション結果一時保存領域３３にあれば、ステップＳ１６３に戻り、次のインテリジェンスを処理する。アノテーション結果一時保存領域３３の全てのインテリジェンスについて処理が完了していれば、処理を終了する。
【００７４】
図１１は、見落とし語拾得プログラム２４が実行する見落とし語拾得処理（Ｓ１２５）のフローチャートである。
【００７５】
まず、プロセッサ１１（見落とし語拾得プログラム２４）は、アノテーション結果一時保存領域３３から、インテリジェンス毎にアノテーション結果を取得する（Ｓ１７１）。
【００７６】
その後、見落とし語拾得プログラム２４は、ループを制御するパラメータｉを０に初期設定し（Ｓ１７２）、ＩＤがｉのインテリジェンスの処理（Ｓ１７３〜Ｓ１７６）を実行する。
【００７７】
具体的には、見落とし語拾得プログラム２４は、第一候補のラベルが固有表現であるかを判定する（Ｓ１７３）。第一候補のラベルが固有表現であれば、ステップＳ１７６に進む。一方、第一候補のラベルが固有表現でなければ、第二候補のラベルの信頼度が所定の閾値以上であるかを判定する（Ｓ１７４）。その結果、第二候補のラベルの信頼度が所定の閾値以上であれば、当該語の第二候補のラベルが正しい可能性があるので、当該語の固有表現性に「固有表現の可能性有」を記録する（Ｓ１７５）。この場合、画面生成プログラム２５が生成するアノテーション結果表示画面２００でユーザによるラベルの検証を促す。
【００７８】
その後、見落とし語拾得プログラム２４は、未処理の単語があるかを判定する（Ｓ１７６）。未処理の単語があれば、ステップＳ１７３に戻り、次の単語を処理する。
【００７９】
当該インテリジェンスに含まれる全ての単語の処理が完了していれば、見落とし語拾得プログラム２４は、ｉに１を加算し（Ｓ１７７）、処理が行われていないインテリジェンスがアノテーション結果一時保存領域３３にあるかを判定する（Ｓ１７８）。処理が行われていないインテリジェンスがアノテーション結果一時保存領域３３にあれば、ステップＳ１７３に戻り、次のインテリジェンスを処理する。アノテーション結果一時保存領域３３の全てのインテリジェンスについて処理が完了していれば、処理を終了する。
【００８０】
図１２は、画面生成プログラム２５がアノテーション結果表示画面２００を生成する画面生成処理（Ｓ１２８）のフローチャートである。
【００８１】
まず、プロセッサ１１（画面生成プログラム２５）は、アノテーション結果一時保存領域３３から、処理対象のインテリジェンスのアノテーション結果を取得する（Ｓ１８１）。
【００８２】
そして、画面生成プログラム２５は、固有表現性が「高」の単語を塗りつぶして描画し（Ｓ１８２）、固有表現性が「低」の単語及び「固有表現の可能性有」の単語を中抜きで描画する（Ｓ１８３）。画面生成プログラム２５が生成するアノテーション結果表示画面２００の例を図１３に示す。
【００８３】
また、画面生成プログラム２５は、後述するアノテーション制御処理（図１４）において各単語のランクを検証した結果を入力するためのラベル編集画面（図１３の２１０）を表示するためのコードを画面に含める。このとき、固有表現性が「低」の単語及び「固有表現の可能性有」の単語についてランクの検証を促すラベル編集画面２１０を表示しても、固有表現性が「高」の単語についてもランクの検証を促すラベル編集画面２１０を表示してもよい。
【００８４】
固有表現性による単語の描画態様は、前述したもの限らず、各単語がどのような固有表現性を有しているかがユーザ端末２で確認できる態様であればよい。また、各単語に付されている固有表現性の種類によって、単語の表示態様を変えてもよい。さらに、固有表現性が「低」の単語と「固有表現の可能性有」の単語とを同じ態様で表示しても、両者を異なる態様で表示してもよい。両者を異なる態様で表示することによって、真に検証が必要な「固有表現の可能性有」の単語を明確に知ることができ、各単語に的確にラベルを付すことができる。
【００８５】
図１３は、アノテーション結果表示画面２００の例を示す図である。
【００８６】
アノテーション結果表示画面２００は、アノテーションの結果、各単語に付されたラベルに従った表示態様を付してインテリジェンスを表示する。各単語の表示態様は、前述したように、固有表現性が「高」の単語を塗りつぶして描画したり、固有表現性が「低」の単語及び「固有表現の可能性有」の単語を中抜きで描画する。
【００８７】
アノテーション結果表示画面２００には、「ｓｕｂｍｉｔ」ボタン２０１が設けられている。アノテーション結果表示画面２００の表示後、「ｓｕｂｍｉｔ」ボタン２０１が操作されるまで、アノテーション制御プログラム２６のステップＳ１９２からＳ１９７の処理が繰り返し実行され、ユーザからの入力を待つ。
【００８８】
アノテーション結果表示画面２００において、マウスカーソルが単語と重なるマウスオーバ状態では、当該単語のラベル編集画面２１０を表示する。ラベル編集画面２１０は、レベルの推定結果と当該ラベルの信頼度を表示する。ラベル編集画面２１０に表示されるレベルの推定結果は、固有表現性が「低」の単語では、第一候補のラベルとする。また、固有表現性が「固有表現の可能性有」の単語では、第一候補のラベルが「Not Named Entity」なので、第二候補のラベルを表示して、第二候補が正しいかの検証を受けるとよい。また、固有表現性が「高」の単語のラベル編集画面２１０を表示する場合、第一候補のラベルをラベル編集画面２１０に表示するとよい。
【００８９】
また、ラベル編集画面２１０は、「ａｃｃｅｐｔ」ボタン２１１、「ｍｏｄｉｆｙ」ボタン２１２、及び「ｒｅｊｅｃｔ」ボタン２１３を含む。
【００９０】
図１４は、アノテーション制御プログラム２６が実行するアノテーション制御処理（Ｓ１２９）のフローチャートである。
【００９１】
まず、プロセッサ１１（アノテーション制御プログラム２６）は、ユーザがアノテーション結果表示画面２００において「ｓｕｂｍｉｔ」ボタン２０１を操作するまで、ステップＳ１９２からＳ１９７の処理を繰り返し実行する（Ｓ１９１）。
【００９２】
アノテーション制御プログラム２６は、ユーザが単語をマウスオーバすると、ラベル編集画面２１０を表示し、ユーザによる入力ボタンの選択を待つ（Ｓ１９２）。アノテーション制御プログラム２６が、ユーザによる入力を受けると（Ｓ１９３）、入力内容によって分岐する。
【００９３】
アノテーション制御プログラム２６は、ユーザによる「ａｃｃｅｐｔ」ボタン２１１の操作を検出すると、ラベル編集画面２１０に表示されたラベルを正解とする（Ｓ１９４）。すなわち、固有表現性が「低」の単語では、第一候補のラベルがラベル編集画面２１０に表示されるので、「ａｃｃｅｐｔ」ボタン２１１の操作によって、第一候補のラベルが選択される。また、固有表現性が「固有表現の可能性有」の単語では、第二候補のラベルがラベル編集画面２１０に表示されるので、「ａｃｃｅｐｔ」ボタン２１１の操作によって、第二候補のラベルが選択される。
【００９４】
アノテーション制御プログラム２６は、ユーザによる「ｍｏｄｉｆｙ」ボタン２１２の操作を検出すると、ラベル編集画面２１０にラベル入力欄を表示し（例えば、ラベル編集画面２１０を下方に拡張し、ラベル入力欄を表示する）、ユーザが入力したラベルを正解とする（Ｓ１９５）。
【００９５】
アノテーション制御プログラム２６は、ユーザによる「ｒｅｊｅｃｔ」ボタン２１３の操作を検出すると、当該単語が固有表現ではないとする（Ｓ１９６）。この場合、「Not Named Entity」が、アノテーション結果一時保存領域３３のユーザ選択内容３３７に記録される。
【００９６】
なお、「ｒｅｊｅｃｔ」ボタン２１３の操作によって、ラベル編集画面２１０に表示されていない方のラベルを正解としてもよい。すなわち、固有表現性が「低」の単語では、第一候補のラベルがラベル編集画面２１０に表示されるので、「ｒｅｊｅｃｔ」ボタン２１３の操作によって、第二候補のラベルを選択する。また、固有表現性が「固有表現の可能性有」の単語では、第二候補のラベルがラベル編集画面２１０に表示されるので、「ｒｅｊｅｃｔ」ボタン２１３の操作によって、第一候補のラベルである「Not Named Entity」が選択される。
【００９７】
ユーザがマウスカーソルを移動し、マウスオーバが解除されると、何もせずに処理を続行する（Ｓ１９７）。
【００９８】
その後、アノテーション制御プログラム２６は、ユーザの選択や入力をアノテーション結果一時保存領域３３のユーザ選択内容３３７に記録する（Ｓ１９８）。
【００９９】
図１５は、アノテーション結果反映プログラム２７が実行するアノテーション結果反映処理（Ｓ１３０）のフローチャートである。
【０１００】
まず、プロセッサ１１（アノテーション結果反映プログラム２７）は、アノテーション結果一時保存領域３３から、当該インテリジェンスのアノテーション結果を取得し（Ｓ２０１）、取得したアノテーション結果をアノテーション結果保存領域３４へ保存する（Ｓ２０２）。このとき、ＵＲＬ３４２及び単語３４３には、アノテーション結果一時保存領域３３のＵＲＬ３３２及び単語３３３を、そのまま記録する。正解ラベル３４４には、ユーザ選択内容３３７を記録し、ユーザ選択内容３３７が記録されていない場合、第一候補３３４を記録する。このようにして、最も確からしいラベルを正解ラベルとして決定できる。
【０１０１】
その後、アノテーション結果反映プログラム２７は、アノテーション結果一時保存領域３３から、当該インテリジェンスのアノテーション結果を削除する（Ｓ２０３）。
【０１０２】
以上に説明したように、本発明の実施例によると、自然言語で記述されたインテリジェンスを所定のタイミングで取得するインテリジェンス収集プログラム２１と、取得されたインテリジェンスが新規である場合、当該インテリジェンスに含まれる単語のラベル及び当該ラベルの信頼度を付与するラベル付与プログラム２２と、当該単語のラベルに基づいて、ユーザに提示する画面を生成する画面生成プログラム２５とを有するので、インテリジェンスの構造化において、ユーザが注意すべき語を的確に提案できる。また、従来の方法では見落とされていた未知語を拾得でき、網羅率を向上できる。
【０１０３】
画面生成プログラム２５は、当該単語が既知のラベルのいずれにも関連しない信頼度が、当該単語が既知のラベルに関連する信頼度より大きい場合、当該単語に関連する既知のラベルの信頼度が所定の閾値以上であるとき、すなわち、第一候補が当該単語が既知のラベルのいずれにも関連しない（セキュリティ情報として構造化するための意味を持たないNot Named Entity）であり、第二候補が既知のラベルである場合、ラベル編集画面２１０を表示するためのデータを生成するので、セキュリティ分野で頻繁に生じる未知語を的確に抽出できる。
【０１０４】
画面生成プログラム２５は、当該単語が既知のラベルのいずれにも関連しない信頼度が、当該単語が既知のラベルに関連する信頼度より大きい場合、当該単語に関連する既知のラベルの信頼度が所定の閾値以上であるとき、すなわち、第一候補がNot Named Entityであり、かつ第二候補の信頼度が所定の閾値以上である場合、ラベル編集画面２１０を表示するためのデータを生成するので、Not Named Entityではなく他のラベルである可能性が高いもののみ、手動でラベルを検証するので、ユーザの手間を軽減できる。
【０１０５】
画面生成プログラム２５は、第一候補の信頼度が所定の閾値より小さい場合、ラベル編集画面２１０を表示するためのデータを生成するので、信頼度が低い（間違っている可能性がある）ラベルを的確なラベルに手動で修正できる。
【０１０６】
以上に説明した実施例において、構造化のための辞書を作成して、当該辞書を教師データとした機械学習を用いてアノテーションを行ってもよい。この場合、アノテーション結果を教師データにするだけでなく、構造化されたデータそのものを教師データにしてもよい。
【０１０７】
以上に説明した実施例では、信頼度が低いラベルは人手によって検証したが、信頼度が低いアノテーション結果は採用しないことによって、人手を介さず、自動的にアノテーションを行ってもよい。また、信頼度が低いアノテーション結果も採用して、自動的にアノテーションを行ってもよい。
【０１０８】
自動的にアノテーションを行う場合の教師データとして、人手を介した信頼度が高いアノテーション結果を採用して、自動的なアノテーションと人手を介したアノテーションとを併存して運用すると、コーパスの精度低下を抑制できる。
【０１０９】
本実施例のように、半自動的にアノテーションを実施することによって、コーパスの作成コストを低減できる。また、未知語を拾得することによって、コーパスの精度や網羅率を向上できる。
【０１１０】
以上の実施例では、構造化されていないセキュリティ情報を適切に構造化するセキュリティインテリジェンス構造化支援システムについて説明したが、本発明は、セキュリティ情報ではなく、他の種類の情報を構造化するシステムにも適用できる。
【０１１１】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【０１１２】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１１３】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【０１１４】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１１５】
１  セキュリティインテリジェンス構造化支援システム
２  ユーザ端末
１１  プロセッサ
１２  メインメモリ
１３  記憶装置
１４、１５  通信インターフェース
１６  入出力装置
１７、１９  ネットワーク
１８  インターネット
２１  インテリジェンス収集プログラム
２２  ラベル付与プログラム
２３  アノテーション実施判定プログラム
２４  見落とし語拾得プログラム
２５  画面生成プログラム
２６  アノテーション制御プログラム
２７  アノテーション結果反映プログラム
３１  インテリジェンス収集先一覧
３２  インテリジェンス一覧
３３  アノテーション結果一時保存領域
３４  アノテーション結果保存領域
【図１】
2019197389.tif 000003
【図２】
2019197389.tif 000004
【図３】
2019197389.tif 000005
【図４】
2019197389.tif 000006
【図５】
2019197389.tif 000007
【図６】
2019197389.tif 000008
【図７】
2019197389.tif 000009
【図８】
2019197389.tif 000010
【図９】
2019197389.tif 000011
【図１０】
2019197389.tif 000012
【図１１】
2019197389.tif 000013
【図１２】
2019197389.tif 000014
【図１３】
2019197389.tif 000015
【図１４】
2019197389.tif 000016
【図１５】
2019197389.tif 000017