public void Init() { // ------------------------------------------- suffix2vector = new String2Vector(System.IO.Path.Combine(Program.WORD_FEATURES, "suffices.txt")); context_span = Program.CONTEXT_SPAN; // число токенов, которые используются для генерации вектора X x_len = (context_span * 2 + 1) * suffix2vector.GetVectorLength(); // размерность пространства признаков // ------------------------------------------- suffix_len = Program.SUFFIX_LEN; // Распознаваемые признаки string y_str = @" СУЩЕСТВИТЕЛЬНОЕ ПРИЛАГАТЕЛЬНОЕ МЕСТОИМЕНИЕ МЕСТОИМ_СУЩ ЧИСЛИТЕЛЬНОЕ ГЛАГОЛ ВВОДНОЕ БЕЗЛИЧ_ГЛАГОЛ NUM_WORD ИНФИНИТИВ ДЕЕПРИЧАСТИЕ ПРЕДЛОГ ПОСЛЕЛОГ СОЮЗ ЧАСТИЦА ПУНКТУАТОР НАРЕЧИЕ UNKNOWNENTRIES ПРИТЯЖ_ЧАСТИЦА "; y_picker = new List <SVM_X_Picker>(); y_patterns = new List <SVM_ResultPatterns>(); int y_index = 0; foreach (string line in y_str.Split('\n')) { string l = line.Trim(); if (!string.IsNullOrEmpty(l)) { SVM_X_Picker m = new SVM_X_Picker(line, gren, y_index++); y_picker.Add(m); SVM_ResultPatterns p = new SVM_ResultPatterns(); y_patterns.Add(p); } } return; }
public bool ProcessSample(SampleData sample) { Sample2Patterns(sample, y_patterns); if (wrt_train == null) { wrt_train = new List <System.IO.StreamWriter>(); train_filename = new List <string>(); /* * // для SVM * for( int i = 0; i < y_picker.Count; ++i ) * { * string train_path = string.Format( "svm_train_{0}.txt", i ); * train_filename.Add( train_path ); * wrt_train.Add( new System.IO.StreamWriter( train_path ) ); * }*/ string train_path = "maxent_train.txt"; train_filename.Add(train_path); wrt_train.Add(new System.IO.StreamWriter(train_path)); } /* * for( int i = 0; i < y_picker.Count; ++i ) * { * y_patterns[i].Write( wrt_train[i] ); * y_patterns[i].Clear(); * } */ for (int y = 0; y < y_picker.Count; ++y) { SVM_ResultPatterns patterns = y_patterns[y]; for (int i = 0; i < patterns._X.Count; ++i) { if (patterns._Y[i] == 1.0) { wrt_train[0].Write("{0} ", y); for (int j = 0; j < patterns._X[i].Length; ++j) { wrt_train[0].Write(" {0}:{1}", patterns._X[i][j].Index, (2.0 + patterns._X[i][j].Value).ToString(new System.Globalization.CultureInfo("en-US"))); } wrt_train[0].WriteLine(""); } } wrt_train[0].Flush(); patterns.Clear(); } return(true); }