private void WriteWordVector(WordVector wv) { Writer.Write(wv.Word); Writer.Write(' '); Writer.Write(string.Join(" ", wv.Vector)); Writer.Write('\n'); }
public WordVector ReadVector() { if (CurrentIndex == Words) { return(null); } WordVector result = null; using (var br = GetReader()) { var word = ReadString(br); float[] vector = new float[Size]; for (int j = 0; j < Size; j++) { vector[j] = br.ReadSingle(); } result = new WordVector(word, vector); if (LineBreaks) { br.ReadByte(); // consume line break } } CurrentIndex++; return(result); }
public WordVector ReadVector() { if (CurrentIndex == Words) return null; WordVector result = null; using (var br = GetReader()) { var word = ReadString(br); float[] vector = new float[Size]; for (int j = 0; j < Size; j++) { vector[j] = br.ReadSingle(); } result = new WordVector(word, vector); if (LineBreaks) { br.ReadByte(); // consume line break } } CurrentIndex++; return result; }
private void WriteWordVector(WordVector wv) { WriteString(wv.Word); WriteString(" "); foreach (var f in wv.Vector) { Writer.Write(f); } }
public Model Open() { using (var reader = new StreamReader(this.Stream, Encoding.UTF8, true, 4 * 1024)) { var header = ReadHeader(reader); var words = header[0]; var size = header[1]; var vectors = new List <WordVector>(); WordVector vector = null; while (null != (vector = ReadVector(reader))) { vectors.Add(vector); } return(new Model(words == 0 ? vectors.Count : words, size == 0 ? (int)this.Stream.Length : size, vectors)); } }
public WordVector ReadVector(BinaryReader br, int words, int size) { var word = ReadString(br); var vector = new float[size]; for (int j = 0; j < size; j++) { vector[j] = br.ReadSingle(); } var result = new WordVector(word, vector); if (LineBreaks) { br.ReadByte(); // consume line break } return(result); }
public static float[] Subtract(this float[] word1, WordVector word2) { return word1.Subtract(word2.Vector); }
public static double Distance(this float[] word1, WordVector word2) { return(word1.Distance(word2.Vector)); }
public static float[] Subtract(this float[] word1, WordVector word2) { return(word1.Subtract(word2.Vector)); }
public static float[] Add(this float[] word1, WordVector word2) { return(word1.Add(word2.Vector)); }
protected void AddVector(WordVector vector) { this.vectors.Add(vector); }
public static double Distance(this float[] word1, WordVector word2) { return word1.Distance(word2.Vector); }
public static float[] Add(this float[] word1, WordVector word2) { return word1.Add(word2.Vector); }
public List <WordDistance> GetWordDistances(WordVector word) { return(vectors.DistanceList(word)); }
public static List <WordDistance> DistanceList(this List <WordVector> wordList, WordVector currentWord) { var distanceList = new List <WordDistance>(); foreach (WordVector word in wordList) { distanceList.Add(new WordDistance(word.Word, word.Distance(currentWord), currentWord.Word)); } return(distanceList); }