你知道如何使這個循環更快嗎? 它計算每個單詞在文檔中的出現頻率。並行計數文檔中的單詞
_documentVectorSpace是包含有關文檔的其他信息的對象列表。
_documentVectorSpace [i] .Terms是文檔中的單詞數組。
_distinctTerms是包含在所有文檔中的所有唯一字的HashSet。
Parallel.For(0, _documentVectorSpace.Count, i =>
{
int count = 0;
double[] vec = new double[_distinctTerms.Count];
foreach (string term in _distinctTerms)
{
vec[count++] = Weight(_documentVectorSpace[i].Terms, term);
}
_documentVectorSpace[i].VectorSpace = vec;
});
,其中作爲權重定義:
private float Weight(string[] document, string term)
{
return document.Where(s => s == term).Count();
}
對於字符串比較,您應該使用'String.Equals(s,term,StringComparison.OrdinalIgnoreCase)'。 – MichaelS
聽起來像「信息檢索」作業:) – Alireza