Class: Opener::POSTagger

Inherits:
Object
  • Object
show all
Defined in:
lib/opener/pos_tagger.rb,
lib/opener/pos_tagger/cli.rb,
lib/opener/pos_tagger/server.rb,
lib/opener/pos_tagger/version.rb

Overview

Primary POS tagger class that delegates work the various POS tagging kernels.

Defined Under Namespace

Classes: CLI, Server

Constant Summary collapse

DEFAULT_OPTIONS =

Hash containing the default options to use.

Returns:

  • (Hash)
{
  :args => []
}.freeze
VERSION =
'3.1.2'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ POSTagger

Returns a new instance of POSTagger.

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :args (Array)

    Arbitrary arguments to pass to the underlying kernel.



36
37
38
# File 'lib/opener/pos_tagger.rb', line 36

def initialize(options = {})
  @options = DEFAULT_OPTIONS.merge(options)
end

Instance Attribute Details

#optionsHash (readonly)

Returns:

  • (Hash)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/opener/pos_tagger.rb', line 18

class POSTagger
  attr_reader :options

  ##
  # Hash containing the default options to use.
  #
  # @return [Hash]
  #
  DEFAULT_OPTIONS = {
    :args => []
  }.freeze

  ##
  # @param [Hash] options
  #
  # @option options [Array] :args Arbitrary arguments to pass to the
  #  underlying kernel.
  #
  def initialize(options = {})
    @options = DEFAULT_OPTIONS.merge(options)
  end

  ##
  # Processes the input and returns an Array containing the output of STDOUT,
  # STDERR and an object containing process information.
  #
  # @param [String] input The input to process.
  # @return [Array]
  #
  def run(input)
    language = language_from_kaf(input)

    unless valid_language?(language)
      raise ArgumentError, "The specified language (#{language}) is invalid"
    end

    kernel = language_constant(language).new(:args => options[:args])

    return kernel.run(input)
  end

  alias tag run

  protected

  ##
  # Extracts the language from a KAF document.
  #
  # @param [String] input
  # @return [String]
  #
  def language_from_kaf(input)
    reader = Nokogiri::XML::Reader(input)

    return reader.read.lang
  end

  ##
  # @param [String] language
  # @return [Class]
  #
  def language_constant(language)
    return language && POSTaggers.const_get(language.upcase)
  end

  ##
  # @return [TrueClass|FalseClass]
  #
  def valid_language?(language)
    return Opener::POSTaggers.const_defined?(language.upcase)
  end
end

Instance Method Details

#run(input) ⇒ Array Also known as: tag

Processes the input and returns an Array containing the output of STDOUT, STDERR and an object containing process information.

Parameters:

  • input (String)

    The input to process.

Returns:

  • (Array)


47
48
49
50
51
52
53
54
55
56
57
# File 'lib/opener/pos_tagger.rb', line 47

def run(input)
  language = language_from_kaf(input)

  unless valid_language?(language)
    raise ArgumentError, "The specified language (#{language}) is invalid"
  end

  kernel = language_constant(language).new(:args => options[:args])

  return kernel.run(input)
end