public void Сrear_el_set() { Zaliznyak dicParaTrabajo = new Zaliznyak(Path.Combine(SergeySearch.RootPath, "vortaro.txt")); FileStream rioDePagina = new FileStream(Path.Combine(SergeySearch.RootPath, nombre_del_file), FileMode.Open, FileAccess.Read); TextReader leerLaPagina = new StreamReader(rioDePagina); string pagina = leerLaPagina.ReadLine(); while (pagina != null) { pagina = pagina.ToLower(); var todasPalabras = pagina.Split( Separador, StringSplitOptions.RemoveEmptyEntries); foreach (var palabra in todasPalabras) { var FormaNormala = dicParaTrabajo.FormaNormala(palabra); if (FormaNormala != null && FormaNormala.Length > 2) { indiceado_Pagina.Add(FormaNormala); } else { //Разблокируйте, коли хотите обработку текстов на опечатки (предупрежу: она ОЧЕНЬ долгая) /*else if (dic_para_trabajo.sub_dicts.TryGetValue(palabra[0], out var value)) * { * Console.WriteLine(palabra); * int i = 0; * foreach (var elm in value) * { * i = LevenshteinDistance(elm, palabra); * if (i < 2) * { * indiceado_Pagina.Add(dic_para_trabajo.FormaNormala(elm)); * break; * } * } * * if (i >= 2) * { * indiceado_Pagina.Add(palabra); * } * }*/ if (palabra.Length > 2) { indiceado_Pagina.Add(palabra); } } } pagina = leerLaPagina.ReadLine(); } }
public string RegioneImportante(string filenombre, string pregunta) { if (filenombre == "") { return(""); } FileStream file_flujo = new FileStream(filenombre, FileMode.Open, FileAccess.Read); TextReader texto_leyendo = new StreamReader(file_flujo); string[] campo_de_busqueda = texto_leyendo.ReadToEnd().Split( new[] { ' ', ',', '.', '!', '?', ';', ':', '+', '=', '-', '\r', '\n', '\t', '\'', '\"', '(', ')', '[', ']', '#', '*' }, StringSplitOptions.RemoveEmptyEntries); string[] preguntas = pregunta.Split( new[] { ' ', ',', '.', '!', '?', ';', ':', '+', '=', '-', '\r', '\n', '\t', '\'', '\"', '(', ')', '[', ']', '«', '»', '„', '“', '…', '#', '*', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < preguntas.Length; i++) { string normal = dicc.FormaNormala(preguntas[i]); if (normal != null) { preguntas[i] = normal; } } string[] file_nomalizado = new string[campo_de_busqueda.Length]; for (int i = 0; i < file_nomalizado.Length; i++) { string normal = dicc.FormaNormala(campo_de_busqueda[i]); if (normal != null) { file_nomalizado[i] = normal; } else { file_nomalizado[i] = campo_de_busqueda[i]; } } int[] significados = new int[file_nomalizado.Length]; int indice_de_maximal = 0; for (int i = file_nomalizado.Length - 1; i > 0; i--) { int posicion; if (i + 20 > file_nomalizado.Length) { posicion = file_nomalizado.Length - 1; } else { posicion = i + 20; } int numero = 0; for (int j = posicion - 1; j > i; j--) { if (preguntas.Contains(file_nomalizado[j])) { numero++; } } if (preguntas.Contains(file_nomalizado[i])) { significados[i] = 1 + numero; } else { significados[i] = numero; } if (significados[i] == significados.Max()) { indice_de_maximal = i; } } string regionimportante = ""; for (int i = indice_de_maximal; i < indice_de_maximal + 20; i++) { regionimportante = regionimportante + campo_de_busqueda[i] + " "; } return(regionimportante); }