예제 #1
0
        public static void TestPrediction(MLContext mLContext)
        {
            while (true)
            {
                Console.WriteLine("Enter review or type quit");
                var text = Console.ReadLine();
                if (text.ToLower().Equals("quit"))
                {
                    break;
                }
                AnalyzedData analyzedData = new AnalyzedData {
                    content = text
                };
                ITransformer trainedModel;

                using (var stream = new FileStream(generatedModelLoc, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    trainedModel = mLContext.Model.Load(stream);
                }

                var PredictionFunction = trainedModel.MakePredictionFunction <AnalyzedData, PredictedData>(mLContext);

                var result = PredictionFunction.Predict(analyzedData);
                Console.WriteLine("=====================================================================================================");

                Console.WriteLine($"Text: {analyzedData.content} | Toxic ?: { Convert.ToBoolean(result.Toxicity)} ");
                Console.WriteLine($"Probability: {result.Probability}");
                Console.WriteLine($"Score: {result.Score}");
            }
        }
예제 #2
0
 public Term(long keyId, AnalyzedData tokenizedString, int index)
 {
     KeyId           = keyId;
     TokenizedString = tokenizedString;
     Index           = index;
     Vector          = tokenizedString.Embeddings[index];
 }
예제 #3
0
 public Term(object key, AnalyzedData tokenizedString, int index)
 {
     Key             = key;
     KeyHash         = key.ToHash();
     TokenizedString = tokenizedString;
     Index           = index;
     Vector          = tokenizedString.Embeddings[index];
 }
        /// <summary>
        ///     First load then analyze data
        /// </summary>
        public void Analyze()
        {
            _rawData.Clear();
            AnalyzedData.Clear();

            LoadData();

            foreach (var dayData in _rawData)
            {
                var analyzed = new AnalyzedData
                {
                    Date                 = dayData.Key,
                    Average              = dayData.Value.Average(entry => entry.Value),
                    ListenersPeak        = dayData.Value.Max(entry => entry.Value),
                    TimeWithoutListeners = dayData.Value.Count(entry => entry.Value == 0) / (double)dayData.Value.Count
                };

                AnalyzedData.Add(analyzed);
            }

            NotifyOfPropertyChange(nameof(AverageListenersPlotMaxScale));
            NotifyOfPropertyChange(nameof(TimeWithoutListenersPlotMaxScale));
            NotifyOfPropertyChange(nameof(ListenersPeakPlotMaxScale));

            NotifyOfPropertyChange(nameof(AverageListeners));
            NotifyOfPropertyChange(nameof(TimeWithoutListeners));
            NotifyOfPropertyChange(nameof(ListenersPeak));

            AverageListenersData.Clear();
            TimeWithoutListenersData.Clear();
            ListenersPeakData.Clear();

            AverageListenersData.AddRange(AnalyzedData.Select(entry =>
                                                              new DataPoint(DateTimeAxis.ToDouble(entry.Date), entry.Average)));
            TimeWithoutListenersData.AddRange(AnalyzedData.Select(entry =>
                                                                  new DataPoint(DateTimeAxis.ToDouble(entry.Date), entry.TimeWithoutListeners * 100)));
            ListenersPeakData.AddRange(AnalyzedData.Select(entry =>
                                                           new DataPoint(DateTimeAxis.ToDouble(entry.Date), entry.ListenersPeak)));

            IsAnalyzed = true;
        }
예제 #5
0
 public void Clear()
 {
     clear();
     m_AnalyzedData = null;
 }
예제 #6
0
 public void Init(AnalyzedData data)
 {
     m_AnalyzedData = data;
     init();
 }