はじめに

レシピを対象とした研究・開発が近年さかんになってきています.そこでは,レシピの手順文書に対して形態素解析した結果を素材として用いることが多いですが,その準備には意外と手間がかかります.このような素材の準備は,研究・開発に依存することは少なく,共通化できる処理も多いと考えています.少しでも前準備の労力を減らし,本来の研究に打ち込める環境を提供するため,我々は本マニュアルを公開しました.これによって,レシピを対象とした研究・開発がますますさかんになっていくことを期待しています.
本マニュアルは,レシピの手順文書を入力として,単語分割結果や品詞判別結果,食材・道具などの判別結果,終止形復元結果を出力する方法を記したものです.
例えば,以下のような結果が得られます.
  • 入力
    糸蒟蒻を下茹でします。
  • 形態素解析結果
    糸/名詞/名詞-普通名詞-一般+/し 蒟蒻/名詞/名詞-普通名詞-一般+/こんにゃく を/助詞/助詞-格助詞+/を 下茹で/名詞/名詞-普通名詞-サ変可能+/したゆで し/動詞/動詞-非自立可能+サ行変格/し ま/助動詞/助動詞+助動詞-マス/ま す/語尾/語尾+助動詞-マス/す 。/補助記号/補助記号-句点+/。
  • 終止形を復元したものを付与した結果
    糸/名詞/名詞-普通名詞-一般+/し/NA 蒟蒻/名詞/名詞-普通名詞-一般+/こんにゃく/NA を/助詞/助詞-格助詞+/を/NA 下茹で/名詞/名詞-普通名詞-サ変可能+/したゆで/NA し/動詞/動詞-非自立可能+サ行変格/し/する ま/助動詞/助動詞+助動詞-マス/ま/ます す/語尾/語尾+助動詞-マス/す/NA 。/補助記号/補助記号-句点+/。/NA
  • 食材・道具などの判別結果
    糸/F-B 蒟蒻/F-I を/O 下茹で/Ac-B し/O ま/O す/O 。/O 
  • 最終的に得られる結果
    糸,名詞,名詞-普通名詞-一般+,し,NA=蒟蒻,名詞,名詞-普通名詞-一般+,こんにゃく,NA/F を,助詞,助詞-格助詞+,を,NA 下茹で,名詞,名詞-普通名詞-サ変可能+,したゆで,NA/Ac し,動詞,動詞-非自立可能+サ行変格,し,する ま,助動詞,助動詞+助動詞-マス,ま,ます す,語尾,語尾+助動詞-マス,す,NA 。,補助記号,補助記号-句点+,。,NA

論文での説明

論文での説明例はこちら(.zip, EUC-JP版)からダウンロードできます.本ページに掲載されているマニュアルに従って処理した結果を,論文に掲載される際の説明文としてご利用ください.

注意事項

  • 以下の処理は,すべて文字コードUTF-8で行います.
  • サンプルプログラムは,入力されるファイルの改行コードがLF("\n")であることを前提として作られています.
    (必要に応じてサンプルプログラムを変更してください.)
  • 形態素解析の処理では,メモリが8GB以上必要です.

