(57)【要約】【課題】文書を識別するためのニューラルネットワークの学習において、教師データに含まれない単語の学習が行われない。【解決手段】文書を識別するためのニューラルネットワークを学習する計算機システムであって、学習用文書、非学習用文書、及び単語の初期単語ベクトルを管理し、学習処理を開始する場合、追従単語を特定し、追従単語と意味が類似する学習単語を特定し、初期単語ベクトルから構成される単語行列が設定されたニューラルネットワークを用いた学習処理を実行して、ニューラルネットワークを構成する階層間の重みを更新し、ニューラルネットワークを構成する階層間の重みの更新結果に基づいて、学習単語の単語ベクトル及び当該学習単語に対応づけられる追従単語の単語ベクトルを更新する。【選択図】図７
2020027359.tif 000002
【特許請求の範囲】
【請求項１】
文書を識別するためのニューラルネットワークを学習する計算機システムであって、
前記計算機システムは、演算装置及び前記演算装置に接続される記憶装置を有する少なくとも一つの計算機を備え、
前記ニューラルネットワークは、前記文書に含まれる単語を表す単語ベクトルから構成される単語行列を含み、
前記少なくとも一つの計算機は、
識別結果を表すラベル及び文書から構成される学習用文書、非学習用文書、前記学習用文書に含まれる学習単語の単語ベクトルの初期値である第一初期単語ベクトル、及び前記非学習用文書に含まれ、かつ、前記学習用文書に含まれない単語である追従単語の単語ベクトルの初期値である第二初期単語ベクトルを管理し、
前記ニューラルネットワークの学習処理を開始する場合、前記非学習用文書に含まれる単語の中から前記追従単語を特定し、
前記学習単語の中から前記追従単語と意味が類似する前記学習単語を特定し、
前記第一初期単語ベクトル及び前記第二初期単語ベクトルから構成される単語行列が設定された前記ニューラルネットワークを用いた学習処理を実行することによって、前記ニューラルネットワークを構成する階層間の重みを更新し、
前記ニューラルネットワークを構成する階層間の重みの更新結果に基づいて、前記学習単語の単語ベクトル及び当該学習単語に対応づけられる前記追従単語の単語ベクトルを更新することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記第二初期単語ベクトル及び前記学習処理によって更新された前記追従単語の単語ベクトルの変化の程度を表す移動量を算出し、
前記移動量を提示するための表示情報を生成することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記第一初期単語ベクトル及び前記第二初期単語ベクトルを用いて、前記追従単語の近傍に存在する第一近傍学習単語を特定し、
前記学習処理によって更新された前記学習単語の単語ベクトル及び前記学習処理によって更新された前記追従単語の単語ベクトルを用いて、前記追従単語の近傍に存在する第二近傍学習単語を特定し、
前記第一近傍学習単語及び前記第二近傍学習単語を提示するための表示情報を生成することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記第一初期単語ベクトル及び前記第二初期単語ベクトルを用いて前記追従単語及び前記学習単語の距離を算出し、
前記距離が閾値より小さい前記学習単語を、前記追従単語と意味が類似する学習単語として特定することを特徴とする計算機システム。
【請求項５】
請求項３に記載の計算機システムであって、
前記少なくとも一つの計算機は、
類義語辞書を管理し、
前記類義語辞書を用いて、前記追従単語と意味が類似する学習単語を特定することを特徴とする計算機システム。
【請求項６】
文書を識別するためのニューラルネットワークを学習する計算機システムが実行する学習方法であって、
前記計算機システムは、演算装置及び前記演算装置に接続される記憶装置を有する少なくとも一つの計算機を備え、
前記ニューラルネットワークは、前記文書に含まれる単語を表す単語ベクトルから構成される単語行列を含み、
前記少なくとも一つの計算機は、識別結果を表すラベル及び文書から構成される学習用文書、非学習用文書、前記学習用文書に含まれる学習単語の単語ベクトルの初期値である第一初期単語ベクトル、及び前記非学習用文書に含まれ、かつ、前記学習用文書に含まれない単語である追従単語の単語ベクトルの初期値である第二初期単語ベクトルを管理し、
前記学習方法は、
前記少なくとも一つの計算機が、前記ニューラルネットワークの学習処理を開始する場合、前記非学習用文書に含まれる単語の中から前記追従単語を特定する第１のステップと、
前記少なくとも一つの計算機が、前記学習単語の中から前記追従単語と意味が類似する前記学習単語を特定する第２のステップと、
前記少なくとも一つの計算機が、前記第一初期単語ベクトル及び前記第二初期単語ベクトルから構成される単語行列が設定された前記ニューラルネットワークを用いた学習処理を実行することによって、前記ニューラルネットワークを構成する階層間の重みを更新する第３のステップと、
前記少なくとも一つの計算機が、前記ニューラルネットワークを構成する階層間の重みの更新結果に基づいて、前記学習単語の単語ベクトル及び当該学習単語に対応づけられる前記追従単語の単語ベクトルを更新する第４のステップと、を含むことを特徴とする学習方法。
【請求項７】
請求項６に記載の学習方法であって、
前記少なくとも一つの計算機が、前記第二初期単語ベクトル及び前記学習処理によって更新された前記追従単語の単語ベクトルの変化の程度を表す移動量を算出するステップと、
前記少なくとも一つの計算機が、前記移動量を提示するための表示情報を生成するステップと、を含むことを特徴とする学習方法。
【請求項８】
請求項７に記載の学習方法であって、
前記少なくとも一つの計算機が、前記第一初期単語ベクトル及び前記第二初期単語ベクトルを用いて、前記追従単語の近傍に存在する第一近傍学習単語を特定するステップと、
前記少なくとも一つの計算機が、前記学習処理によって更新された前記学習単語の単語ベクトル及び前記学習処理によって更新された前記追従単語の単語ベクトルを用いて、前記追従単語の近傍に存在する第二近傍学習単語を特定するステップと、
前記少なくとも一つの計算機が、前記第一近傍学習単語及び前記第二近傍学習単語を提示するための表示情報を生成するステップと、を含むことを特徴とする学習方法。
【請求項９】
請求項８に記載の学習方法であって、
前記第２のステップは、
前記少なくとも一つの計算機が、前記第一初期単語ベクトル及び前記第二初期単語ベクトルを用いて前記追従単語及び前記学習単語の距離を算出するステップと、
前記少なくとも一つの計算機が、前記距離が閾値より小さい前記学習単語を、前記追従単語と意味が類似する学習単語として特定するステップと、を含むことを特徴とする学習方法。
【請求項１０】
請求項８に記載の学習方法であって、
前記少なくとも一つの計算機は、類義語辞書を管理し、
前記第２のステップは、前記少なくとも一つの計算機が、前記類義語辞書を用いて、前記追従単語と意味が類似する学習単語を特定するステップを含むことを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は文書を識別するための文書識別モデルの学習に関する。
【背景技術】
【０００２】
インターネットを介して大量の文書データへのアクセスが可能となったこと、全文検索及びデータベース等のデータに対するアクセス技術が普及したこと、並びに、機械学習等の技術を利用した分析の自動化が進展していることに伴って、近年、大量の文書データを分析し、有用な知見を発見するサービスが実用化されている。
【０００３】
例えば、商品レビュー記事及びソーシャルネットワークの文書を用いて、商品の評判を自動的に推定する評判分析、ニュース記事が株式市場にとって肯定的に受け入れられているか否かを推定するニュースの極性分析等の文書識別のサービスが提供されている。
【０００４】
ここで、文書識別とは、与えられた文書を二つ以上のグループに分類することを表す。例えば、評判分析では、ポジティブな文書又はネガティブな文書のいずれかに分類するタスクを表す。また、例えば、重要性分析では、重要な文書又は重要でない文書のいずれかに分類するタスクを表す。
【０００５】
ここで、文書とは、自然言語で書かれた一つ以上の単語を含む文字列を表す。本明細書の文書は、句、文章、及び文書を含む概念である。
【０００６】
評判分析又はニュースの極性分析を行うシステムは、商品に対する肯定又は否定等の過去の評価結果から、事例に対する評価の判定パターンを機械学習の手法を用いて学習させることによって実現されている。
【０００７】
高い精度の文書識別を実現するためには、一般的に、判定事例となる大量の教師データを用いた学習処理を行う必要がある。教師データは、人が作成する必要があり、作成コストが大きい。特に、法律分野等、読解に専門知識を要するような文書から教師データを作る場合、専門家の作業が必要となることから人的コストが大きくなる。
【０００８】
前述のような人的コストを削減するため、事前学習という手法が知られている。例えば、大量の文書を用いて単語の数値表現を取得する手法としては、単語の数値表現として単語ベクトルを算出するＳｋｉｐ−Ｇｒａｍ、ＣＢＯＷ、及びＧｌｏＶｅ等の技術が知られている。これらの技術では、意味が類似する単語は、文書中で周辺に登場する単語も似ていると仮定し、ニューラルネットワークに教師データとなる大量の文書を入力し、意味が類似する単語の単語ベクトルが類似するように学習が行われる。
【０００９】
前述のような手法を用いて生成された単語ベクトルを、文書識別における単語ベクトルの初期値として用いることで文書識別の精度を改善することができる。
【００１０】
この技術分野の背景技術として非特許文献１に記載の技術が知られている。非特許文献１には、単語を部分文字列に分解し、合成することで出現頻度が低い単語及び未知の単語を補う方法が開示されている。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】工藤拓、"サブワード正則化：複数のサブワード分割候補を用いたニューラル機械翻訳"、［ｏｎｌｉｎｅ］、２０１８年３月、言語処理学会  第２４回年次大会、［平成３０年７月２４日検索］、http://www.anlp.jp/proceedings/annual_meeting/2018/pdf_dir/B1-5.pdf
【発明の概要】
【発明が解決しようとする課題】
【００１２】
教師データとして入力された単語の単語ベクトルは、学習を通じて更新されるが、教師データとして入力されていない単語は学習の前後で単語ベクトルが更新されない。したがって、意味が類似する単語の単語ベクトルが類似しなくなるという問題が起こる。教師データとして入力されない単語は、文書識別の精度に悪影響を与える場合がある。
【００１３】
専門用語が多い文書を識別するための学習処理では、全ての単語を網羅した教師データを用意することが困難である。そのため、前述のような影響による問題が顕著になる。
【課題を解決するための手段】
【００１４】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、文書を識別するためのニューラルネットワークを学習する計算機システムであって、前記計算機システムは、演算装置及び前記演算装置に接続される記憶装置を有する少なくとも一つの計算機を備え、前記ニューラルネットワークは、前記文書に含まれる単語を表す単語ベクトルから構成される単語行列を含み、前記少なくとも一つの計算機は、識別結果を表すラベル及び文書から構成される学習用文書、非学習用文書、前記学習用文書に含まれる学習単語の単語ベクトルの初期値である第一初期単語ベクトル、及び前記非学習用文書に含まれ、かつ、前記学習用文書に含まれない単語である追従単語の単語ベクトルの初期値である第二初期単語ベクトルを管理し、前記ニューラルネットワークの学習処理を開始する場合、前記非学習用文書に含まれる単語の中から前記追従単語を特定し、前記学習単語の中から前記追従単語と意味が類似する前記学習単語を特定し、前記第一初期単語ベクトル及び前記第二初期単語ベクトルから構成される単語行列が設定された前記ニューラルネットワークを用いた学習処理を実行することによって、前記ニューラルネットワークを構成する階層間の重みを更新し、前記ニューラルネットワークを構成する階層間の重みの更新結果に基づいて、前記学習単語の単語ベクトル及び当該学習単語に対応づけられる前記追従単語の単語ベクトルを更新する。
【発明の効果】
【００１５】
教師データを用いた学習処理の結果に基づいて、教師データに含まれない単語の単語ベクトルを更新することができる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１６】
【図１】実施例１の計算機システムの構成例を示す図である。
【図２】実施例１のサーバのハードウェア構成の一例を示す図である。
【図３】実施例１のラベルあり文書記憶部に格納される情報の一例を示す図である。
【図４】実施例１のラベルなし文書記憶部に格納される情報の一例を示す図である。
【図５】実施例１の単語ベクトル記憶部に格納される情報の一例を示す図である。
【図６】実施例１のサーバが実行する処理を説明するフローチャートである。
【図７】実施例１の学習部が実行する学習のアーキテクチャの一例を示す図である。
【図８】実施例１の学習処理部が実行する追従単語の解析処理の一例を説明するフローチャートである。
【図９】実施例１のユーザ端末に表示されるＧＵＩの一例を説明する図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施例を添付図面に基づいて説明する。
【００１８】
以下の実施例において、要素の数等に言及する場合、特に指定された場合及び原理的に明らかに特定される場合を除き、その特定の数に限定されることはない。
【００１９】
以下の実施例において、その構成要素は、特に指定された場合及び原理的に明らかに必要とされる場合を除き、必ずしも必須のものではないということは明らかである。また、同様に以下の実施例において、構成要素の形状及び位置関係について言及するときは、特に明示する場合及び原理的に明らかにそうでないと考えられる場合を除き、実質的にその形状等に近似又は類似するものを含むものとする。このことは、数値及び範囲に関しても同様である。
【００２０】
また、以下の実施の形態では、主に日本語文書を処理する場合について説明するが、言語固有の処理を置き換えれば英語等の他の言語でも同様の手順で適用可能である。
【実施例１】
【００２１】
図１は、実施例１の計算機システムの構成例を示す図である。
【００２２】
計算機システムは、サーバ１００及びユーザ端末１０１から構成される。サーバ１００及びユーザ端末１０１は、直接又はネットワークを介して互いに接続される。ネットワークは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等である。なお、ネットワークの接続方式は有線及び無線のいずれでもよい。なお、サーバ１００及びユーザ端末１０１の各々の数は二つ以上でもよい。
【００２３】
ユーザ端末１０１は、ユーザが操作する端末である。サーバ１００は、文書を識別するための文書識別モデル（識別器）を生成するための学習処理を実行する。本実施例の文書識別モデルはニューラルネットワークとして与えられる。
【００２４】
ここで、サーバ１００の論理構成について説明する。サーバ１００は、学習処理部１１０及び単語ベクトル確認部１２０を有する。
【００２５】
学習処理部１１０は学習処理を実行する。学習処理部１１０は、入力部１１１、追従単語選択部１１２、学習部１１３、ラベルあり文書記憶部１１４、ラベルなし文書記憶部１１５、単語ベクトル記憶部１１６、及び文書識別モデル記憶部１１７を含む。
【００２６】
ラベルあり文書記憶部１１４は、ラベルが付与された文書を格納する。ラベルなし文書記憶部１１５は、ラベルが付与されていない文書を格納する。本実施例では、ラベルあり文書を教師データとして用いた学習処理が実行される。ラベルあり文書記憶部１１４に格納される情報については図３を用いて説明し、ラベルなし文書記憶部１１５に格納される情報については図４を用いて説明する。
【００２７】
ここで、ラベルとは、文書識別の識別結果を示す文字列又は数値を表す。例えば、文書の内容がポジティブ又はネガティブのいずれであるかを識別する評判分析の場合、ポジティブな文書にはラベル「１」が付与され、ネガティブな文書にはラベル「０」が付与される。なお、ラベルが有限個の文字列である場合、辞書等を用いて文字列をソートし、登場順に対応する数値を対応づけることによってラベルを数値として扱うことができる。
【００２８】
単語ベクトル記憶部１１６は、学習処理の開始時に設定される単語ベクトルの初期値を格納する。以下の説明では、単語ベクトル記憶部１１６に格納される単語ベクトルの初期値を初期単語ベクトルと記載する。単語ベクトル記憶部１１６に格納される情報については図５を用いて説明する。文書識別モデル記憶部１１７は、文書識別モデルを格納する。
【００２９】
入力部１１１は、ユーザ端末１０１から入力された学習条件情報を受け付ける。学習条件情報には、ハイパーパラメタ、ラベルあり文書、ラベルなし文書、及び単語ベクトル等が含まれる。ハイパーパラメタは、ニューラルネットワークの階層の数、各階層のノードの数、及び階層間のノードの接続等が含まれる。
【００３０】
追従単語選択部１１２は、ラベルなし文書にのみ含まれる単語を選択し、ラベルあり文書に含まれる単語の中から、選択された単語と意味が類似する単語を追従先として設定する。以下の説明では、ラベルあり文書に含まれる単語を学習単語と記載し、ラベルなし文書にのみ含まれる単語を追従単語と記載する。なお、学習単語及び追従単語を区別しない場合、単語と記載する。
【００３１】
学習部１１３は、ラベルあり文書記憶部１１４を用いた文書識別モデル（ニューラルネットワーク）の学習処理を実行する。
【００３２】
単語ベクトル確認部１２０は、学習処理によって更新された追従単語の単語ベクトルに関する情報を出力する。単語ベクトル確認部１２０は、単語ベクトル比較部１２１及び単語ベクトル情報表示部１２２を含む。
【００３３】
単語ベクトル比較部１２１は、学習前の追従単語の単語ベクトル（初期単語ベクトル）及び学習後の追従単語の単語ベクトルを比較することによって、ユーザに提示する追従単語を選択する。また、単語ベクトル比較部１２１は、選択された追従単語の学習結果に関する情報を生成する。
【００３４】
単語ベクトル情報表示部１２２は、追従単語の単語ベクトルに関する学習結果を表示するための表示情報を生成し、ユーザ端末１０１に出力する。
【００３５】
図２は、実施例１のサーバ１００のハードウェア構成の一例を示す図である。
【００３６】
サーバ１００は、ＣＰＵ２０１、主記憶装置２０２、副記憶装置２０３、ネットワークインタフェース２０４、入力装置２０５、及び出力装置２０６を有する。各ハードウェアは、内部バス２１０を介して互いに接続される。
【００３７】
ＣＰＵ２０１は、主記憶装置２０２に格納されるプログラムを実行する。ＣＰＵ２０１がプログラムにしたがって処理を実行することによって、学習部１１３等、特定の機能を実現する機能部（モジュール）として動作する。以下の説明では、機能部を主語に処理を説明する場合、ＣＰＵ２０１が当該機能部を実現するプログラムを実行していることを示す。
【００３８】
主記憶装置２０２は、メモリ等の記憶装置であり、ＣＰＵ２０１が実行するプログラム及び当該プログラムが使用する情報を格納する。また、ＣＰＵ２０１は、プログラムが一時的に使用するワークエリアを含む。実施例１の主記憶装置２０２には、学習処理部１１０及び単語ベクトル確認部１２０を実現するプログラムが格納される。
【００３９】
副記憶装置２０３は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、及びＲＡＭディスク等の記憶装置であり、データを永続的に格納する。ラベルなし文書記憶部１１５、単語ベクトル記憶部１１６、及び文書識別モデル記憶部１１７がデータを格納する記憶領域は、副記憶装置２０３を用いて実現される。なお、文書識別モデル記憶部１１７がデータを格納する記憶領域は、主記憶装置２０２を用いて実現されてもよい。
【００４０】
ネットワークインタフェース２０４は、ネットワークを介して外部装置と通信するためのインタフェースである。入力装置２０５は、キーボード、マウス、及びマイク等の装置であり、サーバ１００にデータ又は情報を入力するためのインタフェースである。出力装置２０６は、ディスプレイ、プリンタ、及び音声合成装置等であり、サーバ１００からデータ又は情報を出力するためのインタフェースである。
【００４１】
なお、リモート接続等を用いてサーバ１００を操作する場合、サーバ１００は、入力装置２０５及び出力装置２０６を有していなくてもよい。
【００４２】
なお、ユーザ端末１０１のハードウェア構成もサーバ１００のハードウェア構成と同一であるため詳細な説明は省略する。
【００４３】
図３は、実施例１のラベルあり文書記憶部１１４に格納される情報の一例を示す図である。
【００４４】
ラベルあり文書記憶部１１４は、ラベルあり文書管理情報３００を格納する。ラベルあり文書管理情報３００は、ラベルあり文書に対応するレコードを一つ以上含む。当該レコードは、文書ＩＤ３０１、ラベル３０２、及び本文３０３から構成される。
【００４５】
文書ＩＤ３０１は、ラベルあり文書を一意に識別するための識別情報を格納するフィールドである。本実施例の文書ＩＤ３０１には、文書の作成日又は掲載日等が格納される。ラベル３０２は、文書に付与されるラベルを格納するフィールドである。ラベル３０２に格納される値は予め与えられている。本文３０３は、文書に記載された文字列を格納するフィールドである。
【００４６】
なお、ラベルあり文書管理情報３００の管理方式は、リレーショナルデータベース及びキーバリューストア等のいずれでもよい。
【００４７】
図４は、実施例１のラベルなし文書記憶部１１５に格納される情報の一例を示す図である。
【００４８】
ラベルなし文書記憶部１１５は、ラベルなし文書管理情報４００を格納する。ラベルなし文書管理情報４００は、ラベルなし文書に対応するレコードを一つ以上含む。当該レコードは、文書ＩＤ４０１及び本文４０２から構成される。文書ＩＤ４０１及び本文４０２は、文書ＩＤ３０１及び本文３０３と同一のフィールドである。
【００４９】
なお、ラベルなし文書管理情報４００の管理方式は、リレーショナルデータベース及びキーバリューストア等のいずれでもよい。
【００５０】
図５は、実施例１の単語ベクトル記憶部１１６に格納される情報の一例を示す図である。
【００５１】
単語ベクトル記憶部１１６は、単語ベクトル管理情報５００を格納する。単語ベクトル管理情報５００は、単語ベクトルに対応するレコードを一つ以上含む。当該レコードは、単語５０１及び単語ベクトル５０２から構成される。
【００５２】
単語５０１は、単語を表す文字列を格納するフィールドである。単語ベクトル５０２は、単語５０１に格納される単語の単語ベクトルを格納するフィールドである。単語ベクトルは、Ｓｋｉｐ−Ｇｒａｍ、ＣＢＯＷ、ＧｌｏＶｅ等の単語の埋め込み表現を学習することによって生成できる。単語ベクトルは、類似する文脈で登場する単語はコサイン類似度が大きくなるという特徴を有する。
【００５３】
図６は、実施例１のサーバ１００が実行する処理を説明するフローチャートである。図７は、実施例１の学習部１１３が実行する学習のアーキテクチャの一例を示す図である。
【００５４】
サーバ１００の学習処理部１１０は、ユーザ端末１０１から学習条件の入力を受け付ける（ステップＳ１０１）。
【００５５】
具体的には、入力部１１１が学習条件の入力を受け付ける。入力部１１１は、学習条件に含まれるラベルあり文書、ラベルなし文書、及び初期単語ベクトルの各々を、ラベルあり文書記憶部１１４、ラベルなし文書記憶部１１５、及び単語ベクトル記憶部１１６に出力する。また、入力部１１１は、学習条件に含まれるハイパーパラメタを学習部１１３に出力する。その後、入力部１１１は、追従単語選択部１１２を呼び出す。
【００５６】
次に、学習処理部１１０は、ラベルあり文書記憶部１１４に格納されるラベルあり文書及びラベルなし文書記憶部１１５に格納されるラベルなし文書を用いて、学習単語群及び追従単語群を生成する（ステップＳ１０２）。具体的には、以下のような処理が実行される。
【００５７】
（手順１）追従単語選択部１１２は、ラベルあり文書及びラベルなし文書から単語を抽出する。単語の抽出するためのアルゴリズムとしては、形態素解析が考えられる。追従単語選択部１１２は、ラベルあり文書から抽出された学習単語の集合Ｓを生成する。また、追従単語選択部１１２は、ラベルなし文書から抽出された単語であって、集合Ｓに含まれない単語（追従単語）の集合Ｔを生成する。
【００５８】
（手順２）追従単語選択部１１２は、集合Ｔからターゲット追従単語を一つ選択し、ターゲット追従単語と意味が類似する学習単語を特定する。具体的には、追従単語選択部１１２は、単語ベクトル記憶部１１６からターゲット追従単語及び集合Ｓに含まれる各学習単語の初期単語ベクトルを取得し、取得した初期単語ベクトルを用いてターゲット追従単語及び学習単語の距離を算出する。距離は、例えば、ユークリッド距離及びコサイン距離等である。追従単語選択部１１２は、算出された距離に基づいて、集合Ｓに含まれる学習単語の中から、ターゲット追従単語の近傍にあるｋ個の学習単語を特定する。任意の単語の近傍の単語を効率的に特定する方法としては、Ｋ−Ｄ  Ｔｒｅｅ及びＢａｌｌ  Ｔｒｅｅ等が知られている。
【００５９】
追従単語選択部１１２は、集合Ｔに含まれる全ての追従単語に対して（手順２）を繰り返し実行する。これによって、追従単語選択部１１２は、追従単語及び追従先の学習単語のペアを生成できる。
【００６０】
（手順３）追従単語選択部１１２は、追従単語及び学習単語のペアに関するデータを主記憶装置２０２に格納する。
【００６１】
なお、前述した処理は一例であってこれに限定されない。例えば、（手順２）において、追従単語選択部１１２は、集合Ｔからターゲット追従単語を選択し、類義語辞書を用いて、ターゲット追従単語と意味が類似する学習単語を特定してもよい。
【００６２】
以上がステップＳ１０２の処理の説明である。
【００６３】
次に、学習処理部１１０は、初期化処理を実行する（ステップＳ１０３）。
【００６４】
具体的には、学習部１１３は、ニューラルネットワークを構築し、階層間の重みに初期値を設定する。重みの初期値はランダムに設定されてもよいし、任意の規則にしたがって設定されてもよい。ニューラルネットワークには単語行列が含まれる。単語行列は、単語ベクトルを行ベクトルとして羅列した行列である。単語行列の列は単語ベクトルの要素に対応する。
【００６５】
学習部１１３は、ニューラルネットワークに含まれる単語行列の各行に対応する単語の初期単語ベクトルを設定する。
【００６６】
なお、単語ベクトル記憶部１１６に存在しない単語の初期単語ベクトルはランダムに生成されたものを用いる。このとき、学習部１１３は、単語ベクトル記憶部１１６に生成された初期単語ベクトルを登録する。
【００６７】
次に、学習処理部１１０は、学習処理を実行する（ステップＳ１０４）。ここで、図７を用いて学習処理について説明する。学習処理では、図７に示すようなニューラルネットワークを用いて順方向伝播の演算及び逆方向伝播の演算が繰り返し実行される。
【００６８】
まず、順方向伝播の演算について説明する。
【００６９】
学習部１１３は、ラベルあり文書を教師データとして入力する。学習部１１３は、形態素解析等を用いて、ラベルあり文書から学習単語を取得する。学習部１１３は、各学習単語を追従先とする追従単語を特定する。学習部１１３は、学習単語及び追従単語のＩＤを入力する。
【００７０】
学習部１１３は、単語行列７００から、入力されたＩＤに対応する単語ベクトルを取得し、一方向フィルタ７０１に入力する。一方向フィルタ７０１は、特定の単語ベクトルのみに対して順方向伝播の演算が行われるように制御し、また、入力された全ての単語ベクトルに対して逆方向伝播の演算が行われるように制御する。一方向フィルタ７０１は、例えば、式（１）に示すような関数として与えることができる。
【００７１】
【数１】
2020027359.tif 000003
【００７２】
ここで、ｘは学習単語の単語ベクトルを表し、ｖは追従単語の単語ベクトルを表す。ｙは出力されるベクトルを表す。関数ｇは順方向の演算では入力値をそのまま返し、逆方向では０を返す関数である。
【００７３】
したがって、順方向伝播では、ｇ（−ｖ）は−ｖであるためｙ＝ｘとなり、逆方向伝播では、ｇ（−ｖ）は０であるためｙ＝ｘ＋ｖとなる。これによって、二つの単語ベクトルに対して重みの更新が伝播する。
【００７４】
なお、関数ｇは、Ｋｅｒａｓ等、ニューラルネットワークのライブラリの標準機能として実装されている。
【００７５】
一方向フィルタ７０１は、学習単語の単語ベクトルをＣＮＮ７０２に出力する。ＣＮＮ７０２は、一つ以上の畳み込み層及び一つ以上のプーリング層から構成される。ＣＮＮ７０２は、ラベルあり文書から抽出されたすべての学習単語の単語ベクトルが入力された場合、畳み込み演算及びプーリング演算を実行し、入力されたラベルあり文書に対応する文書ベクトルを出力する。
【００７６】
なお、ニューラルネットワークは、リカレントニューラルネットワーク及びプーリング演算を実行して文書ベクトルを算出してもよいし、リカレントニューラルネットワークの最終出力を文書ベクトルとして算出してもよいし、また、単語ベクトルを受け取る多層パーセプトロンを用いて文書ベクトルを算出してもよい。
【００７７】
全結合層７０３は、ＣＮＮ７０２から出力された文書ベクトルを用いて、識別結果の次元数に一致する要素数のベクトルを出力する。例えば、ネガティブ及びポジティブの識別を行う文書識別では、全結合層７０３は２次元のベクトルを出力する。この場合、１番目の要素がポジティブに関する値に対応し、２番目の要素がネガティブに関する値に対応する。
【００７８】
Ｓｏｆｔｍａｘ関数７０４は、全結合層７０３から出力されたベクトルの各要素の値を確率値に変換し、識別結果として出力する。Ｓｏｆｔｍａｘ関数７０４から出力されるベクトルの要素の合計値は１となる。ネガティブ及びポジティブの識別を行う文書識別の場合、１番目の要素は文書がポジティブである確率値であり、２番目の要素は文書がネガティブである確率値である。
【００７９】
次に、逆方向伝播の演算について説明する。
【００８０】
学習部１１３は、教師データに付与されたラベルを表すベクトルと、識別結果として得られたベクトルとを入力とするロス関数を用いてロスを算出する。ロス関数は、ニューラルネットワークから出力されたベクトルと教師データに付与されたラベルを表すベクトルとの間の距離が近い場合、小さい値を返し、距離が遠い場合、大きな値を返す。ロス関数は、例えば、クロスエントロピーを用いる。
【００８１】
学習部１１３は、ロス関数をニューラルネットワークの重みに関して微分することによって、勾配を算出する。また、学習部１１３は、算出された勾配を用いて重みを算出する。
【００８２】
学習部１１３は、Ｓｏｆｔｍａｘ関数７０４、全結合層７０３、ＣＮＮ７０２の順に微分の連鎖率に基づいて、各階層に関するロス関数の勾配を算出する。さらに、学習部１１３は、算出された勾配に基づいて階層間の重みを更新する。
【００８３】
学習部１１３は、ＣＮＮ７０２から逆伝播した勾配を学習単語及び追従単語のそれぞれに伝播させる。学習部１１３は、勾配に基づいて、学習単語及び追従単語の単語ベクトルを更新する。
【００８４】
なお、学習部１１３は、ＣＮＮ７０２から逆伝播した勾配に０より大きく１より小さい係数又は距離に反比例する係数を乗算することによって、追従単語に伝播させる勾配の大きさを調整してもよい。
【００８５】
以上の処理によって、学習単語の単語ベクトルから算出された勾配を用いて、追従単語の単語ベクトルを更新することができる。
【００８６】
学習部１１３は、終了条件が満たされるまで順方向伝播及び逆方向伝播の演算を繰り返し実行する。例えば、学習部１１３は、ロス関数の値の改善幅が閾値より小さい場合、又は、ロス関数の値が改善しなくなった場合、終了条件を満たすと判定する。また、学習部１１３は、順方向伝播及び逆方向伝播の演算回数が閾値より大きい場合、終了条件を満たすと判定する。
【００８７】
学習部１１３は、学習処理によって学習されたニューラルネットワークを文書識別モデルとして文書識別モデル記憶部１１７に出力する。以上がステップＳ１０４の処理の説明である。
【００８８】
次に、学習処理部１１０は、追従単語の解析処理を実行する（ステップＳ１０５）。追従単語の解析処理の詳細は図８を用いて説明する。
【００８９】
次に、学習処理部１１０は、表示情報を生成する（ステップＳ１０６）。その後、学習処理部１１０は、処理を終了する。
【００９０】
具体的には、単語ベクトル情報表示部１２２は、追従単語の解析結果を表示するための表示情報を生成する。また、単語ベクトル情報表示部１２２は、ユーザ端末１０１に表示情報を出力する。
【００９１】
図８は、実施例１の学習処理部１１０が実行する追従単語の解析処理の一例を説明するフローチャートである。
【００９２】
単語ベクトル比較部１２１は、ターゲット追従単語を選択する（ステップＳ２０１）。
【００９３】
次に、単語ベクトル比較部１２１は、学習処理の実行前のターゲット追従単語の単語ベクトル（初期単語ベクトル）を単語ベクトル記憶部１１６から取得し、また、学習処理の実行後のターゲット追従単語の単語ベクトルを文書識別モデルに含まれる単語行列から取得する（ステップＳ２０２）。
【００９４】
次に、単語ベクトル比較部１２１は、ターゲット追従単語の初期単語ベクトル及び更新された単語ベクトルの差の二乗ノルムを移動量として算出する（ステップＳ２０３）。
【００９５】
次に、単語ベクトル比較部１２１は、全ての追従単語の移動量を算出したか否かを判定する（ステップＳ２０４）。
【００９６】
全ての追従単語の移動量を算出していないと判定された場合、単語ベクトル比較部１２１は、ステップＳ２０１に戻り、同様の処理を実行する。
【００９７】
全ての追従単語の移動量を算出したと判定された場合、単語ベクトル比較部１２１は、移動量に基づいて、ユーザに提示する追従単語を選択する（ステップＳ２０５）。例えば、大きい順にｋ個の追従単語が選択される。ユーザに提示する追従単語の数は予め設定されているものとする。
【００９８】
次に、単語ベクトル比較部１２１は、選択された追従単語の学習前の近傍単語及び学習後の近傍単語を特定する（ステップＳ２０６）。具体的には、以下のような処理が実行される。
【００９９】
単語ベクトル比較部１２１は、単語ベクトル記憶部１１６から追従単語及び学習単語の初期単語ベクトルを取得し、取得した初期単語ベクトルを用いて追従単語及び学習単語の距離を算出する。距離は、例えば、ユークリッド距離及びコサイン距離等である。単語ベクトル比較部１２１は、算出された距離に基づいて、学習単語の中から、追従単語の近傍にあるｋ個の学習単語を近傍単語として特定する。
【０１００】
単語ベクトル比較部１２１は、文書識別モデルに含まれる単語行列から追従単語及び学習単語の単語ベクトルを取得し、取得した単語ベクトルを用いて追従単語及び学習単語の距離を算出する。単語ベクトル比較部１２１は、算出された距離に基づいて、学習単語の中から、追従単語の近傍にあるｋ個の学習単語を近傍単語として特定する。以上がステップＳ２０６の処理の説明である。
【０１０１】
次に、単語ベクトル比較部１２１は、選択された追従単語及び近傍単語を対応づけた情報を含む解析情報を生成し、単語ベクトル情報表示部１２２に解析情報を出力する（ステップＳ２０７）。その後、単語ベクトル比較部１２１は、処理を終了する。
【０１０２】
図９は、実施例１のユーザ端末１０１に表示されるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の一例を説明する図である。
【０１０３】
ＧＵＩ９００は、ユーザ端末１０１が表示情報に基づいて表示する画面である。ＧＵＩ９００には、追従単語解析表９１０が表示される。
【０１０４】
追従単語解析表９１０は、追従単語の解析結果を表示する表である。本実施例では、映画の英文のレビュー文書を用いた学習処理によって出力された解析結果を表す。
【０１０５】
追従単語解析表９１０は、順位９１１、単語９１２、移動量９１３、及び近傍単語９１４から構成されるレコードを含む。一つのレコードは、一つの追従単語に対応する。
【０１０６】
順位９１１は、レコードの順番を格納するフィールドである。本実施例では、移動量の大きい順にレコードがソートされ、移動量の大きい順に「１」から順に番号が割り当てられる。図９では、移動量の大きい順に５つの追従単語の解析結果が表示される。
【０１０７】
単語９１２は、追従単語を格納するフィールドである。移動量９１３は、追従単語の単語ベクトルの移動量を格納するフィールドである。
【０１０８】
近傍単語９１４は、追従単語の近傍にある学習単語を格納するフィールドである。近傍単語９１４の上の段は、学習前の追従単語の近傍にある学習単語を格納し、近傍単語９１４の下の段は、学習後の追従単語の近傍にある学習単語を格納する。近傍単語９１４に格納される単語は、距離が近い順にソートされている。
【０１０９】
本実施例のＧＵＩ９００では、学習によって追従単語及び学習単語の間の距離が変化しているものの、追従単語の近傍にある学習単語は学習の前後で変化していないことが分かる。
【０１１０】
ユーザは、追従単語解析表９１０を参照することによって、更新された追従単語、及び学習による意味の変化等を視覚的に確認することができる。これによって、追従単語の選択が正しいこと、学習単語の学習に追従できていること等を把握できる。
【０１１１】
また、ユーザは、追従単語解析表９１０に基づいて、追従単語の選択基準等、学習条件を変更することによって、識別精度の高い文書識別モデルを生成することができる。
【０１１２】
以上で説明したように、実施例１によれば、教師データに含まれない単語（追従単語）の単語ベクトルについても学習が可能となる。これによって、文書識別の精度を向上させることができる。また、追従単語に関する学習結果を提示することによって、追従単語の追従先の学習単語の選択基準等を確認することができる。
【０１１３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１１４】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１１５】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｐｙｔｈｏｎ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１１６】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１１７】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１１８】
１００  サーバ
１０１  ユーザ端末
１１０  学習処理部
１１１  入力部
１１２  追従単語選択部
１１３  学習部
１１４  ラベルあり文書記憶部
１１５  ラベルなし文書記憶部
１１６  単語ベクトル記憶部
１１７  文書識別モデル記憶部
１２０  単語ベクトル確認部
１２１  単語ベクトル比較部
１２２  単語ベクトル情報表示部
２０１  ＣＰＵ
２０２  主記憶装置
２０３  副記憶装置
２０４  ネットワークインタフェース
２０５  入力装置
２０６  出力装置
２１０  内部バス
３００  ラベルあり文書管理情報
４００  ラベルなし文書管理情報
５００  単語ベクトル管理情報
７００  単語行列
７０１  一方向フィルタ
７０２  ＣＮＮ
７０３  全結合層
７０４  Ｓｏｆｔｍａｘ関数
９００  ＧＵＩ
９１０  追従単語解析表
【図１】
2020027359.tif 000004
【図２】
2020027359.tif 000005
【図３】
2020027359.tif 000006
【図４】
2020027359.tif 000007
【図５】
2020027359.tif 000008
【図６】
2020027359.tif 000009
【図７】
2020027359.tif 000010
【図８】
2020027359.tif 000011
【図９】
2020027359.tif 000012