1 #include <stdio.h> 2 #include "../vowpalwabbit/parser.h" 3 #include "../vowpalwabbit/vw.h" 4 #include "../vowpalwabbit/ezexample.h" 5 6 using namespace std; 7 run(vw * vw)8void run(vw*vw) { 9 ezexample ex(vw, true); // we're doing csoaa_ldf so we need multiline examples 10 11 /// BEGIN FIRST MULTILINE EXAMPLE 12 ex(vw_namespace('s')) 13 ("p^the_man") 14 ("w^the") 15 ("w^man") 16 (vw_namespace('t')) 17 ("p^un_homme") 18 ("w^un") 19 ("w^homme"); 20 21 ex.set_label("1:1"); 22 ex.train(); 23 24 --ex; // remove the most recent namespace 25 ex(vw_namespace('t')) 26 ("p^le_homme") 27 ("w^le") 28 ("w^homme"); 29 30 ex.set_label("2:0"); 31 ex.train(); 32 33 // push it through VW for training 34 ex.finish(); 35 36 /// BEGIN SECOND MULTILINE EXAMPLE 37 ex(vw_namespace('s')) 38 ("p^a_man") 39 ("w^a") 40 ("w^man") 41 (vw_namespace('t')) 42 ("p^un_homme") 43 ("w^un") 44 ("w^homme"); 45 46 ex.set_label("1:0"); 47 ex.train(); 48 49 --ex; // remove the most recent namespace 50 ex(vw_namespace('t')) 51 ("p^le_homme") 52 ("w^le") 53 ("w^homme"); 54 55 ex.set_label("2:1"); 56 ex.train(); 57 58 // push it through VW for training 59 ex.finish(); 60 } 61 main(int argc,char * argv[])62int main(int argc, char *argv[]) 63 { 64 // INITIALIZE WITH WHATEVER YOU WOULD PUT ON THE VW COMMAND LINE -- THIS WILL STORE A MODEL TO train.ezw 65 vw* vw = VW::initialize("--hash all -q st --noconstant -f train.w --quiet --csoaa_ldf m"); 66 67 run(vw); 68 69 // AND FINISH UP 70 cerr << "ezexample_train finish"<<endl; 71 VW::finish(*vw); 72 } 73