def self.load_dictionary( dictionary , name , file )
lemmas = Set.new
forms = 0
final = 0
lemma_id = ""
puts "Loading Dictionary : #{ name }"
file = IO.readlines(file)
line_count = 0
file = file.select{|line| line.start_with?(";; ") or !line.start_with?(";") }
file.each do |line|
if line.start_with?(";; ")
lemma_id = line[3..line.length]
raise ArgumentError.new("Lemma #{lemma_id } in #{name} #{line_count} isn't unique") if lemmas.member?(lemma_id)
lemmas << lemma_id
else
splited_line = line.split("\t" , -1)
raise ArgumentError.new("Entry In #{name} line #{line_count} doesn't have 4 fields ( 3 tabs )") unless splited_line.length == 4
de = self.construct_dictionary_entry(splited_line , name, line_count , lemma_id)
if dictionary.has_key?(de.entry)
dictionary[de.entry] << de
else
tmp_array = []
tmp_array << de
dictionary[de.entry] = tmp_array
end
forms+=1;
end
line_count+=1
end
puts "#{lemmas.size()} lemmas and " unless lemma_id == ""
puts("#{dictionary.length} entries totalizing #{forms} forms")
end