public void TestV2W1consumption() { AssertFileExists(DBF_W2V_RUK, "En-Ru-Uk w2v DB"); var vs = VectorsService.Instance(DBF_W2V_RUK); var w1 = vs.FindByWord("consumption", LangLabel.en); using (var dbx = new FastTextProcessDB(DBF_W2V_RUK)) { var dict_db = dbx.Dict(DictDbSet.DictKind.Main); Log("En min=0.7"); var w2v_en_all = dict_db.GetAll(LangLabel.en); Parallel.ForEach(w2v_en_all, (w2v) => PrintPair(w1, w2v, distance_min: 0.7f)); //foreach (var w2v in w2v_en_all) // PrintPair(w1, w2v, distance_min: 0.6f); Log("Ru min=0.35"); var w2v_ru_all = dict_db.GetAll(LangLabel.ru); Parallel.ForEach(w2v_ru_all, (w2v) => PrintPair(w1, w2v, distance_min: 0.35f)); //foreach (var w2v in w2v_ru_all) // PrintPair(w1, w2v, distance_min: 0.35f); Log("Uk min=0.35"); var w2v_uk_all = dict_db.GetAll(LangLabel.uk); Parallel.ForEach(w2v_uk_all, (w2v) => PrintPair(w1, w2v, distance_min: 0.35f)); } Log("done"); }
public Dict FindVectByWord(string word) { var serv = VectorsService.Instance(W2VDictFile); var vect = serv.FindByWord(word, LangLabel); if (vect == null) { DbgLog($"Vector for '{word}' not found"); } return(vect); }
public void TestCosineRUK() { AssertFileExists(DBF_W2V_RUK, "Ru-Uk w2v DB"); var vs = VectorsService.Instance(DBF_W2V_RUK); var w1u = vs.FindByWord("шкарпетки", LangLabel.uk); var w1r = vs.FindByWord("носки", LangLabel.ru); var w1e = vs.FindByWord("socks", LangLabel.en); var w2u = vs.FindByWord("краватка", LangLabel.uk); var w2r = vs.FindByWord("галстук", LangLabel.ru); var w2e = vs.FindByWord("necktie", LangLabel.en); Log($"cos({w1u.Word}, {w1r.Word}) = {w1u.GetCosine(w1r)}"); Log($"cos({w2u.Word}, {w2r.Word}) = {w2u.GetCosine(w2r)}"); Log($"cos({w1u.Word}, {w1e.Word}) = {w1u.GetCosine(w1e)}"); Log($"cos({w1r.Word}, {w1e.Word}) = {w1r.GetCosine(w1e)}"); Log($"cos({w1u.Word}, {w2u.Word}) = {w1u.GetCosine(w2u)}"); Log($"cos({w1r.Word}, {w2r.Word}) = {w1r.GetCosine(w2r)}"); Log($"cos({w1e.Word}, {w2e.Word}) = {w1e.GetCosine(w2e)}"); Log("done"); }