class Ve::Word

Attributes

extra[RW]
info[RW]
lemma[RW]
part_of_speech[RW]
tokens[RW]
word[RW]

Public Class Methods

new(word, lemma, part_of_speech, tokens, extra = {}, info = {}) click to toggle source

TODO: More elegance

# File lib/word.rb, line 7
def initialize(word, lemma, part_of_speech, tokens, extra = {}, info = {})
  @word = word.dup
  @lemma = lemma.dup
  @part_of_speech = part_of_speech
  @tokens = tokens

  # TODO: I don't like this, it's too unstructured
  @extra = extra
  @info = info
end

Public Instance Methods

as_json(verbose = true) click to toggle source
# File lib/word.rb, line 30
def as_json(verbose = true)
  hash = {
    :word => @word,
    :lemma => @lemma,
    :part_of_speech => @part_of_speech.name,
    :extra => @extra
  }

  if verbose
    hash.merge!({
      :_class => 'Word',
      :tokens => @tokens,
      :info => @info
    })
  end

  hash
end
base_form() click to toggle source
# File lib/word.rb, line 22
def base_form
  @lemma
end
inflected?() click to toggle source
# File lib/word.rb, line 26
def inflected?
  @word != @lemma
end
main_part() click to toggle source

TODO: the main part of a word, for example 重要 in 重要な

# File lib/word.rb, line 19
def main_part
end