我正在製作一個小的C#應用程序並希望從簡單的純文本中提取標籤雲。有沒有可以爲我做的功能?C中的標籤雲#
C中的標籤雲#
回答
我不知道如果這正是你尋找,但它可以幫助您開始:
LINQ算數詞頻(在VB,但我轉換爲C#現在)
Dim Words = "Hello World))))) This is a test Hello World"
Dim CountTheWords = From str In Words.Split(" ") _
Where Char.IsLetter(str) _
Group By str Into Count()
這是一個ASP.NET Cloud COntrol,這可能會幫助您至少開始使用,包括全部源代碼。
建立一個標籤雲,在我看來,一個兩部分的過程:
首先,你需要分割和計數您的令牌。根據文檔的結構和寫入語言的不同,這可能與計算空格分隔單詞一樣簡單。然而,這是一種非常幼稚的方法,因爲像a,a等這樣的詞將具有最大的單詞數量,並且作爲標籤並不是很有用。我會建議實施某種黑名單,以排除最常見和無意義的標籤。
一旦有結果的(標記,計數)的方式,你可以使用類似於下面的代碼的東西:
(搜索是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);
}
你可以存儲一個類別,它在某種集合的項目的數量,或數據庫表。
由此,您可以獲得某個類別的計數並具有一定的界限。所以你的參數是類別,你的返回值是一個計數。
因此,如果計數> 10 & < 20,則將.CSS樣式應用於具有特定大小的鏈接。
您可以將這些計數存儲爲集合中的鍵,然後獲取鍵與您的返回值匹配的值(如上所述)。
我還沒有手頭的源代碼,但你不會找到一個簡單的函數來爲你做這一切。控制,是的(如上)。
這是一個非常傳統的方法和從雜誌教程等中看到的標準方式,以及我會想到的第一種方法(不一定是最好的)。
你可能想看看WordCloud CodeProject上的一個項目。它包含430個停用詞(如the
,an
,a
等),並使用Porter詞幹算法,該算法將詞彙縮減到其根,以便「詞幹詞幹」全部計爲同一詞的1次出現。
這一切都在C#中 - 你必須做的唯一一件事情就是修改它來輸出HTML,而不是它創建的可視化。
我真的會推薦使用http://thetagcloud.codeplex.com/。這是一個非常乾淨的實現,負責標記的分組,計數和呈現。它還提供過濾功能。
其從一給定源(文本文件和其它來源)中提取的關鍵字的Zoomable TagCloud Generator並顯示TagCloud作爲縮放用戶界面(ZUI)
看一看這個答案的算法:
Algorithm to implement a word cloud like Wordle
的答案湊提到的「DisOrganizer」 ld服務你的目的。稍做改動,你可以讓這個「Disorganizer」以你想要的方式提供圖片。 PS:代碼是用C編寫的#https://github.com/chandru9279/zasz.me/blob/master/zasz.me/
看看這個。它爲我工作。在Example文件夾下有一個名爲WebExample的項目,它可以幫助你解決這個問題。 https://github.com/chrisdavies/Sparc.TagCloud
- 1. C#LINQ標籤雲
- 2. 標籤雲JS + Flash。雲中的實際標籤無法點擊?
- 3. WPF中的標籤雲
- 4. Nhibernate標籤雲
- 5. PHP標籤雲
- 6. 氣泡標籤雲
- 7. 3d標籤雲asp.net
- 8. 更改標籤雲
- 9. 標籤雲造型
- 10. 標籤雲與mysql
- 11. 全網標籤雲
- 12. 在wordpress中排除標籤雲中的標籤
- 13. WPF的標籤雲控制
- 14. 標籤雲庫的Java
- 15. Silverlight的標籤雲控制
- 16. JSP中的Href和標籤雲
- 17. jquery中的動態雲標籤
- 18. sample或minimum C++中的標籤雲示例
- 19. 只顯示acts_as_taggable_on標籤雲中最受歡迎的標籤
- 20. 關於縮放標籤雲中的標籤
- 21. 如何區分雲標籤中的標籤流行度?
- 22. 根據標籤雲使用次數更改標籤雲中標籤的背景顏色
- 23. 標籤雲web服務?
- 24. Rails:標籤雲與acts_as_taggable
- 25. PHP標籤雲系統
- 26. jquery標籤雲錯誤?
- 27. Django標籤雲插件
- 28. 標籤雲過濾器
- 29. 標籤雲算法(計算)
- 30. 拉力賽標籤雲
您提供的鏈接現已停止。 – 2011-08-21 15:30:04
仍然死亡。它應該指向http://www.codeproject.com/Articles/14661/Cloud-Control-for-ASPNET嗎? – 2013-09-21 14:55:41