wordnet 1.0.0.pre.134 → 1.0.0.pre.136
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +1 -1
- data/README.rdoc +13 -12
- data/lib/wordnet/lexicon.rb +8 -0
- data/lib/wordnet/model.rb +0 -4
- data/lib/wordnet/synset.rb +43 -3
- data/spec/wordnet/synset_spec.rb +43 -0
- metadata +12 -12
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
o�ۡʸ�`)�&�T����\�R�Bo(��FM�nP�,�;m��V�]�cTV7���}�WF�w\��?�Z�/�}]Q�X�c����V�H��t%�{���n�1l��~��"繤����%[c�b3-Bݍ�����4lſ�~����ꮡ��t������)�V}���;r�������>(\N�-����wơY
|
data/README.rdoc
CHANGED
@@ -4,18 +4,19 @@
|
|
4
4
|
|
5
5
|
== Description
|
6
6
|
|
7
|
-
This library is a Ruby interface to WordNet®. WordNet® is an online
|
8
|
-
reference system whose design is inspired by current
|
9
|
-
of human lexical memory. English nouns, verbs,
|
10
|
-
organized into synonym sets, each
|
11
|
-
concept. Different relations link
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
7
|
+
This library is a Ruby interface to WordNet®. WordNet® is an online
|
8
|
+
lexical reference system whose design is inspired by current
|
9
|
+
psycholinguistic theories of human lexical memory. English nouns, verbs,
|
10
|
+
adjectives and adverbs are organized into synonym sets, each
|
11
|
+
representing one underlying lexical concept. Different relations link
|
12
|
+
the synonym sets.
|
13
|
+
|
14
|
+
It uses WordNet-SQL, which is a conversion of the lexicon flatfiles into
|
15
|
+
a relational database format. You can either install the 'wordnet-
|
16
|
+
defaultdb' gem, which packages up the SQLite3 version of WordNet-SQL, or
|
17
|
+
install your own and point the lexicon at it by passing a Sequel URL to
|
18
|
+
the constructor.
|
19
|
+
|
19
20
|
|
20
21
|
|
21
22
|
== Requirements
|
data/lib/wordnet/lexicon.rb
CHANGED
@@ -209,5 +209,13 @@ class WordNet::Lexicon
|
|
209
209
|
return dataset.all
|
210
210
|
end
|
211
211
|
|
212
|
+
|
213
|
+
### Return a human-readable string representation of the Lexicon, suitable for
|
214
|
+
### debugging.
|
215
|
+
def inspect
|
216
|
+
return "#<%p:%0#x %s>" % [ self.class, self.object_id * 2, self.db.url ]
|
217
|
+
end
|
218
|
+
|
219
|
+
|
212
220
|
end # class WordNet::Lexicon
|
213
221
|
|
data/lib/wordnet/model.rb
CHANGED
@@ -13,10 +13,6 @@ module WordNet
|
|
13
13
|
# The base WordNet database-backed domain class. It's a subclass of Sequel::Model, so
|
14
14
|
# you'll first need to be familiar with Sequel (http://sequel.rubyforge.org/) and
|
15
15
|
# especially its Sequel::Model ORM.
|
16
|
-
#
|
17
|
-
# See the Sequel::Plugins::InlineMigrations module and the documentation for the
|
18
|
-
# 'validation_helpers', 'schema', and 'subclasses' Sequel plugins.
|
19
|
-
#
|
20
16
|
class Model < Sequel::Model
|
21
17
|
extend Loggability
|
22
18
|
|
data/lib/wordnet/synset.rb
CHANGED
@@ -414,6 +414,32 @@ class WordNet::Synset < WordNet::Model( :synsets )
|
|
414
414
|
semantic_link :verb_groups
|
415
415
|
|
416
416
|
|
417
|
+
#
|
418
|
+
# :section: Traversal Methods
|
419
|
+
#
|
420
|
+
|
421
|
+
### Union: Return the least general synset that the receiver and
|
422
|
+
### +othersyn+ have in common as a hypernym, or nil if it doesn't share
|
423
|
+
### any.
|
424
|
+
def |( othersyn )
|
425
|
+
|
426
|
+
# Find all of this syn's hypernyms
|
427
|
+
hypersyns = self.traverse( :hypernyms ).to_a
|
428
|
+
commonsyn = nil
|
429
|
+
|
430
|
+
# Now traverse the other synset's hypernyms looking for one of our
|
431
|
+
# own hypernyms.
|
432
|
+
othersyn.traverse( :hypernyms ) do |syn|
|
433
|
+
if hypersyns.include?( syn )
|
434
|
+
commonsyn = syn
|
435
|
+
throw :stop_traversal
|
436
|
+
end
|
437
|
+
end
|
438
|
+
|
439
|
+
return commonsyn
|
440
|
+
end
|
441
|
+
|
442
|
+
|
417
443
|
### With a block, yield a WordNet::Synset related to the receiver via a link of
|
418
444
|
### the specified +type+, recursing depth first into each of its links if the link
|
419
445
|
### type is recursive. To exit from the traversal at any depth, throw :stop_traversal.
|
@@ -429,16 +455,16 @@ class WordNet::Synset < WordNet::Model( :synsets )
|
|
429
455
|
traversals = [ self.semanticlink_enum(type) ]
|
430
456
|
syn = nil
|
431
457
|
typekey = SEMANTIC_TYPEKEYS[ type ]
|
432
|
-
recurses = self.linktypes[ typekey ][:recurses]
|
458
|
+
recurses = self.class.linktypes[ typekey ][:recurses]
|
433
459
|
|
434
460
|
self.log.debug "Traversing %s semlinks%s" % [ type, recurses ? " (recursive)" : '' ]
|
435
461
|
|
436
462
|
catch( :stop_traversal ) do
|
437
463
|
until traversals.empty?
|
438
464
|
begin
|
439
|
-
self.log.debug " %d traversal/s left"
|
465
|
+
self.log.debug " %d traversal/s left" % [ traversals.length ]
|
440
466
|
syn = traversals.last.next
|
441
|
-
yielder.yield( syn
|
467
|
+
yielder.yield( syn )
|
442
468
|
traversals << syn.semanticlink_enum( type ) if recurses
|
443
469
|
rescue StopIteration
|
444
470
|
traversals.pop
|
@@ -460,5 +486,19 @@ class WordNet::Synset < WordNet::Model( :synsets )
|
|
460
486
|
return depth
|
461
487
|
end
|
462
488
|
|
489
|
+
|
490
|
+
### Return a human-readable representation of the objects, suitable for debugging.
|
491
|
+
def inspect
|
492
|
+
return "#<%p:%0#x {%d} '%s' (%s): [%s] %s>" % [
|
493
|
+
self.class,
|
494
|
+
self.object_id * 2,
|
495
|
+
self.synsetid,
|
496
|
+
self.words.map(&:to_s).join(', '),
|
497
|
+
self.part_of_speech,
|
498
|
+
self.lexical_domain,
|
499
|
+
self.definition,
|
500
|
+
]
|
501
|
+
end
|
502
|
+
|
463
503
|
end # class WordNet::Synset
|
464
504
|
|
data/spec/wordnet/synset_spec.rb
CHANGED
@@ -78,8 +78,51 @@ describe WordNet::Synset, :requires_database => true do
|
|
78
78
|
enum.should be_a( Enumerator )
|
79
79
|
end
|
80
80
|
|
81
|
+
it "can recursively traverse its semantic links" do
|
82
|
+
res = @synset.traverse( :hypernyms ).to_a
|
83
|
+
res.should have( 6 ).members
|
84
|
+
res.should == [
|
85
|
+
WordNet::Synset[ 104341686 ],
|
86
|
+
WordNet::Synset[ 100021939 ],
|
87
|
+
WordNet::Synset[ 100003553 ],
|
88
|
+
WordNet::Synset[ 100002684 ],
|
89
|
+
WordNet::Synset[ 100001930 ],
|
90
|
+
WordNet::Synset[ 100001740 ],
|
91
|
+
]
|
92
|
+
end
|
93
|
+
|
94
|
+
it "can return an Enumerator for recursively traversing its semantic links" do
|
95
|
+
enum = @synset.traverse( :hypernyms )
|
96
|
+
|
97
|
+
enum.next.should == WordNet::Synset[ 104341686 ]
|
98
|
+
enum.next.should == WordNet::Synset[ 100021939 ]
|
99
|
+
enum.next.should == WordNet::Synset[ 100003553 ]
|
100
|
+
enum.next.should == WordNet::Synset[ 100002684 ]
|
101
|
+
enum.next.should == WordNet::Synset[ 100001930 ]
|
102
|
+
enum.next.should == WordNet::Synset[ 100001740 ]
|
103
|
+
expect {
|
104
|
+
enum.next
|
105
|
+
}.to raise_error( StopIteration )
|
106
|
+
end
|
107
|
+
|
108
|
+
|
109
|
+
end
|
110
|
+
|
111
|
+
context "for 'knight (noun)' [110238375]" do
|
112
|
+
|
113
|
+
before( :each ) do
|
114
|
+
@synset = @lexicon[ :knight, "noble" ]
|
115
|
+
end
|
116
|
+
|
117
|
+
it "can find the hypernym that it and another synset share in common through the intersection operator" do
|
118
|
+
res = @synset | @lexicon[ :squire ]
|
119
|
+
res.should == @lexicon[:person]
|
120
|
+
end
|
121
|
+
|
81
122
|
end
|
82
123
|
|
124
|
+
|
125
|
+
|
83
126
|
end
|
84
127
|
|
85
128
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wordnet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.
|
4
|
+
version: 1.0.0.pre.136
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
YUhDS0xaZFNLai9SSHVUT3QrZ2JsUmV4OEZBaDhOZUEKY21saFhlNDZwWk5K
|
37
37
|
Z1dLYnhaYWg4NWpJang5NWhSOHZPSStOQU01aUg5a09xSzEzRHJ4YWNUS1Bo
|
38
38
|
cWo1UGp3RgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
39
|
-
date: 2012-08-
|
39
|
+
date: 2012-08-15 00:00:00.000000000 Z
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sequel
|
@@ -167,27 +167,27 @@ dependencies:
|
|
167
167
|
- !ruby/object:Gem::Version
|
168
168
|
version: '3.0'
|
169
169
|
description: ! 'This library is a Ruby interface to WordNet®. WordNet® is an online
|
170
|
-
lexical
|
171
170
|
|
172
|
-
reference system whose design is inspired by current
|
171
|
+
lexical reference system whose design is inspired by current
|
173
172
|
|
174
|
-
of human lexical memory. English nouns, verbs,
|
173
|
+
psycholinguistic theories of human lexical memory. English nouns, verbs,
|
175
174
|
|
176
|
-
organized into synonym sets, each
|
175
|
+
adjectives and adverbs are organized into synonym sets, each
|
177
176
|
|
178
|
-
concept. Different relations link
|
177
|
+
representing one underlying lexical concept. Different relations link
|
179
178
|
|
179
|
+
the synonym sets.
|
180
180
|
|
181
|
-
It uses WordNet-SQL, which is a conversion of the lexicon flatfiles into a
|
182
181
|
|
183
|
-
|
182
|
+
It uses WordNet-SQL, which is a conversion of the lexicon flatfiles into
|
184
183
|
|
185
|
-
|
184
|
+
a relational database format. You can either install the ''wordnet-
|
186
185
|
|
187
|
-
|
186
|
+
defaultdb'' gem, which packages up the SQLite3 version of WordNet-SQL, or
|
188
187
|
|
188
|
+
install your own and point the lexicon at it by passing a Sequel URL to
|
189
189
|
|
190
|
-
|
190
|
+
the constructor.'
|
191
191
|
email:
|
192
192
|
- ged@FaerieMUD.org
|
193
193
|
executables: []
|
metadata.gz.sig
CHANGED
Binary file
|