public DependencyInstance[] CreateInstances(string fileName,
string featFileName)
{
CreateAlphabet(fileName);
Console.WriteLine("Num Features: " + DataAlphabet.Count);
var reader =
new StreamReader(new FileStream(fileName, FileMode.Open), Encoding.UTF8);
string[][] lines = ReadLines(reader);
var lt = new List<object>();
BinaryWriter bWriter = CreateForest
? new BinaryWriter(new FileStream(featFileName, FileMode.Create)) //In doubt
: null;
int num1 = 0;
while (lines != null)
{
// Console.WriteLine("Creating Feature Vector Instance: " + num1);
string[] toks = lines[0];
string[] pos = lines[1];
string[] labs = lines[2];
string[] deps = lines[3];
var deps1 = new int[deps.Length];
for (int i = 0; i < deps.Length; i++)
deps1[i] = int.Parse(deps[i]);
FeatureVector fv = CreateFeatureVector(toks, pos, labs, deps1);
var pti_ = new DependencyInstance(toks, pos, labs, fv);
string spans = "";
for (int i = 1; i < deps.Length; i++)
{
spans += deps[i] + "|" + i + ":" + TypeAlphabet.LookupIndex(labs[i]) + " ";
}
pti_.ActParseTree = spans.Trim();
if (CreateForest)
WritePossibleFeatures(pti_, bWriter);
pti_ = null;
lt.Add(new DependencyInstance(toks.Length));
lines = ReadLines(reader);
num1++;
}
CloseAlphabets();
var pti = new DependencyInstance[lt.Count];
for (int i = 0; i < pti.Length; i++)
{
pti[i] = (DependencyInstance) lt[i];
}
if (CreateForest)
bWriter.Close();
reader.Close();
return pti;
}