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#