Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2015, 21:51
Avatar de yosandry91
yosandry91
 
Fecha de Ingreso: diciembre-2013
Mensajes: 34
Antigüedad: 10 años, 4 meses
Puntos: 0
ficheros grande

Hola necesito ideas para leer un fichero ".txt" que posee cerca de 20000 documentos y que necesito que se lea en menos de 2sg , El problema no es leerlo sino a la hora de cargarlos porque tengo que crear una estructura de clases para soportarlo. La idea es mas o meno hacer un buscador mas especifico el modelo vectorial lo que tengo es algo como esto
Código:
            string total = file.ReadToEnd();
            List<string> grande = total.Split('\n').ToList();
            total = "";
            StopWord stopWord = new StopWord();

            Documento docu;
            int posp = 0;
            string[] s;
            System.IO.StreamWriter asa;
            List<string> listaPalabras;

            for (int i = 0; i < grande.Count; i++)
            {
                s = grande[i].Split('.');
                docu = new Documento();

                docu.titulo = s[0];
                listaPalabras = s[1].Split(' ').ToList();

                foreach (var items in listaPalabras)
                {

                    if (!stopWord.isStopWord(items.ToString()))
                    {
                        docu.palabras.Add(posp, Stermin.Stem(items.ToString()));
                        posp++;

                    }
                }
                fichero.Add(id, docu);
                id++;
                asa = new System.IO.StreamWriter(i.ToString() + ".txt");
                asa.WriteLine(s[0]);
                asa.WriteLine(s[1]);
                asa.Close();
            }
use una clase MRI
Código:
  public  class MRI
    {
      Hashtable ficher = new Hashtable();
        public void Add(int id, Documento docu) 
        {
            this.ficher.Add(id,docu);
        }
      


    }
y una Documento
Código:
namespace MRI_Vectorial
{
  public  class Documento
    {

      public string titulo = "";
      public Hashtable palabras = new Hashtable(); 

      public  double peso = 0;

    }
}
Todo este bateo es para ganar en rendimiento pero se tarda cerca de 1mn en crear todos los documentos
Los documentos estan compuestos por un titulo seguidos por un punto y a continuacion el contenido seguido por un \n y asi sucesivamente 20000 veces

Les pido que me sujieran una estructura eficiente de implementacion en c#