Skip to content

Commit

Permalink
Fix all methods except extended_hypernyms
Browse files Browse the repository at this point in the history
  • Loading branch information
jbn committed Sep 22, 2015
1 parent d0a3826 commit 9489fe2
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 26 deletions.
26 changes: 25 additions & 1 deletion src/db.jl
Expand Up @@ -64,5 +64,29 @@ SYNSET_TYPES = @compat Dict{Char, String}(
)

synsets(db::DB, lemma::Lemma) = map(lemma.synset_offsets) do offset
Synset(db, lemma.pos, offset)
db.synsets[lemma.pos][offset]
end

antonym(db::DB, synset::Synset) = relation(db, synset, ANTONYM)
hypernym(db::DB, synset::Synset) = relation(db, synset, HYPERNYM)[1]
hyponym(db::DB, synset::Synset) = relation(db, synset, HYPONYM)

relation(db::DB, synset::Synset, pointer_sym) = map(
ptr -> db.synsets[synset.synset_type][ptr.offset],
filter(ptr -> ptr.sym == pointer_sym, synset.pointers)
)

function expanded_hypernym(db::DB, synset::Synset)
parent = hypernym(db, synset)
hypernyms = Vector{Synset}()
isempty(parent) && return hypernyms

offsets = Vector{Int}()
while !isempty(parent)
parent.pos_offset offsets && break
push!(hypernyms, db.synsets[synset.pos][offset])
parent = parent.parent
end

hypernyms
end
26 changes: 1 addition & 25 deletions src/synset.jl
@@ -1,5 +1,5 @@
export Synset, word_count, words, relation
export antonym, hypernym, hypernyms, expanded_hypernym
export antonym, hyponym, hypernym, hypernyms, expanded_hypernym

immutable Synset
offset::Int
Expand Down Expand Up @@ -55,30 +55,6 @@ end
word_count(synset::Synset) = length(synset.word_counts)
words(synset::Synset) = keys(synset.word_counts)

relation(synset::Synset, pointer_sym) = map(
ptr -> Synset(synset.synset_type, ptr.offset),
filter(ptr -> ptr.sym == pointer_sym, synset.pointers)
)

antonym(synset::Synset) = relation(synset, ANTONYM)
hypernym(synset::Synset) = relation(synset, HYPERNYM)[1]
hyponym(synset::Synset) = relation(synset, HYPONYM)

function expanded_hypernym(synset::Synset)
parent = hypernym(synset)
hypernyms = Vector{Synset}()
isempty(parent) && return hypernyms

offsets = Vector{Int}()
while !isempty(parent)
parent.pos_offset offsets && break
push!(hypernyms, Synset(synset.pos, offset))
parent = parent.parent
end

hypernyms
end

function Base.show(io::IO, synset::Synset)
ws = join(map(word -> replace(word, "_", " "), words(synset)), ", ")
print(io, "($(synset.synset_type)) $ws ($(synset.gloss))")
Expand Down

0 comments on commit 9489fe2

Please sign in to comment.