class WebStat::Tag

Attributes

article[RW]
natto_mecab[RW]

Public Class Methods

new(article, userdic: nil) click to toggle source
# File lib/web_stat/tag.rb, line 6
def initialize(article, userdic: nil)
  @natto_mecab = Natto::MeCab.new(userdic: userdic)
  @article = article
end

Public Instance Methods

nouns(part_of_speech: "固有名詞") click to toggle source

Keyword extraction @param part_of_speech ex) 名詞, 固有名詞 etc… only Japanese

# File lib/web_stat/tag.rb, line 13
def nouns(part_of_speech: "固有名詞")
  words = Hash.new
  @natto_mecab.parse(@article) do |n|
    features = n.feature.split(",")
    if include_recursive?(features, Array(part_of_speech))
      words[n.surface] = 1 unless words[n.surface]
      words[n.surface] += 1
    end
  end
  words.keys
end

Private Instance Methods

include_recursive?(target, list) click to toggle source

A array include? B array. @param target A array @param list B array

# File lib/web_stat/tag.rb, line 29
def include_recursive?(target, list)
  list.map { |v|target.include?(v) }.all?
end