我有以下程序计算每个文档条目的文档频率 (freq)
foreach (var termIndex in freq.Select(entry => GetTermIndex(entry.Key)))
{
_docFreq[i][termIndex]++;
}
以及获取术语索引的过程
rivate int GetTermIndex(string term)
{
int i;
if (_wordsIndex.TryGetValue(term, out i))
return i;
else
return 0;
}
其中,所有术语都在另一个字典 (_wordsIndex) 中编入索引。
根据上述过程,如果freq中的entry.Key不存在,那么GetTermIndex将返回0,这将向上计数_docFreq(_docFreq[i][0]),这就是问题所在。那么,当 entry.Key 不存在时,我怎么能避免计数呢?我试图做类似的事情
rivate int GetTermIndex(string term)
{
int i;
if (_wordsIndex.TryGetValue(term, out i))
return i;
else
return -1;
}
但当然会出现错误“索引超出数组范围”,因为_docFreq[i][-1] 没有索引。
请问有什么帮助吗??非常感谢