我正在制作一个小型 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/