コード例 #1
0
ファイル: MarkovNode.cs プロジェクト: lavyaKoli/WebMining
 public double ProbabilityOf(MarkovNode <T> next)
 {
     if (Nexts.ContainsKey(next) == false)
     {
         throw new NotImplementedException("one next step only, more than one not implemented yet");
     }
     return(Nexts[next] * 1.0 / Occurrence);
 }
コード例 #2
0
ファイル: MarkovNode.cs プロジェクト: lavyaKoli/WebMining
        public MarkovNode <T> AddNext(MarkovNode <T> next)
        {
            if (Nexts.ContainsKey(next))
            {
                Nexts[next]++;
            }
            else
            {
                Nexts.Add(next, 1);
            }

            next.Occurrence++;

            return(this);
        }
コード例 #3
0
        public AppFunc AppFuncBuilder(AppFunc next)
        {
            ++AppFuncBuilderCallCount;

            #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
            return(async(IDictionary <string, object> environment) => {
                Environments.Add(environment);
                Nexts.Add(next);

                Action?.Invoke();

                if (ChainToNextAppFunc)
                {
                    next(environment).Wait();
                }
            });
        }
コード例 #4
0
ファイル: MarkovNode.cs プロジェクト: lavyaKoli/WebMining
 public IEnumerable <KeyValuePair <MarkovNode <T>, double> > GetNextsWithProbabilities()
 {
     return(Nexts.Select(x => new KeyValuePair <MarkovNode <T>, double>(x.Key, (x.Value * 1.0 / Occurrence))).OrderByDescending(x => x.Value));
 }
コード例 #5
0
ファイル: MarkovNode.cs プロジェクト: lavyaKoli/WebMining
 public IEnumerable <MarkovNode <T> > GetNexts()
 {
     return(Nexts.OrderByDescending(x => (x.Value * 1.0 / Occurrence)).Select(x => x.Key));
 }