我搜索了平均lambda表达式的确切工作方式,但找不到。
我的问题是:我有一些用不同方式表示的情绪分类。例如,肯定句用数字表示>大于0。它可以是1到无穷大(1、2、5、100……)对于否定句,用同样的方式,但用数字表示<小于0(-1,-2…)-我知道这不是更好的表达方式。
我需要计算出阳性发生率的平均值。我在这里找到的关于SOF问题的每个答案,如果我将所有值相加,除以总数,我将得到平均值。没关系。
例如,如果我有11个句子,其中10个是正值,值为1,(总和为10),一个是负值,值为-10,那么我的平均值是:10-10/11=0。
var average = context.CatchDetails.Where(x => x.Monitoring.Client.Id == custmrid
&& x.Data.published >= datai2
&& x.Data.published <= dataf2
&& x.Monitoring.id == monitoring).ToList().Average(y => y.Sentiment);
我要做的是,取所有的肯定句(count),除以总句数(count)。例子:
总计数=11
正计数=10
11月10日=0.9090,即90,90%的阳性事件。
var positive = context.CatchDetails.Count(x => (x.Monitoring.Client.Id == custmrid)
&& x.Data.published >= datai2 && x.Data.published <= dataf2
&& x.Monitoring.id == monitoring
&& x.Sentiment > 0);
var total = context.CatchDetails.Count(x => (x.Monitoring.Client.Id == custmrid)
&& x.Data.published >= datai2 && x.Data.published <= dataf2
&& x.Monitoring.id == monitoring);
double mediaPositive = ((double)positive / (double)total);
有没有更好的可能性?
搜索:
How to get words average length using Lambda Expression
Getting an average from a C# array