p align="left">ipl[i].w = new double[MAX_INP]; // {весовые коэффициенты} ipl[i].change = new double[MAX_INP]; } for (int i = 0; i < MAX_HID; i++) { hl[i].w = new double[MAX_INP]; // {весовые коэффициенты} hl[i].change = new double[MAX_INP]; } for (int i = 0; i < MAX_OUT; i++) { ol[i].w = new double[MAX_HID]; // {весовые коэффициенты} ol[i].change = new double[MAX_HID]; } if (File.Exists(filename + "ip.txt") == true && File.Exists(filename + "ol.txt") == true && File.Exists(filename + "hl.txt") == true) { StreamReader streamreader = new StreamReader(filename + "ip.txt"); for (int i = 0; i < ipl.Length; i++) { ipl[i].a = double.Parse(streamreader.ReadLine()); ipl[i].threshold = double.Parse(streamreader.ReadLine()); for (int j = 0; j < ipl[i].w.Length; j++) { ipl[i].w[j] = double.Parse(streamreader.ReadLine()); } } streamreader.Close(); streamreader = new StreamReader(filename + "ol.txt"); for (int i = 0; i < ol.Length; i++) { ol[i].a = double.Parse(streamreader.ReadLine()); ol[i].threshold = double.Parse(streamreader.ReadLine()); for (int j = 0; j < ol[i].w.Length; j++) { ol[i].w[j] = double.Parse(streamreader.ReadLine()); } } streamreader.Close(); streamreader = new StreamReader(filename + "hl.txt"); for (int i = 0; i < hl.Length; i++) { hl[i].a = double.Parse(streamreader.ReadLine()); hl[i].threshold = double.Parse(streamreader.ReadLine()); for (int j = 0; j < hl[i].w.Length; j++) { hl[i].w[j] = double.Parse(streamreader.ReadLine()); } } streamreader.Close(); } else { File.Create(filename + "ip.txt"); File.Create(filename + "ol.txt"); File.Create(filename + "hl.txt"); } } //------------------------------------------------------------- private void AddWeightsToFile() { StreamWriter streamwriter = new StreamWriter(filename + "ip.txt"); for (int i = 0; i < ipl.Length; i++) { streamwriter.WriteLine(ipl[i].a.ToString()); streamwriter.WriteLine(ipl[i].threshold.ToString()); for (int j = 0; j < ipl[i].w.Length; j++) { streamwriter.WriteLine(ipl[i].w[j].ToString()); streamwriter.Flush(); } streamwriter.Flush(); } streamwriter.Close(); streamwriter = new StreamWriter(filename + "hl.txt"); for (int i = 0; i < hl.Length; i++) { streamwriter.WriteLine(hl[i].a.ToString()); streamwriter.WriteLine(hl[i].threshold.ToString()); for (int j = 0; j < hl[i].w.Length; j++) { streamwriter.WriteLine(hl[i].w[j].ToString()); streamwriter.Flush(); } streamwriter.Flush(); } streamwriter.Close(); streamwriter = new StreamWriter(filename + "ol.txt"); for (int i = 0; i < ol.Length; i++) { streamwriter.WriteLine(ol[i].a.ToString()); streamwriter.WriteLine(ol[i].threshold.ToString()); for (int j = 0; j < ol[i].w.Length; j++) { streamwriter.WriteLine(ol[i].w[j].ToString()); streamwriter.Flush(); } streamwriter.Flush(); } streamwriter.Close(); } private void blank_changes() { for (int j = 0; j < MAX_INP; j++) { for (int i = 0; i < MAX_INP; i++) { ipl[j].change[i] = 0; } ipl[j].t_change = 0; } for (int j = 0; j < MAX_HID; j++) { for (int i = 0; i < MAX_INP; i++) { hl[j].change[i] = 0; } hl[j].t_change = 0; } for (int j = 0; j < MAX_OUT; j++) { for (int i = 0; i < MAX_HID; i++) { ol[j].change[i] = 0; } ol[j].t_change = 0; } } public void train_the_network() { blank_changes(); // {Очистка предыдущих значений changes} for (int loop = 0; loop < num_cycles; loop++) { for (int pat = 0; pat < MAX_PAT; pat++) { for (int i = 0; i < MAX_INP; i++) //{Копирование входного образа} { test_pat[i] = INP_PATTERNS[pat, i]; } //{в массив 'test_pat' } for (int i = 0; i < MAX_OUT; i++) //{Копирование выходного образа} { desired[i] = OUT_PATTERNS[pat, i]; } //{ в массив'desired' } run_the_network(); //{Определение выходов сети} back_propagate(); } } AddWeightsToFile(); } } Приложение Б. Листинг класса Analization public class Analization { List<Results> results = new List<Results>(); public static void AddToFile(string sLetter, string sFile) { FileStream filestream = File.Open(sFile + ".txt", FileMode.Append, FileAccess.Write); StreamWriter streamwriter = new StreamWriter(filestream); streamwriter.WriteLine(sLetter); streamwriter.Close(); filestream.Close(); } private void AddEtalonLetter() { string[] im = { "смотрим@", "носим@", "ходим@", "бродим@", "катим@", "синим#", "большим#", "тугим#", "крайним#" }; if (File.Exists("-им.txt") == false) { FileStream filestream = File.Open("-им.txt", FileMode.CreateNew, FileAccess.Write); StreamWriter streamwriter = new StreamWriter(filestream); for (int i = 0; i < im.Length; i++) { streamwriter.WriteLine(im[i]); } streamwriter.Close(); filestream.Close(); } string[] om = { "столом@", "стулом@", "ковром@", "городом@", "селом@", "красном#", "туманном#", "тяжелом#", "легком#" }; if (File.Exists("-ом.txt") == false) { FileStream filestream = File.Open("-ом.txt", FileMode.CreateNew, FileAccess.Write); StreamWriter streamwriter = new StreamWriter(filestream); for (int i = 0; i < om.Length; i++) { streamwriter.WriteLine(om[i]); } streamwriter.Close(); filestream.Close(); } string[] oy = { "ручкой@", "краской@", "бумагой@", "оградой@", "каймой@", "большой#", "небольшой#", "тугой#", "малой#" }; if (File.Exists("-ой.txt") == false) { FileStream filestream = File.Open("-ой.txt", FileMode.CreateNew, FileAccess.Write); StreamWriter streamwriter = new StreamWriter(filestream); for (int i = 0; i < oy.Length; i++) { streamwriter.WriteLine(oy[i]); } streamwriter.Close(); filestream.Close(); } string[] em = { "кидаем@", "бросаем@", "стережем@", "бережем@", "блюдем@", "гребнем#", "камнем#", "ставнем#", "гравием#" }; if (File.Exists("-ем.txt") == false) { FileStream filestream = File.Open("-ем.txt", FileMode.CreateNew, FileAccess.Write); StreamWriter streamwriter = new StreamWriter(filestream); for (int i = 0; i < em.Length; i++) { streamwriter.WriteLine(em[i]); } streamwriter.Close(); filestream.Close(); } string[] ie = { "большие@", "синие@", "маленькие@", "хорошие@", "плохие@", "хождение#", "мероприятие#", "становление#", "украшение#" }; if (File.Exists("-ие.txt") == false) { FileStream filestream = File.Open("-ие.txt", FileMode.CreateNew, FileAccess.Write); StreamWriter streamwriter = new StreamWriter(filestream); for (int i = 0; i < ie.Length; i++) { streamwriter.WriteLine(ie[i]); } streamwriter.Close(); filestream.Close(); } string[] mi = { "красными@", "зелеными@", "хорошими@", "плохими@", "трудными@", "стульями#", "столами#", "ставнями#", "карандашами#" }; if (File.Exists("-ми.txt") == false) { FileStream filestream = File.Open("-ми.txt", FileMode.CreateNew, FileAccess.Write); StreamWriter streamwriter = new StreamWriter(filestream); for (int i = 0; i < mi.Length; i++) { streamwriter.WriteLine(mi[i]); } streamwriter.Close(); filestream.Close(); } } public string BigToSmall(string letter) { switch (letter) { case "А": return "а"; case "Б": return "б"; case "В": return "в"; case "Г": return "г"; case "Д": return "д"; case "Е": return "е"; case "Ё": return "ё"; case "Ж": return "ж"; case "З": return "з"; case "И": return "и"; case "Й": return "й"; case "К": return "к"; case "Л": return "л"; case "М": return "м"; case "Н": return "н"; case "О": return "о"; case "П": return "п"; case "Р": return "р"; case "С": return "с"; case "Т": return "т"; case "У": return "у"; case "Ф": return "ф"; case "Х": return "х"; case "Ц": return "ц"; case "Ч": return "ч"; case "Ш": return "ш"; case "Щ": return "щ"; case "Ъ": return "ъ"; case "Ы": return "ы"; case "Ь": return "ь"; case "Э": return "э"; case "Ю": return "ю"; case "Я": return "я"; } return "ё"; } public Analization(string sText, int N_HID, double beta, double m, int Epoch, bool flag) { AddEtalonLetter(); Results res; string sLetter = ""; for (int i = 0; i < sText.Length; i++) { if (sText[i] == ' ' || sText[i] == '.' || sText[i] == ',' || sText[i] == '!' || sText[i] == '?' || sText[i] == '-' || sText[i] == ':' || sText[i] == ';') { if (sLetter == "") { goto k; } if ((Char.ConvertToUtf32(sLetter, 0) >= 1040 && Char.ConvertToUtf32(sLetter, 0) <= 1071)) { if (i - sLetter.Length + 1 == 1) { string ch = BigToSmall(sLetter[0].ToString()); sLetter = ch + sLetter.Substring(1, sLetter.Length - 1); goto m; } else if (sText[i - sLetter.Length - 1] == ' ' && sText[i - sLetter.Length - 2] == '.') { string ch = BigToSmall(sLetter[0].ToString()); sLetter = ch + sLetter.Substring(1, sLetter.Length - 1); goto m; } res.Class = "существительное";
Страницы: 1, 2, 3, 4, 5, 6, 7
|