c# - 在 C# 中标记云

标签 c# tag-cloud

我正在制作一个小型 C# 应用程序,想从简单的纯文本中提取一个标签云。有没有可以为我做到这一点的功能?

最佳答案

在我看来,构建标签云是一个分为两部分的过程:

首先,您需要拆分并计算您的代币。根据文档的结构以及编写的语言,这可能就像计算空格分隔的单词一样简单。然而,这是一种非常幼稚的方法,因为像 the、of、a 等这样的词将具有最大的词数,并且作为标签不是很有用。我建议实现某种单词黑名单,以排除最常见和无意义的标签。

一旦以 (tag, count) 方式获得结果,您可以使用类似于以下代码的内容:

(Searches 是 SearchRecordEntity 的列表,SearchRecordEntity 包含标签及其计数,SearchTagElement 是具有 TagCategory 属性的 SearchRecordEntity 的子类,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);
}

关于c# - 在 C# 中标记云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/354738/

相关文章:

layout - 实现像 Wordle 这样的词云的算法

text - "tag cloud"生成器?

c# - Windows 窗体标签页事件

c# - 忽略 Jquery AJAX 调用 URL 的大小写敏感性

c# - 在 C# 中创建枚举时出错 - "identifier expected"

c# - 无法使用 C# Mono (RaspberryPi) 从串行端口读取

带有 IBM Cognos 的 JavaScript 标签云 - IE 为空或不是对象

Symfony2 - 需要帮助设置 Doctrine 查询以查找标签

html - 如何通过CSS将长文本元素保持在同一行?

c# - 如何在给定的持续时间内从 0..1..0..1..0 等创建脉动值?