```ruby
# encoding: utf-8

require 'forwardable'

require 'myaso/version'
require 'myaso/pi_table'
require 'myaso/ngrams'
require 'myaso/tagger'
require 'myaso/tagger/model'

# The UnknownWord exception is raised when Tagger considers an unknown
# word.
#
class Myaso::UnknownWord < RuntimeError
  attr_reader :word

  # @private
  def initialize(word)
    @word = word
  end

  # @private
  def to_s
    'unknown word "%s"' % word
  end
end

# The Word structure represents frequencies of tagged words.
#
Myaso::Word = Struct.new(:word, :tag, :count)
```

Use Lexicon instead of Word
user
```ruby
# encoding: utf-8

require 'forwardable'

require 'myaso/version'
require 'myaso/pi_table'
require 'myaso/ngrams'
require 'myaso/lexicon'
require 'myaso/tagger'
require 'myaso/tagger/model'

# The UnknownWord exception is raised when Tagger considers an unknown
# word.
#
class Myaso::UnknownWord < RuntimeError
  attr_reader :word

  # @private
  def initialize(word)
    @word = word
  end

  # @private
  def to_s
    'unknown word "%s"' % word
  end
end
```
assistant