linguistics 2.0.2 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.simplecov +12 -0
- data/ChangeLog +773 -11
- data/History.rdoc +9 -0
- data/Manifest.txt +3 -2
- data/README.rdoc +5 -5
- data/Rakefile +49 -19
- data/examples/generalize_sentence.rb +2 -2
- data/lib/linguistics.rb +4 -4
- data/lib/linguistics/en/articles.rb +1 -1
- data/lib/linguistics/en/conjugation.rb +6 -6
- data/lib/linguistics/en/conjunctions.rb +1 -1
- data/lib/linguistics/en/infinitives.rb +1 -1
- data/lib/linguistics/en/linkparser.rb +11 -11
- data/lib/linguistics/en/numbers.rb +11 -11
- data/lib/linguistics/en/participles.rb +1 -1
- data/lib/linguistics/en/pluralization.rb +16 -16
- data/lib/linguistics/en/wordnet.rb +1 -1
- data/lib/linguistics/languagebehavior.rb +1 -1
- data/spec/{lib/constants.rb → constants.rb} +0 -0
- data/spec/helpers.rb +39 -0
- data/spec/linguistics/en/articles_spec.rb +194 -203
- data/spec/linguistics/en/conjugation_spec.rb +519 -521
- data/spec/linguistics/en/conjunctions_spec.rb +31 -47
- data/spec/linguistics/en/infinitives_spec.rb +193 -207
- data/spec/linguistics/en/linkparser_spec.rb +9 -20
- data/spec/linguistics/en/numbers_spec.rb +289 -302
- data/spec/linguistics/en/participles_spec.rb +6 -20
- data/spec/linguistics/en/pluralization_spec.rb +894 -908
- data/spec/linguistics/en/stemmer_spec.rb +10 -23
- data/spec/linguistics/en/titlecase_spec.rb +3 -13
- data/spec/linguistics/en/wordnet_spec.rb +10 -30
- data/spec/linguistics/en_spec.rb +14 -28
- data/spec/linguistics/inflector_spec.rb +3 -21
- data/spec/linguistics/iso639_spec.rb +28 -37
- data/spec/linguistics/monkeypatches_spec.rb +5 -14
- data/spec/linguistics_spec.rb +11 -30
- metadata +44 -15
- metadata.gz.sig +0 -0
- data/spec/lib/helpers.rb +0 -38
data/History.rdoc
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== v2.0.3 [2013-12-02] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
A bunch of fixes from Ippei UKAI <ippei_ukai@mac.com>
|
4
|
+
|
5
|
+
- fix past tense for words end with y
|
6
|
+
- fix past tense for doubling verbs
|
7
|
+
- fix present participle conjugation of verbs that end with 'e'
|
8
|
+
|
9
|
+
|
1
10
|
== v2.0.2 [2013-02-27] Michael Granger <ged@FaerieMUD.org>
|
2
11
|
|
3
12
|
- Fix for Ruby 2: don't memoize the inflector.
|
data/Manifest.txt
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
.simplecov
|
1
2
|
ChangeLog
|
2
3
|
History.rdoc
|
3
4
|
LICENSE
|
@@ -24,8 +25,8 @@ lib/linguistics/inflector.rb
|
|
24
25
|
lib/linguistics/iso639.rb
|
25
26
|
lib/linguistics/languagebehavior.rb
|
26
27
|
lib/linguistics/monkeypatches.rb
|
27
|
-
spec/
|
28
|
-
spec/
|
28
|
+
spec/constants.rb
|
29
|
+
spec/helpers.rb
|
29
30
|
spec/linguistics/en/articles_spec.rb
|
30
31
|
spec/linguistics/en/conjugation_spec.rb
|
31
32
|
spec/linguistics/en/conjunctions_spec.rb
|
data/README.rdoc
CHANGED
@@ -75,7 +75,7 @@ the top-level namespace for all your linguistic functions, and then
|
|
75
75
|
register it as being available, like so:
|
76
76
|
|
77
77
|
module Linguistics::TLH
|
78
|
-
|
78
|
+
|
79
79
|
# Add Klingon to the list of default languages
|
80
80
|
Linguistics.register_language( :tlh, self )
|
81
81
|
|
@@ -101,13 +101,13 @@ behavior to your spec:
|
|
101
101
|
|
102
102
|
require 'rspec'
|
103
103
|
require 'linguistics/languagebehavior'
|
104
|
-
|
104
|
+
|
105
105
|
describe Linguistics::TLH do
|
106
|
-
|
106
|
+
|
107
107
|
it_should_behave_like "a Linguistics language module"
|
108
|
-
|
108
|
+
|
109
109
|
# ... any other specs for your module
|
110
|
-
|
110
|
+
|
111
111
|
end
|
112
112
|
|
113
113
|
If you wish to use the logging subsystem set up by Linguistics, you can
|
data/Rakefile
CHANGED
@@ -1,40 +1,58 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
|
3
|
-
|
3
|
+
begin
|
4
|
+
require 'rspec'
|
5
|
+
require 'rspec/core/rake_task'
|
6
|
+
rescue LoadError
|
7
|
+
abort "This Rakefile requires RSpec. Try again after doing 'gem install rspec'"
|
8
|
+
end
|
9
|
+
|
10
|
+
begin
|
11
|
+
require 'hoe'
|
12
|
+
rescue LoadError
|
13
|
+
abort "This Rakefile requires Hoe. Try again after doing 'gem install hoe'"
|
14
|
+
end
|
15
|
+
|
16
|
+
# The path to the generated .gemspec file
|
17
|
+
GEMSPEC = '.gemspec'
|
4
18
|
|
5
19
|
Hoe.plugin :mercurial
|
20
|
+
Hoe.plugin :bundler
|
21
|
+
Hoe.plugin :publish
|
6
22
|
Hoe.plugin :signing
|
7
23
|
|
8
24
|
Hoe.plugins.delete :rubyforge
|
9
25
|
|
10
|
-
hoespec = Hoe.spec 'linguistics' do
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
26
|
+
hoespec = Hoe.spec 'linguistics' do |spec|
|
27
|
+
spec.name = 'linguistics'
|
28
|
+
spec.readme_file = 'README.rdoc'
|
29
|
+
spec.history_file = 'History.rdoc'
|
30
|
+
spec.extra_rdoc_files = FileList[ '*.rdoc' ]
|
31
|
+
spec.license 'BSD'
|
15
32
|
|
16
|
-
|
33
|
+
spec.developer 'Michael Granger', 'ged@FaerieMUD.org'
|
17
34
|
|
18
|
-
|
35
|
+
spec.dependency 'loggability', '~> 0.7'
|
19
36
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
37
|
+
spec.dependency 'hoe-deveiate', '~> 0.3', :development
|
38
|
+
spec.dependency 'hoe-bundler', '~> 1.2', :development
|
39
|
+
spec.dependency 'linkparser', '~> 1.1', :development
|
40
|
+
spec.dependency 'wordnet', '~> 1.0', :development
|
41
|
+
spec.dependency 'wordnet-defaultdb', '~> 1.0', :development
|
42
|
+
spec.dependency 'ruby-stemmer', '~> 0.9', :development
|
24
43
|
|
25
|
-
|
26
|
-
|
27
|
-
self.spec_extras[:post_install_message] = [
|
44
|
+
spec.spec_extras[:rdoc_options] = ['-f', 'fivefish', '-t', 'Ruby Linguistics Toolkit']
|
45
|
+
spec.spec_extras[:post_install_message] = [
|
28
46
|
"This library also presents tie-ins for the 'linkparser' and",
|
29
47
|
"'wordnet' libraries, which you can enable by installing the",
|
30
48
|
"gems of the same name."
|
31
49
|
].join( "\n" )
|
32
50
|
|
33
|
-
|
34
|
-
|
35
|
-
|
51
|
+
spec.require_ruby_version( '>=1.9.3' )
|
52
|
+
spec.hg_sign_tags = true if spec.respond_to?( :hg_sign_tags= )
|
53
|
+
spec.check_history_on_release = true if spec.respond_to?( :check_history_on_release= )
|
36
54
|
|
37
|
-
|
55
|
+
spec.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
|
38
56
|
end
|
39
57
|
|
40
58
|
ENV['VERSION'] ||= hoespec.spec.version.to_s
|
@@ -46,3 +64,15 @@ task :coverage do
|
|
46
64
|
ENV["COVERAGE"] = 'yes'
|
47
65
|
Rake::Task[:spec].invoke
|
48
66
|
end
|
67
|
+
|
68
|
+
|
69
|
+
desc "generate a gemspec from your Hoe.spec"
|
70
|
+
file GEMSPEC => 'Rakefile' do |task|
|
71
|
+
spec = hoespec.spec.dup
|
72
|
+
spec.files.delete( '.gemtest' )
|
73
|
+
spec.version = "#{spec.version}.pre.#{Time.now.strftime("%Y%m%d%H%M%S")}"
|
74
|
+
File.open( task.name, 'w' ) do |fh|
|
75
|
+
fh.write( spec.to_ruby )
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
BEGIN {
|
4
4
|
require 'pathname'
|
5
|
-
|
5
|
+
|
6
6
|
basedir = Pathname.new( __FILE__ ).dirname.parent.expand_path
|
7
7
|
libdir = basedir + "lib"
|
8
8
|
$LOAD_PATH.unshift( basedir.to_s ) unless $LOAD_PATH.include?( basedir.to_s )
|
@@ -35,7 +35,7 @@ while input = Readline.readline( "Sentence to generalize: " )
|
|
35
35
|
subj = sent.subject
|
36
36
|
obj = sent.object
|
37
37
|
verb = sent.verb
|
38
|
-
|
38
|
+
|
39
39
|
input.sub!( /\b#{subj}\b/, generalized_word(subj) ) if subj
|
40
40
|
input.sub!( /\b#{obj}\b/, generalized_word(obj) ) if obj
|
41
41
|
input.sub!( /\b#{verb}\b/, generalized_word(verb) ) if verb
|
data/lib/linguistics.rb
CHANGED
@@ -12,10 +12,10 @@ module Linguistics
|
|
12
12
|
|
13
13
|
|
14
14
|
# Release version
|
15
|
-
VERSION = '2.0.
|
15
|
+
VERSION = '2.0.3'
|
16
16
|
|
17
17
|
# VCS version
|
18
|
-
REVISION = %q$Revision:
|
18
|
+
REVISION = %q$Revision: ca93740ec59c $
|
19
19
|
|
20
20
|
# The list of Classes to add linguistic behaviours to.
|
21
21
|
DEFAULT_EXT_CLASSES = [ String, Numeric, Array ]
|
@@ -55,7 +55,7 @@ module Linguistics
|
|
55
55
|
end
|
56
56
|
|
57
57
|
|
58
|
-
### Register a module as providing linguistic functions for the specified +language+ (a two-
|
58
|
+
### Register a module as providing linguistic functions for the specified +language+ (a two-
|
59
59
|
### or three-letter ISO639-2 language codes as a Symbol)
|
60
60
|
def self::register_language( language, mod )
|
61
61
|
language_entry = LANGUAGE_CODES[ language.to_sym ] or
|
@@ -143,7 +143,7 @@ module Linguistics
|
|
143
143
|
config = languages.pop if languages.last.is_a?( Hash )
|
144
144
|
config ||= {}
|
145
145
|
|
146
|
-
classes = Array(config[:classes]) if config[:classes]
|
146
|
+
classes = Array(config[:classes]) if config[:classes]
|
147
147
|
classes ||= DEFAULT_EXT_CLASSES
|
148
148
|
|
149
149
|
self.log.debug "Extending %d classes with %d language modules." %
|
@@ -7,7 +7,7 @@ require 'linguistics/en' unless defined?( Linguistics::EN )
|
|
7
7
|
#
|
8
8
|
# == Version
|
9
9
|
#
|
10
|
-
# $Id: conjugation.rb,v
|
10
|
+
# $Id: conjugation.rb,v de381a81754d 2013/12/02 18:09:29 ged $
|
11
11
|
#
|
12
12
|
# == Authors
|
13
13
|
#
|
@@ -147,11 +147,11 @@ module Linguistics::EN::Conjugation
|
|
147
147
|
def conjugate_present_participle( verb )
|
148
148
|
case verb
|
149
149
|
when /[^aeiou]e$/
|
150
|
-
return verb[ 0..-2 ]
|
150
|
+
return verb[ 0..-2 ] + 'ing'
|
151
151
|
when /ie$/
|
152
|
-
return verb[ 0..-3 ] + 'y'
|
152
|
+
return verb[ 0..-3 ] + 'y' + 'ing'
|
153
153
|
when /[aou]e$/
|
154
|
-
return verb[ 0..-2 ]
|
154
|
+
return verb[ 0..-2 ] + 'ing'
|
155
155
|
else
|
156
156
|
if DOUBLING_VERBS.include?( verb )
|
157
157
|
return verb + verb[ -1 ] + 'ing'
|
@@ -169,10 +169,10 @@ module Linguistics::EN::Conjugation
|
|
169
169
|
when /e$/
|
170
170
|
return verb + 'd'
|
171
171
|
when /[^aeiou]y$/
|
172
|
-
return verb[ 0..-
|
172
|
+
return verb[ 0..-2 ] + 'ied'
|
173
173
|
else
|
174
174
|
if DOUBLING_VERBS.include?( verb )
|
175
|
-
verb = verb[ -
|
175
|
+
verb = verb + verb[ -1 ] + 'ed'
|
176
176
|
else
|
177
177
|
return verb + 'ed'
|
178
178
|
end
|
@@ -34,7 +34,7 @@ module Linguistics::EN::Conjunctions
|
|
34
34
|
### particular element to be omitted from the resulting conjunction. The
|
35
35
|
### following options can be used to control the makeup of the returned
|
36
36
|
### conjunction String:
|
37
|
-
###
|
37
|
+
###
|
38
38
|
### [<b>:separator</b>]
|
39
39
|
### Specify one or more characters to separate items in the resulting
|
40
40
|
### list. Defaults to <tt>', '</tt>.
|
@@ -1061,7 +1061,7 @@ module Linguistics::EN::Infinitives
|
|
1061
1061
|
if (( suffix = ((INF_SUFFIX_RULE_ORDER & prefixes.keys).first) ))
|
1062
1062
|
rule = INF_SUFFIX_RULES[ suffix ][:rule]
|
1063
1063
|
shortestPrefix = INF_SUFFIX_RULES[ suffix ][:word1]
|
1064
|
-
self.log.debug "Using rule %p (%p) for suffix %p" %
|
1064
|
+
self.log.debug "Using rule %p (%p) for suffix %p" %
|
1065
1065
|
[ rule, shortestPrefix, suffix ] if $DEBUG
|
1066
1066
|
|
1067
1067
|
case shortestPrefix
|
@@ -8,35 +8,35 @@ require 'linguistics/en' unless defined?( Linguistics::EN )
|
|
8
8
|
# # Test to see whether or not the link parser is loaded.
|
9
9
|
# Linguistics::EN.has_link_parser?
|
10
10
|
# # => true
|
11
|
-
#
|
11
|
+
#
|
12
12
|
# # Diagram the first linkage for a test sentence
|
13
13
|
# puts "he is a big dog".en.sentence.linkages.first.to_s
|
14
|
-
#
|
15
|
-
#
|
16
|
-
# +Ss+ | +-A-+
|
17
|
-
# | | | | |
|
14
|
+
# +---O*---+
|
15
|
+
# | +--Ds--+
|
16
|
+
# +Ss+ | +-A-+
|
17
|
+
# | | | | |
|
18
18
|
# he is a big dog
|
19
|
-
#
|
19
|
+
#
|
20
20
|
# # Find the verb in the sentence
|
21
|
-
# "he is a big dog".en.sentence.verb.to_s
|
21
|
+
# "he is a big dog".en.sentence.verb.to_s
|
22
22
|
# # => "is"
|
23
|
-
#
|
23
|
+
#
|
24
24
|
# # Combined infinitive + LinkParser: Find the infinitive form of the verb of the
|
25
25
|
# given sentence.
|
26
26
|
# "he is a big dog".en.sentence.verb.infinitive
|
27
27
|
# # => "be"
|
28
|
-
#
|
28
|
+
#
|
29
29
|
# # Find the direct object of the sentence
|
30
30
|
# "he is a big dog".en.sentence.object.to_s
|
31
31
|
# # => "dog"
|
32
|
-
#
|
32
|
+
#
|
33
33
|
# # Combine WordNet + LinkParser to find the definition of the direct object of
|
34
34
|
# # the sentence
|
35
35
|
# "he is a big dog".en.sentence.object.gloss
|
36
36
|
# # => "a member of the genus Canis (probably descended from the common wolf) that
|
37
37
|
# has been domesticated by man since prehistoric times; occurs in many breeds;
|
38
38
|
# \"the dog barked all night\""
|
39
|
-
#
|
39
|
+
#
|
40
40
|
module Linguistics::EN::LinkParser
|
41
41
|
|
42
42
|
@has_linkparser = false
|
@@ -100,7 +100,7 @@ module Linguistics::EN::Numbers
|
|
100
100
|
|
101
101
|
# Triple-digits
|
102
102
|
proc {|zero,x,y,z|
|
103
|
-
NUMBER_TO_WORDS_FUNCTIONS[1].call(zero,x) +
|
103
|
+
NUMBER_TO_WORDS_FUNCTIONS[1].call(zero,x) +
|
104
104
|
NUMBER_TO_WORDS_FUNCTIONS[2].call(zero,y,z)
|
105
105
|
}
|
106
106
|
]
|
@@ -108,24 +108,24 @@ module Linguistics::EN::Numbers
|
|
108
108
|
|
109
109
|
### Return the specified number as english words. One or more configuration
|
110
110
|
### values may be passed to control the returned String:
|
111
|
-
###
|
111
|
+
###
|
112
112
|
### [<b>:group</b>]
|
113
113
|
### Controls how many numbers at a time are grouped together. Valid values
|
114
|
-
### are <code>0</code> (normal grouping), <code>1</code> (single-digit
|
115
|
-
### grouping, e.g., "one, two, three, four"), <code>2</code>
|
114
|
+
### are <code>0</code> (normal grouping), <code>1</code> (single-digit
|
115
|
+
### grouping, e.g., "one, two, three, four"), <code>2</code>
|
116
116
|
### (double-digit grouping, e.g., "twelve, thirty-four", or <code>3</code>
|
117
117
|
### (triple-digit grouping, e.g., "one twenty-three, four").
|
118
118
|
### [<b>:comma</b>]
|
119
|
-
### Set the character/s used to separate word groups. Defaults to
|
119
|
+
### Set the character/s used to separate word groups. Defaults to
|
120
120
|
### <code>", "</code>.
|
121
121
|
### [<b>:and</b>]
|
122
|
-
### Set the word and/or characters used where <code>' and ' </code>(the
|
123
|
-
### default) is normally used. Setting <code>:and</code> to
|
124
|
-
### <code>' '</code>, for example, will cause <code>2556</code> to be
|
125
|
-
### returned as "two-thousand, five hundred fifty-six" instead of
|
122
|
+
### Set the word and/or characters used where <code>' and ' </code>(the
|
123
|
+
### default) is normally used. Setting <code>:and</code> to
|
124
|
+
### <code>' '</code>, for example, will cause <code>2556</code> to be
|
125
|
+
### returned as "two-thousand, five hundred fifty-six" instead of
|
126
126
|
### "two-thousand, five hundred and fifty-six".
|
127
127
|
### [<b>:zero</b>]
|
128
|
-
### Set the word used to represent the numeral <code>0</code> in the
|
128
|
+
### Set the word used to represent the numeral <code>0</code> in the
|
129
129
|
### result. <code>'zero'</code> is the default.
|
130
130
|
### [<b>:decimal</b>]
|
131
131
|
### Set the translation of any decimal points in the number; the default
|
@@ -288,7 +288,7 @@ module Linguistics::EN::Numbers
|
|
288
288
|
|
289
289
|
|
290
290
|
### Return a phrase describing the specified +number+ of objects in the
|
291
|
-
### inflected object in general terms. The following options can be used to
|
291
|
+
### inflected object in general terms. The following options can be used to
|
292
292
|
### control the makeup of the returned quantity String:
|
293
293
|
###
|
294
294
|
### [<b>:joinword</b>]
|
@@ -10,7 +10,7 @@ module Linguistics::EN::Participles
|
|
10
10
|
Linguistics::EN.register_extension( self )
|
11
11
|
|
12
12
|
|
13
|
-
### Attempt to return the inflected string in its present participle
|
13
|
+
### Attempt to return the inflected string in its present participle
|
14
14
|
### form (e.g., talked -> talking).
|
15
15
|
def present_participle
|
16
16
|
plural = self.to_s.en.plural_verb
|
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'linguistics/en' unless defined?( Linguistics )
|
4
4
|
|
5
5
|
# Plural inflection methods for the English-language Linguistics module.
|
6
|
-
#
|
6
|
+
#
|
7
7
|
# It provides conversion of plural forms of all nouns, most verbs,
|
8
8
|
# and some adjectives. It also provides "classical" variants (for
|
9
9
|
# example: "brother" -> "brethren", "dogma" -> "dogmata", etc.) where
|
@@ -92,13 +92,13 @@ module Linguistics::EN::Pluralization
|
|
92
92
|
|
93
93
|
# Classical "..um" -> "..a"
|
94
94
|
PL_sb_C_um_a = matchgroup %w[
|
95
|
-
maximum
|
96
|
-
quantum
|
97
|
-
phylum
|
98
|
-
enconium
|
99
|
-
lustrum
|
100
|
-
spectrum
|
101
|
-
ultimatum
|
95
|
+
maximum minimum momentum optimum
|
96
|
+
quantum cranium curriculum dictum
|
97
|
+
phylum aquarium compendium emporium
|
98
|
+
enconium gymnasium honorarium interregnum
|
99
|
+
lustrum memorandum millenium rostrum
|
100
|
+
spectrum speculum stadium trapezium
|
101
|
+
ultimatum medium vacuum velum
|
102
102
|
consortium
|
103
103
|
].collect {|word| word[0...-2]}
|
104
104
|
|
@@ -150,7 +150,7 @@ module Linguistics::EN::Pluralization
|
|
150
150
|
ghetto guano inferno
|
151
151
|
jumbo lumbago magneto
|
152
152
|
manifesto medico octavo
|
153
|
-
photo pro quarto
|
153
|
+
photo pro quarto
|
154
154
|
canto lingo generalissimo
|
155
155
|
stylo rhino
|
156
156
|
] | PL_sb_C_o_i_a )
|
@@ -259,7 +259,7 @@ module Linguistics::EN::Pluralization
|
|
259
259
|
epidermis ethos eyas gas glottis hepatitis
|
260
260
|
hubris ibis lens mantis marquis metropolis
|
261
261
|
neuritis pathos pelvis polis rhinoceros
|
262
|
-
sassafras tonsillitis trellis
|
262
|
+
sassafras tonsillitis trellis
|
263
263
|
]
|
264
264
|
|
265
265
|
PL_v_special_s = matchgroup [
|
@@ -327,7 +327,7 @@ module Linguistics::EN::Pluralization
|
|
327
327
|
|
328
328
|
PL_v_irregular_pres_h = {
|
329
329
|
# 1St pers. sing. 2nd pers. sing. 3rd pers. singular
|
330
|
-
# 3rd pers. (indet.)
|
330
|
+
# 3rd pers. (indet.)
|
331
331
|
"am" => "are", "are" => "are", "is" => "are",
|
332
332
|
"was" => "were", "were" => "were", "was" => "were",
|
333
333
|
"have" => "have", "have" => "have", "has" => "have",
|
@@ -336,7 +336,7 @@ module Linguistics::EN::Pluralization
|
|
336
336
|
|
337
337
|
PL_v_ambiguous_pres_h = {
|
338
338
|
# 1st pers. sing. 2nd pers. sing. 3rd pers. singular
|
339
|
-
# 3rd pers. (indet.)
|
339
|
+
# 3rd pers. (indet.)
|
340
340
|
"act" => "act", "act" => "act", "acts" => "act",
|
341
341
|
"blame" => "blame", "blame" => "blame", "blames" => "blame",
|
342
342
|
"can" => "can", "can" => "can", "can" => "can",
|
@@ -358,7 +358,7 @@ module Linguistics::EN::Pluralization
|
|
358
358
|
PL_v_ambiguous_pres = matchgroup PL_v_ambiguous_pres_h.keys
|
359
359
|
|
360
360
|
PL_v_irregular_non_pres = matchgroup %w[
|
361
|
-
did had ate made put
|
361
|
+
did had ate made put
|
362
362
|
spent fought sank gave sought
|
363
363
|
shall could ought should
|
364
364
|
]
|
@@ -486,7 +486,7 @@ module Linguistics::EN::Pluralization
|
|
486
486
|
### examining the +original+ input.
|
487
487
|
def postprocess( original, inflected )
|
488
488
|
|
489
|
-
# If there's a classical variant, use it instead of the modern one if
|
489
|
+
# If there's a classical variant, use it instead of the modern one if
|
490
490
|
# classical mode is on.
|
491
491
|
inflected.sub!( /([^|]+)\|(.+)/ ) do
|
492
492
|
Linguistics::EN.classical? ? $2 : $1
|
@@ -587,7 +587,7 @@ module Linguistics::EN::Pluralization
|
|
587
587
|
self.log.debug " accusative pronoun; using PL_pron_acc table"
|
588
588
|
return PL_pron_acc_h[ word.downcase ]
|
589
589
|
|
590
|
-
# Handle isolated irregular plurals
|
590
|
+
# Handle isolated irregular plurals
|
591
591
|
when /(.*)\b(#{PL_sb_irregular})$/i
|
592
592
|
prefix, word = $1, $2
|
593
593
|
self.log.debug " isolated irregular; using PL_sb_irregular_h table"
|
@@ -701,7 +701,7 @@ module Linguistics::EN::Pluralization
|
|
701
701
|
self.log.debug " yep, it's an irregular present tense verb (%p)" % [ key ]
|
702
702
|
return PL_v_irregular_pres_h[ $1.downcase ] + $2
|
703
703
|
|
704
|
-
# Handle irregular future, preterite and perfect tenses
|
704
|
+
# Handle irregular future, preterite and perfect tenses
|
705
705
|
when /^(#{PL_v_irregular_non_pres})((\s.*)?)$/i
|
706
706
|
self.log.debug " yep, it's an irregular non-present tense verb (%p)" % [ key ]
|
707
707
|
return word
|