linguistics 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|