LoginSignup
15
15

More than 5 years have passed since last update.

「進捗どうですか」プログラムにおける形態素解析エンジンMeCabの適用

Last updated at Posted at 2015-07-20

震源はこちら @esehara@github さんの記事。

派生

概要

まぁ乗り遅れたよね

従来提案された「進捗どうですか」系プログラムはいずれも、題材に扱う文章の形態素を人力で分けて、ソースコードに書き込む必要があります。

ある文章のもつ形態素を機械的に抽出できれば、ソースコードを改変することなく任意の文章でこのプログラムを利用できます。これを可能にする形態素解析オープンソースエンジンとしてMeCabがあります。MeCabを適用することで、好きな文章で「進捗どうですか」プログラムを気軽に実行できます。

実装

RubyにはMeCabバインディングのnatto gemがあるのでこれを利用します。ここのコメントを参考に。

dou.rb
require "natto"
class Natto::MeCab
  def morphemes(sentence_string)
    # 入力文章の形態素の配列を返却。 "進捗どうですか" => ["進捗","どう","です","か"]
    parse(sentence_string).each_line.map{|s| s[/^(.*?)\t/,1] }.compact
  end
end

input = ARGV[0] || "進捗どうですか"
dic   = Natto::MeCab.new.morphemes(input)
str   = ''

print dic.sample.tap{|c| str << c } until str[-(input.size)..-1] == input
puts "!!!!"
puts

サンプル

スクリーンショット 2015-07-20 18.20.26.png

こちらからは以上です。

参考

15
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15