カケラの樹 Logo 日本語文章機械要約プラグイン「acts_as_summarizable_japanese」取扱説明書

ARのモデルに日本語の文章を要約する機能を追加するRailsプラグインです。要約文生成の他、キーワード抽出機能も追加します。

http://code.google.com/p/acts-as-summarizable-japanese/

  1. 以下のソフトウェアに依存します

    • BDB
    • Ruby/BDB
    • MeCab
    • MeCab辞書(UTF-8)
    • Ruby/MeCab
    • 単語出現頻度データベース
    1. class Page < ActiveRecord::Base

      acts_as_summarizable_japanese :summarizable_field => 'body',

      :words_db => "#{RAILS_ROOT}/vendor/words.bdb",

      :words_count => 105011

      end

      設定できるオプション

      :summarizable_field => 要約対象にするフィールド名。デフォルトではbody。

      :words_db => 単語出現頻度データベースのファイル名。必須。

      :words_count => 単語出現頻度データベースの元になった文書数。必須。

    2. acts_as_summarizable_japaneseを設定したモデルには以下のメソッドが追加されます。

      summary_of(options)

      要約文を取得します。指定できるオプションは次の通り。

      :summary_size => 要約文のサイズ。1以下を指定すれば比率、1以上なら文の数。デフォルトは0.3

      keywords_of(options)

      キーワードを取得します。指定できるオプションは次の通り。

      :keywords => 抽出するキーワードの数。デフォルトは5

      summary_and_keywords_of(options)

      要約文とキーワードを同時に取得します。指定できるオプションは次の通り。

      :summary_size => summary_ofと同様

      :keywords => keywords_ofと同様

      summary, keywords = Model.summary_and_keywords_of

    1. 本プラグインの文章要約エンジンはIDF算出のために単語の出現頻度表を要求しますが、これを自作する場合は次のようにしてください。

      1. 単語出現頻度をカウントするため、元となる日本語の文書群を用意してください。

        出来るだけ幅広いジャンルの文書を大量に集めるのがセオリーですが、文書量に比例して処理時間がかかりますので使えるリソースに合わせて収集します。

      2. 各文書それぞれについて、形態素解析を行います。

        形態素解析器はなんでもいいですが、本プラグインを使用している場合はMeCabが手軽でしょう。

      3. 単語それぞれについて、その語がいくつの文書に出現するかを数えます。ここで注意したいのは、一つの文書中にある単語が複数存在した場合でもカウントは+1とすることです。

        1. 文書

          文書1

          単語A

          単語B

          単語C

          文書2

          単語B

          単語C

          単語D

          単語E

          文書3

          単語A

          単語C

          単語D

          単語C

          出現頻度表

          単語A 2
          単語B 2
          単語C 3
          単語D 2
          単語E 1
      4. 本プラグインは単語出現頻度表をBDBデータベースで要求しますので、次の形式で格納してください。

        {単語=>出現数}
        
  2. Copyright(c) 2007 殊海夕音( http://ame.yumenosora.net/ )

    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    1 Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

    2 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

    3 The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

雨上がりの青空を探して。