コード例 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SpaceCategoryModel"/> class.
        /// </summary>
        /// <param name="label">The label.</param>
        /// <param name="documents">The documents.</param>
        public SpaceCategoryModel(SpaceLabel label, IEnumerable <SpaceDocumentModel> documents)
        {
            name   = label.name;
            Length = 0;

            foreach (SpaceDocumentModel doc in documents)
            {
                terms.MergeDictionary(doc.GetTerms(true, true));
                Length += doc.Length;

                Children.Add(doc);
            }
            if (SpaceModelConstructor.spaceSettings.DoMaintainWordIndex)
            {
                Words = new Int32[Length];
            }

            if (SpaceModelConstructor.spaceSettings.DoMaintainWordIndex)
            {
                Int32 c = 0;
                foreach (SpaceDocumentModel doc in documents)
                {
                    if (doc.Words != null)
                    {
                        foreach (Int32 w in doc.Words)
                        {
                            Words[c] = w;
                            c++;
                        }
                    }
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// Adds the label if not already declared within the context
 /// </summary>
 /// <param name="text">The text.</param>
 /// <param name="context">The context.</param>
 public void AddLabel(String text, SpaceModel context)
 {
     if (!context.labels.Any(x => x.name == text))
     {
         SpaceLabel label = new SpaceLabel();
         label.name = text;
         context.labels.Add(label);
     }
 }
コード例 #3
0
        /// <summary>
        /// Sets the label.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <param name="label">The label.</param>
        /// <param name="space">The space.</param>
        public static void SetLabel(this SpaceDocumentModel model, SpaceLabel label, SpaceModel space)
        {
            space.LabelToDocumentLinks.Add(label, model, 1.0);

            var ms = model.Children.ToList();

            while (ms.Any())
            {
                List <SpaceDocumentModel> nestMs = new List <SpaceDocumentModel>();
                foreach (var m in ms)
                {
                    nestMs.AddRange(m.Children);
                    space.LabelToDocumentLinks.Add(label, m, 1.0);
                }
                ms = nestMs;
            }
        }