Создание облака тегов, как я понимаю, состоит из двух частей:
Во-первых, вам нужно разделить и посчитать свои жетоны. В зависимости от структуры документа, а также от языка, на котором он написан, это может быть так же просто, как подсчет слов, разделенных пробелами. Однако это очень наивный подход, так как такие слова, как, of, a и т. Д. ... будут иметь наибольшее количество слов и не очень полезны в качестве тегов. Я бы предложил внедрить какой-то черный список слов, чтобы исключить наиболее распространенные и бессмысленные теги.
Получив результат (тег, счет), вы можете использовать что-то похожее на следующий код:
(Searches - это список SearchRecordEntity, SearchRecordEntity содержит тег и его счет, SearchTagElement является подклассом SearchRecordEntity, который имеет атрибут TagCategory, а ProcessedTags - это список SearchTagElements, который содержит результат)
double max = Searches.Max(x => (double)x.Count);
List<SearchTagElement> processedTags = new List<SearchTagElement>();
foreach (SearchRecordEntity sd in Searches)
{
var element = new SearchTagElement();
double count = (double)sd.Count;
double percent = (count / max) * 100;
if (percent < 20)
{
element.TagCategory = "smallestTag";
}
else if (percent < 40)
{
element.TagCategory = "smallTag";
}
else if (percent < 60)
{
element.TagCategory = "mediumTag";
}
else if (percent < 80)
{
element.TagCategory = "largeTag";
}
else
{
element.TagCategory = "largestTag";
}
processedTags.Add(element);
}