Module: Brat

Defined in:
lib/rbbt/ner/brat.rb

Class Method Summary collapse

Class Method Details

.load(file) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rbbt/ner/brat.rb', line 6

def self.load(file)
  entities = {}
  relationships = {}
  entity_ids = {}
  TSV.traverse file, :type => :array do |line|
    id, info, literal = line.split("\t")
    case id[0] 
    when "T"
      type, start, eend = info.split(" ")
      entities[id] = NamedEntity.setup(literal, :offset => start.to_i, :type => type)
    when "#"
      type, id = info.split(" ")
      entities[id].code = literal unless entities[id].nil?
    when "R"
      type, *args = info.split(" ")
      tf, tg = args.collect{|e| e.split(":").last }
      tf = entities[tf]
      tg = entities[tg]
      relationship = Relationship.setup([tf,tg] * "~" + "#" + type, :terms => [tf,tg], :type => type)
      relationships[id] = relationship
    end
  end
  [entities.values, relationships.values]
end