Exemplo n.º 1
0
        private IArffDataRow AddData(string id, DateTime?date, ExtractTextVectorBase extractTextVector, PositivityType positivity)
        {
            var cells = extractTextVector.GetCells();

            if (cells.Count == 0)
            {
                return(null);
            }

            lock (DataSet)
            {
                IArffDataRow review = string.IsNullOrEmpty(id) ? DataSet.AddDocument() : DataSet.GetOrCreateDocument(id);
                review.Class.Value = positivity;
                review.Date        = date ?? DateTime.Today;
                foreach (var cell in cells)
                {
                    var name = cell.Name;
                    var data = review.AddRecord(name);
                    if (data != null)
                    {
                        data.Header.Source = cell.Item;
                        data.Value         = cell.Value;
                    }
                }

                return(review);
            }
        }
        public override void PopulateArff(IParsedReview current, PositivityType positivity)
        {
            if (current is null)
            {
                throw new ArgumentNullException(nameof(current));
            }

            lock (DataSet)
            {
                var review = DataSet.AddDocument();
                review.Class.Value = positivity;

                foreach (var word in current.ImportantWords)
                {
                    var item = review.AddRecord(word.Text);
                    if (item == null)
                    {
                        continue;
                    }

                    var existing = (double?)item.Value;
                    if (existing == null)
                    {
                        existing = 0;
                    }

                    item.Value = (double)1 + existing.Value;
                }
            }
        }