public EngDictionary RemarkWord(string sentence, string word, string original)
{
if (word.Length == 1)
{
return null;
}
var d = Global.DictionaryService.GetChineseMeanInDict(word);
if (d == null)
{
d = Global.DictionaryService.GetChineseMeanInDict(word.ToLower());
}
var originalMean = Global.DictionaryService.GetChineseMeanInDict(original);
if (d == null ||d.Means.Count == 1)//只有一个解释,那么就不用判断了,返回原型的解释
{
if (originalMean != null)
{
return originalMean;
}
return d;
}
if (originalMean == null)
{
originalMean = d;
}
var pro = GetTag(word, sentence);
WordMean mean = null;
if (pro!=null)//知道单词的词性
{
mean = originalMean.Means.FirstOrDefault(m => m.Property == pro);
}
else//不知道词性,就去取第一个意思
{
mean = originalMean.Means.FirstOrDefault();
}
if (mean != null)
{
originalMean.DefaultMean = mean;
return originalMean;
}
//根本没有所谓的原型形式,直接用该单词查找意思。
if (pro != null)//知道单词的词性
{
mean = d.Means.FirstOrDefault(m => m.Property == pro);
}
else//不知道词性,就去取第一个意思
{
mean = d.Means.FirstOrDefault();
}
if (mean != null)
{
d.DefaultMean = mean;
return d;
}
return d;
}