decoupe.rb 1.44 KB
#!/usr/bin/env ruby

require "rubygems"

def launch(file_input, file_output, kfold)

    ar_train = {}
    ar_dev = {}
    0.upto(kfold-1) do |counter|
        f = File.new( file_output+"_train_"+counter.to_s+".txt", "w" )
        ar_train[ counter ] = f

        f = File.new( file_output+"_dev_"+counter.to_s+".txt", "w" )
        ar_dev[ counter ] = f
    end

    counter_line = 0
    f = File.open(file_input)
    f.each do |line|
        line.chomp!

        if line != ""
            if line[0] != "/"
                line = line.split("\t")
                if line.size == 3


                    number = counter_line % kfold

                    0.upto(kfold-1) do |counter|
                        if counter == number
                            ar_dev[ counter ] << line[0]+"\t"+line[2]+"\t"+line[1]+"\n"
                        end

                        if counter != number
                            ar_train[ counter ] << line[0]+"\t"+line[2]+"\t"+line[1]+"\n"
                        end
                    end

                    counter_line += 1


                end 
            end
        end
    end
    f.close

    p ar_train
    p ar_dev
    0.upto(kfold-1) do |counter|
        ar_train[counter].close
        ar_dev[counter].close
    end

end


def errarg
    puts "Usage : ./programme.rb"
    puts "Mickael Rouvier <mickael.rouvier@univ-avignon.fr>"
end


if ARGV.size == 3
    launch(ARGV[0], ARGV[1], ARGV[2].to_i)
else
    errarg
end