前準備

  • 形態素解析器KyTeaをこちらのページからダウンロードし,インストールしてください
  • 形態素解析用モデルをこちら(最新モデル(4.1GB))からダウンロードし,適当な場所に保存してください
  • 終止形を復元するためのプログラム等が入ったファイルをこちら(.tar.gz)からダウンロードし,適当な場所に保存して,展開してください.
  • レシピ固有表現認識器(食材や道具などを判別するもの)をこちら(.tar.gz)からダウンロードし,適当な場所に保存して,展開してください
  • Perlが入っていない場合はインストールしてください(終止形復元,レシピ固有表現認識を行う際に必要)
  • Pythonが入っていない場合はインストールしてください(サンプルプログラムを利用する際に必要)
  • 解析したいレシピ手順文が記述されたファイルをUTF-8で作成してください(サンプル

手順

  • 解析したい手順文書がJIS X 0208 UTF-8の文字集合によって構成されるようにしてください.また,実体参照や文字参照を通常の文字に変換してください.サンプルプログラム(python)展開する.
  • 以下のコードを実行して,形態素解析します.
    ここで使用するモデルの拡張子は".kbm"です.
    kytea -model [ダウンロードした形態素解析用モデル(.kbm)のパス] < [手順1で出力されたファイルのパス] > [出力先のパス]
                      
  • 活用語に対して,終止形を復元した結果を付与します.この処理では,bccwjconv.tar.gzの中に入っている"addbase.perl"と" base.list"を利用します.
    この処理は,作業ディレクトリを"base.list"が入っているディレクトリに変更して行う必要があります.
    cd ["base.list"が入っているディレクトリのパス]
    perl ["addbase.perl"のパス] < [手順2で出力されたファイルのパス] > [出力先のパス]
                      
  • レシピ固有表現認識を行うための前準備として,手順3で得られたファイルから以下の書式に合うファイルを作成します.
    [表記] [表記] [表記] ...
    サンプルプログラム(python)展開する.
  • 以下のコードを順に実行して,レシピ固有表現認識(以下,NERという)を行います.
    ここで使用するモデルの拡張子は".knm"です.
    誤って形態素解析のモデル(.kbm)を指定すると,すべてAc-Bになりますのでご注意ください.
    kytea -model [ダウンロードしたNERフォルダに入っているモデル(.knm)のパス] -out conf -nows -tagmax 0 -unktag /UNK [手順4で出力されたファイルのパス] > temp.Ciob2
    perl [NERフォルダ内の bin/NESearch.pl] temp.Ciob2 [出力先のパス]
                      
  • 整形したものを出力します.出力ファイルのデリミタ(区切り文字)は,読み込むための処理の順に以下のとおりです.
    " " --- 単語や固有表現の区切り
    "/" --- レシピ固有表現タグ区切り
    "=" --- 同一固有内の単語区切り
    "," --- 形態素情報区切り (形態素解析の "/" に相当)
    "+" --- 活用型の区切り(活用語の場合のみ後続要素あり)
    "-" --- 品詞細分類の要素の区切り
    サンプルプログラム(python)展開する.

参考文献

  • 言語処理

  • 利用例

      誕生・使用事由によるレシピ検索〜生い立ちレシピサーチ〜
      門脇 拓也, 山肩 洋子, 森 信介, 田中 克己
      日本データベース学会論文誌 Vol.13, No.1
      Recipe search for blog-type recipe articles based on a user's situation
      Takuya Kadowaki, Yoko Yamakata, Shinsuke Mori, Katsumi Tanaka
      Proceedings of the 2014 ACM International Joint Conference on Pervasive and Ubiquitous Computing: Adjunct Publication. ACM, 2014.
      調理手順文書の自然言語解析結果からの食材・加工からなる作業ツリーの構築
      山肩洋子, 今堀慎治, 前田浩邦, 森 信介
      信学技報, vol. 114, no. 204, DE2014-27, pp. 25-30, 2014.
      FlowGraph2Text: Automatic Sentence Skeleton Compilation for Procedural Text Generation
      Shinsuke Mori, Hirokuni Maeta, Tetsuro Sasada, Koichiro Yoshino, Atsushi Hashimoto, Takuya Funatomi, Yoko Yamakata
      INLG, 2014.
      Feature Extraction and Summarization of Recipes Using Flow Graph
      Yoko Yamakata, Shinji Imahori, Yuichi Sugiyama, Shinsuke Mori, and Katsumi Tanaka
      SocInfo 2013, LNCS 8238, pp. 241–254, 2013.

連絡先

  • 森 信介 (forest [at] i.kyoto-u.ac.jp)
  • 山肩 洋子 (yamakata [at] dl.kuis.kyoto-u.ac.jp)
  • 門脇 拓也 (kadowaki [at] dl.kuis.kyoto-u.ac.jp)
※[at]を@に置き換えてください.