(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023132407
(43)【公開日】2023-09-22
(54)【発明の名称】制御プログラム、制御方法および情報処理装置
(51)【国際特許分類】
G06F 16/335 20190101AFI20230914BHJP
【FI】
G06F16/335
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022037698
(22)【出願日】2022-03-11
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】西村 駿人
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175HB03
(57)【要約】
【課題】処理対象とする文を適切な順番で提示できるようにする。
【解決手段】情報処理装置は、ユーザが閲覧した閲覧文を示す閲覧データから、閲覧文の特徴を示す閲覧特徴情報を取得する。情報処理装置は、ユーザが投稿した投稿文を示す投稿データから、投稿文の特徴を示す投稿特徴情報を取得する。情報処理装置は、処理対象の複数の対象文それぞれから、対象文の特徴を示す対象特徴情報を取得する。さらに情報処理装置は、複数の対象文それぞれについて、閲覧特徴情報よりも投稿特徴情報に大きな重みを付けて、閲覧特徴情報と投稿特徴情報との組に対する対象特徴情報の類似度を計算する。そして情報処理装置は、複数の対象文それぞれの類似度に基づいて、ユーザに処理対象として提示するための複数の対象文それぞれの優先度を決定する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ユーザが閲覧した閲覧文を示す閲覧データから、前記閲覧文の特徴を示す閲覧特徴情報を取得し、
前記ユーザが投稿した投稿文を示す投稿データから、前記投稿文の特徴を示す投稿特徴情報を取得し、
処理対象の複数の対象文それぞれから、対象文の特徴を示す対象特徴情報を取得し、
前記複数の対象文それぞれについて、前記閲覧特徴情報よりも前記投稿特徴情報に大きな重みを付けて、前記閲覧特徴情報と前記投稿特徴情報との組に対する前記対象特徴情報の類似度を計算し、
前記複数の対象文それぞれの前記類似度に基づいて、前記ユーザに処理対象として提示するための前記複数の対象文それぞれの優先度を決定する、
処理をコンピュータに実行させる制御プログラム。
【請求項2】
前記類似度を計算する処理では、前記対象特徴情報と前記閲覧特徴情報との類似度合いを示す第1の類似度を計算し、前記対象特徴情報と前記投稿特徴情報との類似度合いを示す第2の類似度を計算し、前記第2の類似度に対して重みを示す係数を乗算した値と前記第1の類似度との合計を、前記対象文の前記類似度とする、
請求項1記載の制御プログラム。
【請求項3】
前記閲覧特徴情報を取得する処理では、前記閲覧文に含まれる特徴的な語句を含む前記閲覧特徴情報を生成し、
前記投稿特徴情報を取得する処理では、前記投稿文に含まれる特徴的な語句を含む前記投稿特徴情報を生成し、
前記対象特徴情報を取得する処理では、前記対象文に含まれる特徴的な語句を含む前記対象特徴情報を生成し、
前記第1の類似度を計算する処理では、前記対象特徴情報と前記閲覧特徴情報とに含まれる語句の共通性に基づいて前記第1の類似度を計算し、
前記第2の類似度を計算する処理では、前記対象特徴情報と前記投稿特徴情報とに含まれる語句の共通性に基づいて前記第2の類似度を計算する、
請求項2記載の制御プログラム。
【請求項4】
前記投稿特徴情報を取得する処理では、前記投稿文を、質問を投稿する第1の投稿文と回答を投稿する第2の投稿文とに分類し、前記第1の投稿文の特徴を示す第1の投稿特徴情報と前記第2の投稿文の特徴を示す第2の投稿特徴情報とを取得し、
前記類似度を計算する処理では、前記第1の投稿特徴情報よりも前記第2の投稿特徴情報に大きな重みを付けて、前記対象文の前記類似度を計算する、
請求項1から3までのいずれかに記載の制御プログラム。
【請求項5】
前記投稿特徴情報を取得する処理では、質問に対する回答を投稿する前記投稿文を、良回答として選定されていない回答を投稿する第3の投稿文と、良回答として選定された回答を投稿する第4の投稿文に分類し、前記第3の投稿文の特徴を示す第3の投稿特徴情報と前記第4の投稿文の特徴を示す第4の投稿特徴情報とを取得し、
前記類似度を計算する処理では、前記第3の投稿特徴情報よりも前記第4の投稿特徴情報に大きな重みを付けて、前記対象文の前記類似度を計算する、
請求項1から4までのいずれかに記載の制御プログラム。
【請求項6】
ユーザが閲覧した閲覧文を示す閲覧データから、前記閲覧文の特徴を示す閲覧特徴情報を取得し、
前記ユーザが投稿した投稿文を示す投稿データから、前記投稿文の特徴を示す投稿特徴情報を取得し、
処理対象の複数の対象文それぞれから、対象文の特徴を示す対象特徴情報を取得し、
前記複数の対象文それぞれについて、前記閲覧特徴情報よりも前記投稿特徴情報に大きな重みを付けて、前記閲覧特徴情報と前記投稿特徴情報との組に対する前記対象特徴情報の類似度を計算し、
前記複数の対象文それぞれの前記類似度に基づいて、前記ユーザに処理対象として提示するための前記複数の対象文それぞれの優先度を決定する、
処理をコンピュータが実行する制御方法。
【請求項7】
ユーザが閲覧した閲覧文を示す閲覧データから、前記閲覧文の特徴を示す閲覧特徴情報を取得し、
前記ユーザが投稿した投稿文を示す投稿データから、前記投稿文の特徴を示す投稿特徴情報を取得し、
処理対象の複数の対象文それぞれから、対象文の特徴を示す対象特徴情報を取得し、
前記複数の対象文それぞれについて、前記閲覧特徴情報よりも前記投稿特徴情報に大きな重みを付けて、前記閲覧特徴情報と前記投稿特徴情報との組に対する前記対象特徴情報の類似度を計算し、
前記複数の対象文それぞれの前記類似度に基づいて、前記ユーザに処理対象として提示するための前記複数の対象文それぞれの優先度を決定する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラム、制御方法および情報処理装置に関する。
【背景技術】
【0002】
自然言語で記述された文について、その文の内容に関する情報の設定作業を人手で行うことがある。このような作業はアノテーション作業と呼ばれる。例えば教師あり機械学習を行う場合、訓練データを作成するためにアノテーション作業が行われる。アノテーション作業では、例えば多数の文(テキスト)に対して、その内容を示すラベルが付与される。
【0003】
文に対するアノテーション作業には、対象分野の知識が求められる場合がある。このような場合、記述内容を正しく理解できる作業者によってアノテーションが行われるのが好ましい。例えば文内の化学物質の固有表現に対してタグを付与する場合、ソフトウェア開発文書への含意関係を付与する場合などは、対象分野に関する十分な知識が求められる。そのためには、作業者がどの分野に関して多くの知識を有しているのかを適確に把握することが重要となる。
【0004】
ユーザの興味などの属性を推定する技術としては、例えばユーザのユーザ属性情報を精度よく推定するためのユーザ属性推定器を得ることができるようにするユーザ属性推定方法が提案されている。また利用者に対して案内する内容を変化させていく際に、個々の利用者の習熟度に応じて、出力内容の変化の仕方を異なるものとすることで、種々の利用者にとって、より操作しやすい案内装置を提供する案内装置も提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2014-153934号公報
【特許文献2】特開2018-124938号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
人手によるアノテーション作業などの知的作業の負荷の軽減策として、例えば作業者の知識に応じた内容の文を、処理対象としてその作業者に提示することが考えられる。作業者が十分な知識を有する分野に関する文を処理対象としてその作業者に提示することができれば、作業負荷の軽減が図れる。また作業者が十分な知識を有する分野に関する文を提示することで、質の高い作業結果を得ることも可能となる。しかし従来技術では、作業者が習熟している分野に応じた内容の文がどれなのかを十分な精度で判断することができない。そのため、処理対象とする文を適切な順番で提示することが困難となっている。
【0007】
1つの側面では、本件は、処理対象とする文を適切な順番で提示できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、以下の処理をコンピュータに実行させる制御プログラムが提供される。
コンピュータは、ユーザが閲覧した閲覧文を示す閲覧データから、閲覧文の特徴を示す閲覧特徴情報を取得する。コンピュータは、ユーザが投稿した投稿文を示す投稿データから、投稿文の特徴を示す投稿特徴情報を取得する。コンピュータは、処理対象の複数の対象文それぞれから、対象文の特徴を示す対象特徴情報を取得する。コンピュータは、複数の対象文それぞれについて、閲覧特徴情報よりも投稿特徴情報に大きな重みを付けて、閲覧特徴情報と投稿特徴情報との組に対する対象特徴情報の類似度を計算する。そしてコンピュータは、複数の対象文それぞれの類似度に基づいて、ユーザに処理対象として提示するための複数の対象文それぞれの優先度を決定する。
【発明の効果】
【0009】
1態様によれば、処理対象とする文を適切な順番で提示することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施の形態に係る制御方法の一例を示す図である。
【
図3】アノテーションサーバのハードウェアの一例を示す図である。
【
図5】アノテーション作業支援のために各装置が有する機能の一例を示すブロック図である。
【
図6】ログ記憶部に格納されている閲覧・投稿ログの一例を示す図である。
【
図8】問題文特徴語取得処理の一例を示す図である。
【
図10】対閲覧類似度の第1の計算例を示す図である。
【
図11】対閲覧類似度の第2の計算例を示す図である。
【
図13】作業者の熟知分野に対する類似度の計算例を示す図である。
【
図14】重み付けの有無による類似度の違いを説明する図である。
【
図15】アノテーション支援処理の手順を示すフローチャートの前半である。
【
図16】アノテーション支援処理の手順を示すフローチャートの後半である。
【
図17】特徴語取得処理の手順の一例を示すフローチャートである。
【
図18】アノテーション作業画面の一例を示す図である。
【
図19】問題文の所定の箇所へのラベル付与処理の一例を示す図である。
【
図20】Q&Aサイトの投稿ログを利用した類似度計算処理の一例を示す図である。
【
図21】第3の実施の形態におけるアノテーション支援処理の手順を示すフローチャートの前半である。
【
図22】第3の実施の形態におけるアノテーション支援処理の手順を示すフローチャートの後半である。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
ユーザに処理させる処理対象の複数の文を、ユーザの知識に応じた適切な順番で処理対象として提示するための、処理対象文の制御方法である。
【0012】
図1は、第1の実施の形態に係る制御方法の一例を示す図である。
図1には、制御方法を実施するための情報処理装置10が示されている。情報処理装置10は、例えば制御プログラムを実行することにより、制御方法を実施することができる。
【0013】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0014】
記憶部11は、閲覧データ1、投稿データ2、および対象文データ3を記憶する。閲覧データ1は、作業を行うユーザ(
図1の例では「ユーザA)が閲覧した閲覧文を示すデータである。投稿データ2は、作業を行うユーザが投稿した投稿文を示すデータである。対象文データ3は、処理対象の複数の対象文を含むデータである。対象文には例えば文番号が付与されており、この文番号で識別される。
【0015】
処理部12は、閲覧データ1および投稿データ2を対象文データ3内の複数の対象文それぞれと比較することで、複数の対象文のうち、作業を行うユーザが熟知している分野に類似する内容の対象文を優先的にそのユーザに提示する。そのために処理部12は以下の処理を実行する。
【0016】
処理部12は、閲覧データ1から、閲覧文の特徴を示す閲覧特徴情報4を取得する。例えば処理部12は、閲覧文に含まれる特徴的な語句を含む閲覧特徴情報4を生成する。
図1の例では、閲覧文に「株価」の語句が含まれており、この語句を含む閲覧特徴情報4が生成されている。
【0017】
また処理部12は、投稿データ2から、投稿文の特徴を示す投稿特徴情報5を取得する。例えば処理部12は、投稿文に含まれる特徴的な語句を含む投稿特徴情報5を生成する。
図1の例では、投稿文に「料理」の語句が含まれており、この語句を含む投稿特徴情報5が生成されている。
【0018】
さらに処理部12は、処理対象の複数の対象文それぞれから、対象文の特徴を示す対象特徴情報6~8を取得する。例えば処理部12は、対象文に含まれる特徴的な語句を含む対象特徴情報6~8を生成する。
図1の例では、文番号「1」の対象文には「株価」の語句が含まれており、この語句を含む対象特徴情報6が生成されている。文番号「2」の対象文には「料理」の語句が含まれており、この語句を含む対象特徴情報7が生成されている。文番号「3」の対象文には「科学」の語句が含まれており、この語句を含む対象特徴情報8が生成されている。
【0019】
処理部12は、複数の対象文それぞれについて、閲覧特徴情報4よりも投稿特徴情報5に大きな重みを付けて、閲覧特徴情報4と投稿特徴情報5との組に対する対象特徴情報6~8の類似度を計算する。例えば処理部12は、対象特徴情報6~8と閲覧特徴情報4との類似度合いを示す第1の類似度を計算する。また処理部12は、対象特徴情報6~8と投稿特徴情報5との類似度合いを示す第2の類似度を計算する。そして処理部12は、第2の類似度に対して重みを示す係数nを乗算した値と第1の類似度との合計を、対象文の類似度とする。重みを示す係数nは、1より大きな実数である。
【0020】
閲覧特徴情報4、投稿特徴情報5、対象特徴情報6~8それぞれに、元の文の特徴的な語句が含まれている場合、処理部12は、例えば特徴的な語句の共通性に基づいて、第1の類似度と第2の類似度とを計算することができる。例えば処理部12は、対象特徴情報6~8と閲覧特徴情報4とに含まれる語句の共通性に基づいて第1の類似度を計算する。また処理部12は、対象特徴情報6~8と投稿特徴情報5とに含まれる語句の共通性に基づいて第2の類似度を計算する。
【0021】
図1の例では、文献番号「1」の対象特徴情報6は、閲覧特徴情報4との共通の語句「株価」を有している。対象特徴情報6と投稿特徴情報5とで共通の語句がない場合、対象特徴情報6については、第1の類似度が第2の類似度よりも大きくなる。また文献番号「2」の対象特徴情報7は、投稿特徴情報5との共通の語句「料理」を有している。対象特徴情報7と閲覧特徴情報4とで共通の語句がない場合、対象特徴情報7については、第2の類似度が第1の類似度よりも大きくなる。最終的な類似度の計算では、第2の類似度に大きな重み付けがされるため、文献番号「1」の対象文の類似度よりも、文献番号「2」の対象文の類似度の方が大きくなる。
【0022】
そして処理部12は、複数の対象文それぞれの類似度に基づいて、ユーザに処理対象として提示するための複数の対象文それぞれの優先度を決定する。例えば処理部12は、対象文を類似度で並べ替え、並べ替え後に上位の対象文(類似度が高い対象文)ほどユーザへ提示する優先度を高くする。
【0023】
このようにして、ユーザが熟知する分野に類似する内容の対象文を、優先的にユーザによる処理対象として提示することができる。すなわち閲覧データ1だけでは、ユーザが興味を持っている分野の特徴は分かるが、その分野の習熟した知識をユーザが有しているかどうかは判別できない。投稿データ2には、ユーザが他人に説明できるだけの知識を有する分野の情報が含まれているため、投稿データ2を利用することでユーザが習熟した知識を有する分野の特徴を抽出できる。このとき閲覧データ1と投稿データ2とを同等に扱うと、ユーザが深い知識を有していない分野の閲覧文が多い場合に、その分野の対象文について、他の対象文よりも類似度が高くなってしまう可能性がある。重み付けによって、投稿データ2に示される投稿文の特徴が類似度に強く反映されるようにすることで、ユーザが熟知している分野の内容を有する対象文の提示の優先順を高めることができる。
【0024】
しかも他のユーザとの相対的な比較を行わずに、作業を行うユーザに関する閲覧データ1と投稿データ2のみから、対象文の類似度を決めることができる。そのため、作業を行うユーザの絶対値として対象文の類似度を求めることができ、得られる類似度は、他のユーザの閲覧などの行動に左右されない信頼度の高い値となる。
【0025】
しかも重み付けとして第2の類似度に対して係数を乗算するようにすることで、係数の値によって重みの大きさを容易に設定することができる。例えばユーザが行う作業が、対象文の内容に対して極めて深い知識を有するものが行う作業であれば、重みを示す係数の値を大きくし、閲覧データ1の影響を低下させることができる。
【0026】
また各文の特徴を示す情報として特徴を示す語句を用いることで、語句の共通性によって類似度を計算することができる。これにより適切な類似度の計算が容易となる。
なお投稿データ2に示される投稿文には、他のユーザに何らかのことがらについて質問する投稿文と、他のユーザの質問に対して回答する投稿文が含まれることがある。そこで処理部12は、質問の投稿文の特徴よりも回答の投稿文の特徴に大きな重みを付けて類似度を計算してもよい。
【0027】
例えば処理部12は、投稿文を、質問を投稿する第1の投稿文と回答を投稿する第2の投稿文とに分類する。次に処理部12は、第1の投稿文の特徴を示す第1の投稿特徴情報と第2の投稿文の特徴を示す第2の投稿特徴情報とを取得する。そして処理部12は、第1の投稿特徴情報よりも第2の投稿特徴情報に大きな重みを付けて、対象文の類似度を計算する。
【0028】
ユーザによる質問の投稿文で示される分野については、そのユーザは、知識を得ようという意欲はあるが、まだ十分な知識を身につけていないものと考えられる。それに対して、ユーザによる回答の投稿文に示される分野については、そのユーザは、他のユーザの知らない知識について説明できるだけの知識を既に身につけているものと考えられる。そのため質問の投稿文の特徴よりも回答の投稿文の特徴により大きな重み付けを行うことで、ユーザが身につけている知識の分野に類似する対象文に関する類似度を高くすることができる。その結果、より適切な順番でユーザに対象文を提示することができる。
【0029】
また回答の投稿文の中には、他のユーザから良回答として選定されている投稿文が含まれることもある。そこで処理部12は、良回答以外の投稿文の特徴よりも良回答の投稿文の特徴に対してより大きな重み付けを行い、類似度を計算してもよい。
【0030】
例えば処理部12は、質問に対する回答を投稿する投稿文を、良回答として選定されていない回答を投稿する第3の投稿文と、良回答として選定された回答を投稿する第4の投稿文に分類する。さらに処理部12は、第3の投稿文の特徴を示す第3の投稿特徴情報と第4の投稿文の特徴を示す第4の投稿特徴情報とを取得する。そして処理部12は、第3の投稿特徴情報よりも第4の投稿特徴情報に大きな重みを付けて、対象文の類似度を計算する。
【0031】
他のユーザから良回答として選定された回答の投稿文を投稿したユーザは、その投稿文の内容に示される分野について、他の多数のユーザよりも詳しいものと考えられる。そのため、良回答以外の回答の投稿文の特徴よりも良回答の投稿文の特徴に対して大きな重み付けを行うことで、良回答の投稿をしたユーザが熟知している分野の特徴を、類似度の計算により強く反映させることができる。その結果、より適切な順番でユーザに対象文を提示することができる。
【0032】
〔第2の実施の形態〕
第2の実施の形態は、機械学習の訓練データに対するアノテーション作業を効率的に行うことができるようにアノテーション作業を支援するシステムである。なお、以下の説明では、アノテーション対象の文(テキスト)を問題文と呼ぶこととする。
【0033】
図2は、システム構成の一例を示す図である。アノテーション作業を支援するシステムでは、アノテーションサーバ100、コミュニケーションサーバ200、および複数の端末31,32,・・・が、ネットワーク20を介して接続されている。
【0034】
アノテーションサーバ100は、問題文に対するアノテーション作業を支援するコンピュータである。コミュニケーションサーバ200は、ユーザ間でのオンラインコミュニケーションを支援するコンピュータである。端末31,32,・・・は、アノテーション作業を行う作業者またはその他のユーザが使用するコンピュータである。
【0035】
アノテーションサーバ100は、作業者が熟知した分野に対応する問題文を、アノテーション対象として作業者に提示する。その際、アノテーションサーバ100は、作業者が知識を有する分野に対する問題文の類似度を、他の作業者との相対的な値ではなく絶対的な値として求める。例えばアノテーションサーバ100は、コミュニケーションサーバ200から作業者の知識に関する情報を取得し、取得した情報と問題文との類似度により、その問題文に記載された分野と作業者が知識を有する分野との類似度を算出する。その際、アノテーションサーバ100は、作業者の知識として、その作業者の「興味」だけでなく、詳細な「知識」も反映させる。このような作業者が熟知する分野の問題文を、アノテーション作業対象の問題文として提示することで、作業者の作業負荷を軽減することができる。
【0036】
図3は、アノテーションサーバのハードウェアの一例を示す図である。アノテーションサーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0037】
メモリ102は、アノテーションサーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0038】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0039】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、アノテーションサーバ100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0040】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0041】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0042】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0043】
機器接続インタフェース107は、アノテーションサーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0044】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0045】
アノテーションサーバ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、
図3に示したアノテーションサーバ100と同様のハードウェアにより実現することができる。
【0046】
アノテーションサーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。アノテーションサーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、アノテーションサーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またアノテーションサーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0047】
このようなシステムを利用して、作業者はアノテーション作業を行うことができる。例えば作業者は端末31を用いてアノテーションサーバ100にアクセスしてアノテーション作業を実施する。
【0048】
図4は、アノテーション作業の一例を示す図である。
図4の例では、アノテーション作業を行う作業者41は、化学について豊富な知識を有しているものとする。この場合、作業者41は端末31を操作し、アノテーションサーバ100に対して、アノテーション対象の問題文の提示を要求する。するとアノテーションサーバ100は、アノテーション対象の複数の問題文を、化学に関係する問題文が上位になるように並べ替える。そしてアノテーションサーバ100は、上位の問題文から順に、アノテーション対象の問題文として端末31に送信する。送信された問題文は、端末31の画面に表示される。
【0049】
作業者41は、端末31の画面に表示された問題文の内容を確認し、その問題文へのラベル付けの操作入力を、端末31に対して行う。端末31は、ラベルを付与した問題文をアノテーションサーバ100に送信する。このようにしてアノテーション作業が行われる。この際、アノテーションサーバ100は、作業者41が有している知識に応じた問題文を優先的にアノテーション作業の対象として提示する。そのために、アノテーションサーバ100は、作業者41によるコミュニケーションサーバ200の利用状況に基づいて、作業者41が熟知している分野を判断する。
【0050】
例えばアノテーションサーバ100は、作業者41の熟知している分野の判断要素として、作業者の「興味」と、作業者が教示可能な「知識」とを用いる。アノテーションサーバ100は、作業者41の「興味」を作業者41の閲覧ログから推定し、作業者が教示可能な「知識」を作業者の投稿ログから推定する。すなわち、作業者の閲覧内容と比較して、投稿内容は、作業者の熟知する分野を強く反映していると考えることができる。そこでアノテーションサーバ100は、閲覧ログと比較して投稿ログに重みを付けて、作業者が熟知する分野を示す情報と問題文との類似度計算に利用する。
【0051】
作業者の熟知する分野が投稿内容に強く反映されていると考えることができる理由は次の通りである。例えば個人の語彙に着目する。個人が話したり書いたりするときに使うことのできる語彙集合(使用語彙)は、その個人が理解できる語彙集合(理解語彙)よりも少ない。そして作業者の理解語彙と比較して、作業者の使用語彙は実際に運用された結果である。これらのことから、作業者の使用語彙には、作業者の持つ知識がより反映されていると考えることができる。
【0052】
そこでアノテーションサーバ100は、作業者の閲覧活動は、興味がある分野に向けられており、作業者の投稿活動は、知識がある分野に向けられていると仮定して、作業者が熟知する分野と問題文との類似度を計算する。そしてアノテーションサーバ100は、作業者が熟知する分野との類似度が高い問題文を優先的に、その作業者のアノテーション作業対象の問題文として提示する。
【0053】
図5は、アノテーション作業支援のために各装置が有する機能の一例を示すブロック図である。コミュニケーションサーバ200は、コミュニケーション管理部210とログ記憶部220とを有する。コミュニケーション管理部210は、作業者41と他のユーザとが端末31,32,33,・・・を用いてオンラインでコミュニケーションを図るための場を提供する。例えばコミュニケーション管理部210は、掲示板サイト、Q&A(Question&Answer)サイトなどのサービスを提供する。コミュニケーション管理部210は、ユーザからの投稿があると、投稿内容をログ記憶部220に格納する。またコミュニケーション管理部210は、ユーザから情報が閲覧されると、閲覧された情報の内容をログ記憶部220に格納する。
【0054】
ログ記憶部220は、複数のユーザそれぞれの投稿内容および閲覧内容を記憶する。例えば作業者41のユーザ名が「ユーザA」の場合、ログ記憶部220には、ユーザ名「ユーザA」に対応付けて、作業者41が投稿した文(投稿ログ)、および作業者41が閲覧した文(閲覧ログ)が格納されている。
【0055】
アノテーションサーバ100は、作業者ログ取得部110、閲覧ログ記憶部120、投稿ログ記憶部130、作業者特徴取得部140、作業者特徴記憶部150、問題文記憶部160、問題文特徴取得部170、類似度計算部180、およびアノテーション管理部190を有する。
【0056】
作業者ログ取得部110は、コミュニケーションサーバ200から作業者41の投稿ログおよび閲覧ログを取得する。作業者ログ取得部110は、取得した閲覧ログを閲覧ログ記憶部120に格納する。また作業者ログ取得部110は、取得した投稿ログを投稿ログ記憶部130に格納する。閲覧ログ記憶部120は、作業者41の閲覧ログを記憶する。投稿ログ記憶部130は、作業者41の投稿ログを記憶する。
【0057】
作業者特徴取得部140は、作業者41の閲覧ログと投稿ログとに基づいて、作業者41の知識の特徴を取得する。例えば作業者特徴取得部140は、作業者の閲覧ログおよび投稿ログの内容から特徴語を抽出する。特徴語は、例えば閲覧ログおよび投稿ログの形態素解析によって得られる特定の品詞の語句である。また作業者特徴取得部140は、TF-IDF(Term Frequency - Inverse Document Frequency)法により特徴語を取得してもよい。作業者特徴取得部140は、TF-IDF法で作成された辞書を利用して特徴語を取得することもできる。なおTF-IDF法を利用する場合、作業者特徴取得部140は、作業者41以外のユーザの閲覧ログおよび投稿ログも参照して、各単語のIDFの値を計算する。作業者特徴取得部140は、作業者41の閲覧ログの特徴語と投稿ログの特徴語とを分けて、作業者特徴記憶部150に格納する。作業者特徴記憶部150は、作業者41が閲覧した情報の特徴語と、作業者41が投稿した問題文の特徴語とを記憶する。
【0058】
問題文記憶部160は、アノテーション作業の対象となる問題文を記憶する。
問題文特徴取得部170は、問題文記憶部160に格納されている問題文それぞれから特徴語を取得する。例えば問題文特徴取得部170は、問題文内の文字列の形態素解析を行い、所定の品詞の単語を抽出する。また問題文特徴取得部170は、TF-IDF法により特徴語を取得してもよい。
【0059】
類似度計算部180は、作業者41が知識を有する分野を特徴づける特徴語と各問題文の特徴語とに基づいて、作業者41の知識と各問題文との類似度を計算する。例えば類似度計算部180は、閲覧した情報と比較して投稿した情報はより作業者41の知識を示すという仮定をもとに、投稿ログ中に含まれる特徴語に対して重み付けを行い、類似度を計算する。
【0060】
アノテーション管理部190は、アノテーション対象の問題文それぞれの類似度に基づいて、上位の問題文から降順に作業者にアノテーション作業対象として出題する。例えばアノテーション管理部190は、ユーザ名「ユーザA」が作業者41であることが予め分かっている場合、作業者41の特徴に対する各問題文の類似度を予め取得して記憶しておく。そしてアノテーション管理部190は、作業者41が使用する端末31からアノテーションの出題要求を取得すると、類似度が高い問題文から順に端末31に送信する。
【0061】
なお、
図5に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、
図5に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0062】
図6は、ログ記憶部に格納されている閲覧・投稿ログの一例を示す図である。例えばログ記憶部220には、ユーザごとの閲覧・投稿ログ221,222,・・・が格納されている。閲覧・投稿ログ221には、ユーザ名「ユーザA」である作業者41の閲覧ログおよび投稿ログが含まれる。
【0063】
閲覧・投稿ログ221には、例えば作業者41が閲覧または投稿した問題文の本文内容が含まれている。本文内容は、例えば自然言語で記述されたテキストである。各本文内容に対応付けて、種別が設定されている。種別は「閲覧」または「投稿」である。作業者41が閲覧した問題文の本文内容には種別「閲覧」と設定される。また作業者41が投稿した問題文の本文内容には種別「投稿」と設定される。
【0064】
ユーザ名「ユーザA」の作業者41の知識の特徴を求めるため、アノテーションサーバ100は、「ユーザA」の閲覧・投稿ログ221をコミュニケーションサーバ200から取得する。そしてアノテーションサーバ100は、作業者41の知識の特徴を示す特徴語を取得する。
【0065】
図7は、特徴語取得処理の一例を示す図である。アノテーションサーバ100の作業者ログ取得部110は、コミュニケーションサーバ200のログ記憶部220から作業者41の閲覧・投稿ログ221を取得する。作業者ログ取得部110は、取得した閲覧・投稿ログ221の各本文内容を、その本文内容に設定されている種別に基づいて、閲覧ログと投稿ログに分類する。そして作業者ログ取得部110は、種別「閲覧」の本文内容を、閲覧ログとして閲覧ログ記憶部120に格納する。また作業者ログ取得部110は、種別「投稿」の本文内容を、投稿ログとして投稿ログ記憶部130に格納する。
【0066】
作業者特徴取得部140は、閲覧ログ記憶部120に格納された作業者41の閲覧ログから、作業者41が興味を有している分野を示す閲覧特徴語を取得する。作業者特徴取得部140は、取得した閲覧特徴語を作業者特徴記憶部150内の閲覧特徴語リスト151に設定する。また作業者特徴取得部140は、投稿ログ記憶部130に格納された作業者41の投稿ログから、作業者41が知識を有している分野を示す投稿特徴語を取得する。作業者特徴取得部140は、取得した投稿特徴語を作業者特徴記憶部150内の投稿特徴語リスト152に設定する。
【0067】
作業者特徴記憶部150は、作業者41の閲覧ログから取得された閲覧特徴語リスト151と、作業者41の投稿特徴語リスト152から取得された投稿特徴語リスト152とを記憶する。
【0068】
このようにして、作業者41の興味および知識を示す特徴語が取得される。閲覧特徴語リスト151と投稿特徴語リスト152には、作業者41が興味を有しているかまたは熟知している分野の用語が多く含まれる。
図7の例では、閲覧特徴語リスト151と投稿特徴語リスト152とには、料理に関する用語が多い。そのため、作業者41は、料理について興味があり、知識もあることが分かる。また投稿特徴語リスト152には、卵の文字が多く含まれる。そのため、作業者41は、特に卵料理について詳しいことが分かる。
【0069】
他方、問題文記憶部160からは、アノテーション対象の問題文ごとの特徴語(問題文特徴語)を取得することができる。各問題文の問題文特徴語は、その問題文の本文に記載されている内容が属する分野を示している。
【0070】
図8は、問題文特徴語取得処理の一例を示す図である。問題文記憶部160には、例えば問題文の識別子であるテキストIDに対応付けて、該当問題文の本文に記載されたテキストが登録されている。問題文特徴取得部170は、問題文ごとに、本文から問題文特徴語を取得する。そして問題文特徴取得部170は、各問題文から取得した問題文特徴語を、その問題文のテキストIDに対応付けた問題文別特徴語リスト171を出力する。類似度計算部180は、問題文別特徴語リスト171に基づいて、問題文ごとの類似度を計算する。
【0071】
図9は、類似度計算処理の一例を示す図である。類似度計算部180は、問題文ごとに、その問題文の問題文特徴語を、作業者41の閲覧特徴語および投稿特徴語と比較する。そして、類似度計算部180は、問題文の特徴と作業者41の知識がある分野の特徴との類似度を算出する。類似度を算出する際、類似度計算部180は、問題文の特徴語と投稿特徴語との類似度(対投稿類似度)が問題文の特徴語と閲覧特徴語との類似度(対閲覧類似度)よりも強く反映されるように重み付けを行う。類似度計算部180は、問題文ごとに求めた類似度をその問題文のテキストIDに対応付けた類似度データ181を出力する。出力された類似度データ181は、アノテーション管理部190に送信される。
【0072】
類似度の計算方法には、例えばコサイン類似度を用いることができる。例えば類似度計算部180は、問題文の特徴語と閲覧特徴語とのコサイン類似度(対閲覧類似度)を計算する。また類似度計算部180は、問題文の特徴語と投稿特徴語とのコサイン類似度(対投稿類似度)を計算する。以下、
図10~
図13を参照し、コサイン類似度を用いた場合の類似度算出方法を詳細に説明する。
【0073】
図10は、対閲覧類似度の第1の計算例を示す図である。
図10には、テキストID「1」の問題文の特徴語と閲覧特徴語リストとの対閲覧類似度の計算例が示されている。類似度計算部180は、閲覧特徴語リスト151からすべての閲覧特徴語を抽出する。
図10の例では、閲覧特徴語「サーバーレス、マイクロサービス、Bot、株価、チャット、料理、レシピ、インターネット、みりん、照焼」が抽出されている。また類似度計算部180は、問題文別特徴語リスト171からテキストID「1」の問題文特徴語を抽出する。
図10の例では、テキストID「1」の問題文特徴語「料理、ぶり、照焼、みりん、レシピ」が抽出されている。
【0074】
類似度計算部180は、閲覧特徴語と問題文特徴語とについて、抽出された用語それぞれの有無を示すベクトルデータを生成する。例えばベクトルデータには11個の要素が含まれる。各要素は、左から順に「サーバーレス、マイクロサービス、Bot、株価、チャット、料理、レシピ、インターネット、ぶり、照焼、みりん」に対応する。
【0075】
閲覧特徴語を示すベクトルデータx
viewは「x
view=(1,1,1,1,1,1,1,1,0,1,1)」である。テキストID「1」の問題文特徴語を示すベクトルデータx
1は「x
1=(0,0,0,0,0,1,1,0,1,1,1)」である。ベクトルデータの要素の値「1」は、その要素に対応する単語が特徴語として含まれていることを示す。ベクトルデータの要素の値「0」は、その要素に対応する単語が特徴語として含まれていないことを示す。これらのベクトルデータの対閲覧類似度「simcos(x
view,x
1)」は以下の式で計算できる。
simcos(x
view,x
1)=(x
view・x
1)/(|x
view|・|x
1|)
図10の例では「x
view・x
1=4」、「|x
view|=10
1/2」、「|x
1|=5
1/2」である。するとテキストID「1」の問題文の対閲覧類似度は「simcos(x
view,x
1)=4/(10
1/2×5
1/2)≒0.56」となる。
【0076】
同様に他の問題文についても対閲覧類似度が計算される。
図11は、対閲覧類似度の第2の計算例を示す図である。
図11には、テキストID「2」の問題文の対閲覧類似度の計算例、およびテキストID「3」の問題文の対閲覧類似度の計算例が示されている。テキストID「2」の問題文特徴語は「卵、料理、オムレツ」である。またテキストID「3」の問題文特徴語は「日銀総裁、ETF、日経平均、株価」である。
【0077】
テキストID「2」の問題文の対閲覧類似度は「simcos(xview,x2)=(xview・x2)/(|xview|・|x2|)=1/(101/2×31/2)≒0.18」である。テキストID「3」の問題文の対閲覧類似度は「simcos(xview,x3)=(xview・x3)/(|xview|・|x3|)=1/(101/2×2)≒0.16」である。
【0078】
このようにして複数の問題文それぞれについて対閲覧類似度が計算される。同様にして、複数の問題文それぞれについて対投稿類似度も計算される。
図12は、対投稿類似度の計算例を示す図である。類似度計算部180は、投稿特徴語リスト152からすべての投稿特徴語を抽出する。
図12の例では、投稿特徴語「スパニッシュ、卵、片栗粉、Bot、クラウドサービス」が抽出されている。そして、投稿特徴語を示すベクトルデータx
postを用いて、複数の問題文それぞれの対投稿類似度が計算される。
【0079】
テキストID「1」の問題文の対投稿類似度は「simcos(xpost,x1)=0」である。テキストID「2」の問題文の対投稿類似度は「simcos(xpost,x2)=(xpost・x2)/(|xpost|・|x2|)=1/(51/2×31/2)≒0.26」である。テキストID「3」の問題文の対投稿類似度は「simcos(xpost,x3)=0」である。
【0080】
このようにして複数の問題文それぞれについて対投稿類似度が計算される。類似度計算部180は、問題文ごとに、その問題文の対閲覧類似度と対投稿類似度に基づいて、作業者41の熟知分野に対する類似度を計算する。
【0081】
図13は、作業者の熟知分野に対する類似度の計算例を示す図である。例えば類似度計算部180は、対閲覧類似度と対投稿類似度との計算結果に基づいて、問題文ごとの対閲覧類似度を示す対閲覧類似度データ182と、問題文ごとの対投稿類似度を示す対投稿類似度データ183とを生成する。そして類似度計算部180は、対閲覧類似度データ182と対投稿類似度データ183とに基づいて、作業者の熟知分野に対する問題文ごとの類似度を計算する。例えば特定のテキストIDの問題文特徴語をx
IDとしたとき、類似度は以下の式で計算することができる。
類似度=simcos(x
view,x
ID)+n×simcos(x
post,x
ID)
ここでnは、対投稿類似度に対する重みを示す係数であり、1<nの実数である。係数nを「2」とした場合、テキストID「1」の問題文の類似度は、「simcos(x
view,x
1)+n×simcos(x
post,x
1)=0.56+2×0=0.56」となる。テキストID「2」の問題文の類似度は、「simcos(x
view,x
2)+n×simcos(x
post,x
2)=0.18+2×0.26=0.70」となる。テキストID「3」の問題文の類似度は、「simcos(x
view,x
3)+n×simcos(x
post,x
3)=0.16+2×0=0.16」となる。類似度計算部180は、各問題文の類似度の計算が完了すると、問題文のテキストIDに対応付けてその問題文の類似度が設定された類似度データ181を生成する。
【0082】
このようにして、類似度データ181が生成される。生成された類似度データ181は、アノテーション管理部190に送信される。アノテーション管理部190は、類似度データ181に示される問題文を、例えば類似度順(降順)に並べ替える。アノテーション管理部190は、並べ替えられた問題文を、上位(類似度が高い)方から順に並べ替え、アノテーション対象の問題文として作業者41が使用する端末31に送信する。
【0083】
このように対投稿類似度に対して、1より大きな重み付けを行うことで、作業者41の熟知分野と問題文との類似度を適切に計算することができ、作業者41が熟知する分野の問題文を上位に表示することができる。
【0084】
図14は、重み付けの有無による類似度の違いを説明する図である。
図14では、対投稿類似度の重みの係数を「2」とした場合(n=2)と、対投稿類似度の重みの係数を「1」(重みなし)とした場合(n=1)とにおける、テキストID「1」~「3」の各問題文の類似度の計算例を示している。重みを「2」とした場合の各問題文の類似度は
図13に示した通りである。他方、重みなしの場合の各問題文の類似度は、テキストID「1」の問題文が「0.56」、テキストID「2」の問題文が「0.44」、テキストID「3」の問題文が「0.16」となる。
【0085】
重み付けを行った場合の類似度データ181に示される問題文を類似度で並べ替えると、テキストID「2」、「1」、「3」の順となる。他方、重み付けを行わない場合の類似度データ181aに示される問題文を類似度で並べ替えると、テキストID「1」、「2」、「3」の順となる。
【0086】
作業者41の閲覧・投稿ログ221(
図6参照)によると、作業者41は料理に詳しく、特に卵料理に関する知識が豊富であるものと考えられる。他方、問題文記憶部160内の各問題文の本文(
図8参照)の記載のうち、テキストID「2」の問題文には、卵料理に関する情報が記載されている。
図14に示すように、対投稿類似度に対して1より大きな重み付けを行うことで、作業者41が熟知する分野(卵料理)に関連する問題文(テキストID「2」)が、アノテーション対象として優先的に端末31に表示される。すなわち、作業者41が熟知する分野の問題文が、アノテーション対象として上位で出題される。その結果、作業者41は、自身の熟知する分野の問題文のアノテーションを効率的に行うことができる。他方、重み付けを行わない場合、作業者41が特に詳しい分野に関する情報がアノテーション対象の問題文の提示順に反映されない。
【0087】
以下、フローチャートを参照し、アノテーション支援処理の手順について詳細に説明する。
図15は、アノテーション支援処理の手順を示すフローチャートの前半である。以下、
図15に示す処理をステップ番号に沿って説明する。なおアノテーション支援処理は、例えば所定の日時に実行される。また作業者41が使用する端末31からのアノテーション対象の問題文の取得要求に応じてアノテーション支援処理を実行してもよい。
【0088】
[ステップS101]作業者ログ取得部110は、コミュニケーションサーバ200から作業者41の閲覧・投稿ログ221を取得する。
[ステップS102]作業者ログ取得部110は、ステップS103~S105の処理を、ログ(閲覧ログまたは投稿ログ)の件数分だけ繰り返す。
【0089】
[ステップS103]作業者ログ取得部110は、閲覧・投稿ログ221内のログを上位から順に処理対象とし、処理対象のログが投稿ログか否かを判断する。例えば作業者ログ取得部110は、処理対処のログの種別が「投稿」であれば、投稿ログであると判断する。作業者ログ取得部110は、投稿ログであれば処理をステップS104に進める。また作業者ログ取得部110は、閲覧ログであれば処理をステップS105に進める。
【0090】
[ステップS104]作業者ログ取得部110は、処理対象のログの本文内容を投稿ログ記憶部130に格納する。その後、作業者ログ取得部110は処理をステップS106に進める。
【0091】
[ステップS105]作業者ログ取得部110は、処理対象のログの本文内容を閲覧ログ記憶部120に格納する。
[ステップS106]作業者ログ取得部110は、閲覧・投稿ログ221内のすべてのログについて処理が完了した場合、処理をステップS107に進める。作業者ログ取得部110は、未処理のログがあれば、ステップS103~S105の処理を繰り返す。
【0092】
[ステップS107]作業者特徴取得部140は、閲覧ログ記憶部120内の閲覧ログ記憶部120と投稿ログ記憶部130の投稿ログとから、各ログの本文を示すテキストを取得する。
【0093】
[ステップS108]作業者特徴取得部140は、特徴語取得処理を行う。特徴語取得処理の詳細は後述する(
図17参照)。
[ステップS109]作業者特徴取得部140は、ステップS108で取得した特徴語を作業者特徴記憶部150に格納する。例えば作業者特徴取得部140は、閲覧ログから取得した特徴語は、閲覧特徴語リスト151に格納する。また作業者特徴取得部140は、投稿ログから取得した特徴語は、投稿特徴語リスト152に格納する。その後、作業者特徴取得部140は処理をステップS111(
図16参照)に進める。
【0094】
図16は、アノテーション支援処理の手順を示すフローチャートの後半である。以下、
図16に示す処理をステップ番号に沿って説明する。
[ステップS111]問題文特徴取得部170は、問題文記憶部160から問題文の本文を示すテキストを取得する。
【0095】
[ステップS112]問題文特徴取得部170は、特徴語取得処理を行う。問題文特徴取得部170が行う特徴語取得処理の詳細は、ステップS108において作業者特徴取得部140が行う特徴語取得処理と同様である。問題文特徴取得部170は、特徴語取得処理によって問題文別特徴語リスト171(
図8参照)を生成し、問題文別特徴語リスト171を類似度計算部180に送信する。
【0096】
[ステップS113]類似度計算部180は、作業者特徴記憶部150から閲覧特徴語と投稿特徴語とを取得する。
[ステップS114]類似度計算部180は、テキストIDの件数分、ステップS115~S118の処理を繰り返す。
【0097】
[ステップS115]類似度計算部180は、テキストIDに対応する問題文と閲覧特徴語との類似度(対閲覧類似度)を計算する。
[ステップS116]類似度計算部180は、テキストIDに対応する問題文と投稿特徴語との類似度(対投稿類似度)を計算する。
【0098】
[ステップS117]類似度計算部180は、対閲覧類似度と対投稿類似度とに基づいて、作業者41の熟知分野に対する問題文の類似度を計算する。その際、類似度計算部180は、対投稿類似度に対して、1より大きな値の重み付けを行う。
【0099】
[ステップS118]類似度計算部180は、類似度の計算が完了した問題文の出題順を、類似度に基づいて降順に並べ替える。
[ステップS119]類似度計算部180は、すべてのテキストIDに対してステップS115~S118の処理が終了した場合、類似度データ181(
図9参照)をアノテーション管理部190に送信し、処理をステップS120に進める。なお類似度計算部180は、未処理のテキストIDがあれば、ステップS115~S118の処理を繰り返す。
【0100】
[ステップS120]アノテーション管理部190は、類似度に応じて各問題文の出題順を設定し、出題順序を示す情報を作業者41が使用する端末31に送信する。なおアノテーション管理部190は、端末31からのアノテーション対象の問題文の取得要求を待って出題順序を示す情報を送信してもよい。
【0101】
このようにして、作業者41に対して、アノテーション対象の問題文として、作業者41が熟知している分野の問題文を提示することができる。
次に、特徴語取得処理について詳細に説明する。
【0102】
図17は、特徴語取得処理の手順の一例を示すフローチャートである。以下、
図17に示す処理をステップ番号に沿って説明する。
[ステップS131]作業者特徴取得部140は、テキスト(ログの本文内容)ごとにステップS132~S136の処理を実行する。
【0103】
[ステップS132]作業者特徴取得部140は、閲覧ログ記憶部120または投稿ログ記憶部130から取得されたテキストの形態素解析を行う。
[ステップS133]作業者特徴取得部140は、形態素解析で抽出された形態素ごとにステップS134~S135の処理を実行する。
【0104】
[ステップS134]作業者特徴取得部140は、形態素が、予め指定された特定品詞(例えば名詞)か否かを判断する。作業者特徴取得部140は、特定品詞であれば処理をステップS135に進める。作業者特徴取得部140は、特定品詞でなければ処理をステップS136に進める。
【0105】
[ステップS135]作業者特徴取得部140は、特徴語リストに処理対象の形態素を追加する。例えば作業者特徴取得部140は、処理対象のテキストが閲覧ログ記憶部120から取得したテキストであれば、処理対象の形態素を閲覧特徴語リスト151に追加する。また作業者特徴取得部140は、処理対象のテキストが投稿ログ記憶部130から取得したテキストであれば、処理対象の形態素を投稿特徴語リスト152に追加する。
【0106】
[ステップS136]作業者特徴取得部140は、処理中のテキストから抽出されたすべての形態素に対してステップS134~S135の処理が完了した場合、処理をステップS137に進める。また作業者特徴取得部140は、未処理の形態素があれば、ステップS134~S135の処理を繰り返す。
【0107】
[ステップS137]作業者特徴取得部140は、閲覧ログ記憶部120または投稿ログ記憶部130から取得されたすべてのテキストについてステップS132~S136の処理が完了した場合、特徴語取得処理を終了する。また作業者特徴取得部140は、未処理のテキストがあれば、ステップS132~S136の処理を繰り返す。
【0108】
このようにして作業者が知識を有する分野を示す特徴語が抽出される。なお、問題文特徴取得部170による特徴語抽出処理(ステップS112)の手順も
図17のフローチャートと同様である。ただし、問題文特徴取得部170による特徴語抽出処理では、処理の主体が問題文特徴取得部170であり、処理対象は問題文記憶部160から取得されたテキスト(本文)である。また問題文特徴取得部170による特徴語抽出処理では、特定品詞の特徴語の出力先は、問題文別特徴語リスト171(
図8参照)である。
【0109】
アノテーション作業の対象となる問題文の出題順序を示す情報を取得した端末31は、例えばアノテーション作業画面に問題文を表示する。
図18は、アノテーション作業画面の一例を示す図である。例えばアノテーション作業画面50には、文一覧51、テキスト表示部52、複数のボタン53,54が表示される。文一覧51には、問題文の識別情報(例えばテキストID)が、出題順で示されている。作業者41は、文一覧51から作業を行う問題文を選択することができる。選択された問題文の内容がテキスト表示部52に表示される。テキスト表示部52内には、化学物質であると作業者41が指定した単語の脇に、化学物質を示すラベル55~57が表示されている。
【0110】
ボタン53は、テキスト表示部52に表示する問題文を、文一覧51における前の文(上位の文)に変更するためのボタンである。ボタン53が押下されると、テキスト表示部52に現在表示されている問題文よりも1つ前の問題文に、テキスト表示部52の表示内容が変更される。
【0111】
ボタン54は、テキスト表示部52に表示する問題文を、文一覧51における次の文(下位の文)に変更するためのボタンである。ボタン54が押下されると、テキスト表示部52に現在表示されている問題文よりも1つ後の問題文に、テキスト表示部52の表示内容が変更される。
【0112】
作業者41は、テキスト表示部52に表示されているテキストを読み、所定の箇所へのラベルを付与する操作を行う。
図18の例では、化学物質を示す箇所へのラベル付与が求められている。
【0113】
図19は、問題文の所定の箇所へのラベル付与処理の一例を示す図である。例えば作業者41は、化学物質であるとのラベルの付与対象となる単語をマウスカーソル58で選択する。すると画面にダイアログボックス59が表示される。ダイアログボックス59には、選択された単語が表示されていると共に、キャンセルのボタン59aと実行のボタン59bとが表示されている。作業者41は、選択した単語へのラベルの付与を中止する場合、キャンセルのボタン59aを押下する。他方、作業者41は、選択した単語が化学物質で間違いがなければ、実行のボタン59bを押下する。すると選択した単語の脇に新たなラベルが表示される。
【0114】
図19に示す例では、1種類のラベルのみを付与する場合を想定しているため,選択と確認が1回のみである。2種類以上のラベルを付与する場合は、例えば付与するラベルの選択操作が先に行われる。作業者41は、付与するラベルを選択した後に
図19に示すようなラベルの付与操作を行う。すると選択された単語には、予め選択された種別のラベルが付与される。
【0115】
なお、付与するラベルの種別の選択を後に行うこともできる。その場合、作業者41は、ラベルを付与する単語を選択した後、付与するラベルの種類を選択する。また作業効率化のためダイアログボックス59を省略して、マウスカーソル58による選択だけでラベルを付与できるようにしてもよい。
【0116】
作業者41が使用する端末31は、アノテーション作業画面50において単語にラベルが付与されると、該当の単語を示す情報と付与されたラベルとの組を、アノテーションサーバ100に送信する。アノテーションサーバ100では、アノテーション管理部190が、アノテーション作業が行われたテキストを、作業者41が付与したラベルを付加して、問題文記憶部160に格納する。
【0117】
このように、閲覧ログと投稿ログとを区別し、投稿ログに対して重みを付けて作業者41が熟知する分野に対する問題文の類似度を計算することで、作業者の熟知する分野に類似する内容の問題文を、正しく判断することができる。すなわち閲覧ログのみで判断すると、作業者41が興味を有する分野を予測することはできるが、その分野に作業者41がどの程度の知識を有しているのかを判断するのは困難である。それに対して、閲覧ログに加えて投稿ログも利用し、投稿ログの重みを閲覧ログよりも大きくすることで、作業者41が熟知している分野を正しく判断することができる。その結果、作業者41が熟知する分野の問題文をアノテーション作業の対象として正しく出題することができる。これによりアノテーション作業の効率が向上し、作業の品質も向上する。
【0118】
なお、作業者41の閲覧ログと投稿ログとに基づいて、作業者の熟知する分野に類似する内容の問題文を特定できることにより、作業者41以外のユーザの知識と比較せずに、アノテーション対象の問題文の並べ替えが可能となる。すなわち作業者41が熟知する分野について、他のユーザとの相対的な基準ではなく、絶対的な基準で判断することができ、判断結果の信頼性が向上する。
【0119】
〔第3の実施の形態〕
第3の実施の形態は、作業者41の投稿のうち、Q&Aサイトへの質問の投稿と回答の投稿とを区別するようにしたものである。すなわちコミュニケーションツールによっては、Q&Aサイトのように投稿者が質問の投稿と回答の投稿と行うことができる場合がある。閲覧と投稿のログを分離したように、質問の投稿と回答の投稿を区別することができる。作業者41が回答できるということは質問と比較して、該当分野について詳しい知識を持っているものと推定できる。そこで作業者41の投稿ログのうち、Q&Aサイトにおける回答に関してより大きな重みを示す係数を付与することでより適切な出題が可能となる。
【0120】
例えば質問特徴語を示すベクトルデータをxquestionとし、回答特徴語を示すベクトルデータをxanswer_allとする。そして特定のテキストIDの問題文特徴語のベクトルデータをxIDとしたとき、質問と回答とを区別した場合の問題文との類似度は以下の式で計算することができる。
類似度=simcos(xquestion,xID)+n×simcos(xanswer_all,xID)
simcos(xquestion,xID)は、質問特徴語と問題文特徴語との類似度(対質問類似度)である。simcos(xanswer_all,xID)は、回答特徴語と問題文特徴語との類似度(対回答類似度)である。
【0121】
またQ&Aサイトのなかには、質問者の選択または他の閲覧者の投票によって良回答(ベストアンサー)の決定機能を持つものがある。作業者41が高得点やベストアンサーの回答をした場合、作業者41は他の回答者と比較してより深い知識を持っているものと推定できる。そこで、作業者41による回答がベストアンサー(または高得点)を獲得した場合、その回答に関して他の回答よりも大きな重みを示す係数を付与することでより適切な出題が可能となる。
【0122】
例えばベストアンサー以外の回答特徴語を示すベクトルデータをxanswerとし、回答特徴語を示すベクトルデータをxbestとする。そして特定のテキストIDの問題文特徴語のベクトルデータをxIDとしたとき、一般の回答とベストアンサーとを区別した場合の問題文との類似度は以下の式で計算することができる。
類似度=simcos(xanswer,xID)+n×simcos(xbest,xID)
simcos(xanswer,xID)は、ベストアンサー以外の回答特徴語と問題文特徴語との類似度(対一般回答類似度)である。simcos(xbest,xID)は、ベストアンサー特徴語と問題文特徴語との類似度(対ベストアンサー類似度)である。
【0123】
そこで第3の実施の形態のシステムでは、Q&Aシステムを想定し、対質問類似度、対一般回答類似度、対ベストアンサー類似度それぞれに適切な重み付けを行い、作業者41が熟知する分野に対する問題文の類似度を求める。以下、第3の実施の形態における第2の実施の形態との相違点について詳細に説明する。
【0124】
図20は、Q&Aサイトの投稿ログを利用した類似度計算処理の一例を示す図である。コミュニケーションサーバ200のログ記憶部220には、閲覧ログ221aと投稿ログ221bとが格納されている。閲覧ログ221aは、各ユーザが閲覧したQ&Aサイト内のテキストを示すデータである。投稿ログ221bは、各ユーザがQ&Aサイトに投稿した質問または回答のテキストを示すデータである。投稿ログ221bには、質問の投稿を示すテキスト(質問ログ)に対応付けて、その質問に対する1以上の回答を示すテキスト(回答ログ)が格納されている。質問ログと回答ログとには、その投稿をしたユーザのユーザ名が設定されている。また回答ログには、その回答がベストアンサーに選ばれたか否かを示すフラグが設定されている。
図20の例では、ベストアンサーに選ばれた回答ログには、丸印のフラグが設定されている。
【0125】
アノテーションサーバ100の作業者ログ取得部110は、ログ記憶部220から作業者のログ(閲覧ログ、質問ログ、回答ログ)を取得する。そして作業者ログ取得部110は、取得したログが閲覧ログであれば、そのログを閲覧ログ記憶部120に格納する。また作業者ログ取得部110は、取得したログが質問ログであれば、そのログを質問ログ記憶部131に格納する。また作業者ログ取得部110は、取得したログが回答ログであり、ベストアンサーでなければ、そのログを回答ログ記憶部132に格納する。そして作業者ログ取得部110は、取得したログが回答ログであり、ベストアンサーであれば、そのログをベストアンサーログ記憶部133に格納する。
【0126】
作業者特徴取得部140は、閲覧ログから特徴語(閲覧特徴語)を抽出し、作業者特徴記憶部150内の閲覧特徴語リスト151に登録する。また作業者特徴取得部140は、質問ログから特徴語(質問特徴語)を抽出し、作業者特徴記憶部150内の質問特徴語リスト153に登録する。また作業者特徴取得部140は、回答ログから特徴語(回答特徴語)を抽出し、作業者特徴記憶部150内の回答特徴語リスト154に登録する。そして作業者特徴取得部140は、ベストアンサーログから特徴語(ベストアンサー特徴語)を抽出し、作業者特徴記憶部150内のベストアンサー特徴語リスト155に登録する。
【0127】
類似度計算部180は、対閲覧特徴類似度、対質問特徴類似度、対回答特徴類似度、および対ベストアンサー特徴語類似度に基づいて、作業者41の熟知する分野に対する各問題文の類似度を計算する。例えば以下の式で問題文の類似度を計算することができる。
類似度=simcos(xview,xID)+n1×simcos(xquestion,xID)+n2×simcos(xanswer,xID)+n3×simcos(xbest,xID)
n1は、対質問類似度に対する重みを示す係数である。n2は、対一般回答類似度に対する重みを示す係数である。n3は、対ベストアンサー類似度に対する重みを示す係数である。各重みを示す係数は、「1<n1<n2<n3」の関係となる。このような式で類似度を計算することで、作業者41に対して、より適切な問題文を提示することができる。
【0128】
以下、フローチャートを参照し、第3の実施の形態におけるアノテーション支援処理の手順について詳細に説明する。
図21は、第3の実施の形態におけるアノテーション支援処理の手順を示すフローチャートの前半である。以下、
図21に示す処理をステップ番号に沿って説明する。
【0129】
[ステップS201]作業者ログ取得部110は、コミュニケーションサーバ200から作業者41の閲覧ログ、投稿ログ(質問ログ、回答ログを含む)を取得する。
[ステップS202]作業者ログ取得部110は、ステップS203~S209の処理を、ログ(閲覧ログまたは投稿ログ)の件数分だけ繰り返す。
【0130】
[ステップS203]作業者ログ取得部110は、処理対象のログが投稿ログか否かを判断する。作業者ログ取得部110は、投稿ログであれば処理をステップS205に進める。また作業者ログ取得部110は、閲覧ログであれば処理をステップS204に進める。
【0131】
[ステップS204]作業者ログ取得部110は、処理対象のログの本文内容を閲覧ログ記憶部120に格納する。その後、作業者ログ取得部110は処理をステップS210に進める。
【0132】
[ステップS205]作業者ログ取得部110は、処理対象のログが質問ログか否かを判断する。作業者ログ取得部110は、質問ログであれば処理をステップS206に進める。また作業者ログ取得部110は、回答ログであれば処理をステップS207に進める。
【0133】
[ステップS206]作業者ログ取得部110は、処理対象のログの本文内容を質問ログ記憶部131に格納する。その後、作業者ログ取得部110は処理をステップS210に進める。
【0134】
[ステップS207]作業者ログ取得部110は、処理対象のログがベストアンサーログか否かを判断する。例えば作業者ログ取得部110は、回答ログにベストアンサーを示すフラグが設定されている場合、その回答ログはベストアンサーログであると判断する。作業者ログ取得部110は、ベストアンサーログであれば処理をステップS209に進める。また作業者ログ取得部110は、ベストアンサー以外の一般回答ログであれば処理をステップS208に進める。
【0135】
[ステップS208]作業者ログ取得部110は、処理対象のログの本文内容を回答ログ記憶部132に格納する。その後、作業者ログ取得部110は処理をステップS210に進める。
【0136】
[ステップS209]作業者ログ取得部110は、処理対象のログの本文内容をベストアンサーログ記憶部133に格納する。
[ステップS210]作業者ログ取得部110は、取得したすべてのログについて処理が完了した場合、処理をステップS211に進める。作業者ログ取得部110は、未処理のログがあれば、ステップS203~S209の処理を繰り返す。
【0137】
[ステップS211]作業者特徴取得部140は、閲覧ログ記憶部120、質問ログ記憶部131、回答ログ記憶部132、およびベストアンサーログ記憶部133から、各ログの本文を示すテキストを取得する。
【0138】
[ステップS212]作業者特徴取得部140は、特徴語取得処理を行う。
[ステップS213]作業者特徴取得部140は、ステップS212で取得した特徴語を作業者特徴記憶部150に格納する。例えば作業者特徴取得部140は、閲覧ログから取得した特徴語は、閲覧特徴語リスト151に格納する。また作業者特徴取得部140は、質問ログから取得した特徴語は、質問特徴語リスト153に格納する。また作業者特徴取得部140は、回答ログから取得した特徴語は、回答特徴語リスト154に格納する。そして作業者特徴取得部140は、ベストアンサーログから取得した特徴語は、ベストアンサー特徴語リスト155に格納する。その後、作業者特徴取得部140は処理をステップS221(
図22参照)に進める。
【0139】
図22は、第3の実施の形態におけるアノテーション支援処理の手順を示すフローチャートの後半である。以下、
図22に示す処理をステップ番号に沿って説明する。
[ステップS221]問題文特徴取得部170は、問題文記憶部160から問題文の本文を示すテキストを取得する。
【0140】
[ステップS222]問題文特徴取得部170は、取得したテキストからの特徴語取得処理を行う。問題文特徴取得部170は、特徴語取得処理によって生成した問題文別特徴語リスト171を類似度計算部180に送信する。
【0141】
[ステップS223]類似度計算部180は、作業者特徴記憶部150から閲覧特徴語、質問特徴語、回答特徴語、およびベストアンサー特徴語を取得する。
[ステップS224]類似度計算部180は、テキストIDの件数分、ステップS225~S230の処理を繰り返す。
【0142】
[ステップS225]類似度計算部180は、テキストIDに対応する問題文と閲覧特徴語との類似度(対閲覧類似度)を計算する。
[ステップS226]類似度計算部180は、テキストIDに対応する問題文と質問特徴語との類似度(対質問類似度)を計算する。
【0143】
[ステップS227]類似度計算部180は、テキストIDに対応する問題文と一般回答特徴語との類似度(対一般回答類似度)を計算する。
[ステップS228]類似度計算部180は、テキストIDに対応する問題文とベストアンサー特徴語との類似度(対ベストアンサー類似度)を計算する。
【0144】
[ステップS229]類似度計算部180は、対閲覧類似度、対質問類似度、対一般回答類似度、および対ベストアンサー類似度に基づいて、作業者41の熟知分野に対する問題文の類似度を計算する。その際、類似度計算部180は、ベストアンサー類似度に対して、最も大きな値の重み付けを行う。
【0145】
[ステップS230]類似度計算部180は、類似度の計算が完了した問題文の出題順を、類似度に基づいて降順に並べ替える。
[ステップS231]類似度計算部180は、すべてのテキストIDに対してステップS225~S230の処理が終了した場合、類似度データ181(
図9参照)をアノテーション管理部190に送信し、処理をステップS232に進める。なお類似度計算部180は、未処理のテキストIDがあれば、ステップS225~S230の処理を繰り返す。
【0146】
[ステップS232]アノテーション管理部190は、類似度に応じて各問題文の出題順を設定し、出題順序を示す情報を作業者41が使用する端末31に送信する。
このようにして、作業者41のQ&Aサイトへの投稿内容を有効に利用して作業者41が熟知している分野に類似する問題文の判定精度を向上させることができる。
【0147】
〔その他の実施の形態〕
第2の実施の形態では類似度の計算にコサイン類似度を用いているが、他の方法で類似度を求めることもできる。例えばJaccard係数またはDice係数などの値を類似度として利用することも可能である。例えば集合A,Bが有った場合、Jaccard係数J(A,B)は、以下の式で表される。
J(A,B)=|A∩B|/|A∪B|
ただし、集合A,Bがどちらも空集合の場合、J(A,B)=1とする。例えば閲覧特徴語が「サーバーレス、マイクロサービス、Bot、株価、チャット、料理、レシピ、インターネット、みりん、照焼」であり、テキストID「1」の問題文特徴語「料理、ぶり、照焼、みりん、レシピ」であるものとする。閲覧特徴語のリストを集合A、問題文特徴語のリストを集合Bとした場合、閲覧特徴語と問題文特徴語とのJaccard係数「J(閲覧,テキスト)=3/11」となる。
【0148】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0149】
1 閲覧データ
2 投稿データ
3 対象文データ
4 閲覧特徴情報
5 投稿特徴情報
6~8 対象特徴情報
10 情報処理装置
11 記憶部
12 処理部