public wordnetSymsetResults query_srb_symset(List <String> symsetCodes, ILogBuilder response) { wordnetSymsetResults output = new wordnetSymsetResults(); getReady(); List <DataRow> matches = new List <DataRow>(); foreach (String code in symsetCodes) { matches.AddRangeUnique(table.Select(SRB_COLUMN_CODE + " = '" + code + "'")); } foreach (DataRow dr in matches) { String srb = dr[SRB_COLUMN_TOKEN].toStringSafe(); String code = dr[SRB_COLUMN_CODE].toStringSafe(); output.Add(code, srb); } if (response != null) { response.log("wordnet_srb_symset(" + symsetCodes.Join(',') + ") = rows[" + matches.Count + "] => words[" + output.GetEnglish().Count + "]"); } return(output); }
public wordnetSymsetResults query_srb(List <String> srb_tokens, ILogBuilder response, Boolean buildModel = true) { wordnetSymsetResults output = new wordnetSymsetResults(); getReady(); List <DataRow> matches = new List <DataRow>(); foreach (String tkn in srb_tokens) { matches.AddRangeUnique(table.Select(SRB_COLUMN_TOKEN + " LIKE '" + tkn + "'")); } foreach (DataRow dr in matches) { String eng = dr[SRB_COLUMN_TOKEN].toStringSafe(); String code = dr[SRB_COLUMN_CODE].toStringSafe(); output.Add(code, eng); } if (buildModel) { foreach (var pair in output) { termExploreModel md = null; String srb = pair.Key; if (!output.models.ContainsKey(srb)) { md = new termExploreModel(srb); output.models.Add(srb, md); } else { md = output.models[srb]; } String symc = pair.Value[0].ToString(); pos_type pt = posConverter.wordNetFirstNumToPosType.getValue(symc, pos_type.none); gramFlags gr = new gramFlags(); gr.Set(pt); md.gramSet.Add(gr); md.wordnetPrimarySymsets.AddUnique(pair.Value); } } return(output); }
/// <summary> /// Queries Wordnet_eng codes by words/tokens/lemmas. This should be used before <see cref="query_eng_symset(List{string}, imbSCI.Core.interfaces.ILogBuilder)"/> /// </summary> /// <param name="eng_tokens">The eng tokens.</param> /// <param name="response">The response.</param> /// <returns></returns> public wordnetSymsetResults query_eng(List <String> eng_tokens, ILogBuilder response) { //List<symsetSpark> output = new List<symsetSpark>(); wordnetSymsetResults output = new wordnetSymsetResults(); if (!isEngWordNetReady) { prepare_eng(response); } List <DataRow> matches = new List <DataRow>(); foreach (DataTable dt in wordnet_eng.Tables) { DataColumn wColumn = dt.Columns[0]; wColumn.ColumnName = "wCol"; foreach (String tkn in eng_tokens) { matches.AddRangeUnique(dt.Select(wColumn.ColumnName + " LIKE '" + tkn + "'")); } } if (response != null) { response.log("wordnet_eng(" + eng_tokens.Join(',') + ") = rows[" + matches.Count() + "]"); } foreach (DataRow dr in matches) { DataColumn wColumn = dr.Table.Columns[0]; DataColumn cColumn = dr.Table.Columns[1]; String eng = dr[wColumn].toStringSafe(); String code = dr[cColumn].toStringSafe(); output.Add(code, eng); } if (response != null) { response.log("wordnet_eng(" + eng_tokens.Join(',') + ") = rows[" + matches.Count() + "] => token-symset[" + output.Count + "]"); } return(output); }
/// <summary> /// Returns words matchin symset codes /// </summary> /// <param name="symsetCodes">The symset codes.</param> /// <param name="response">The response.</param> /// <returns></returns> public wordnetSymsetResults query_eng_symset(List <String> symsetCodes, ILogBuilder response) { wordnetSymsetResults output = new wordnetSymsetResults(); if (!isEngWordNetReady) { prepare_eng(response); } List <DataRow> matches = new List <DataRow>(); foreach (DataTable dt in wordnet_eng.Tables) { DataColumn cColumn = dt.Columns[1]; cColumn.ColumnName = "cCol"; foreach (String code in symsetCodes) { matches.AddRangeUnique(dt.Select(cColumn.ColumnName + " = '" + code + "'")); } } foreach (DataRow dr in matches) { DataColumn wColumn = dr.Table.Columns[0]; wColumn.ColumnName = "wCol"; DataColumn cColumn = dr.Table.Columns[1]; cColumn.ColumnName = "cCol"; String eng = dr[wColumn].toStringSafe(); String code = dr[cColumn].toStringSafe(); output.Add(code, eng); } if (response != null) { response.log("wordnet_eng_symset(" + symsetCodes.Join(',') + ") = rows[" + matches.Count + "] => words[" + output.GetEnglish().Count + "]"); } return(output); }