Nuage de Tags en C #
Je suis un petit C# application et souhaitez extraire une nuage de tags à partir d'un texte simple. Est-il une fonction qui pourrait le faire pour moi?
source d'informationauteur Layla
Vous devez vous connecter pour publier un commentaire.
La construction d'un nuage de tags est, comme je le vois, un processus en deux parties:
Tout d'abord, vous avez besoin de partager et de compter vos jetons. Selon la façon dont le document est structuré, ainsi que la langue il est écrit, ce pourrait être aussi facile que de compter l'espace-mots séparés. Cependant, c'est une approche naïve, comme des mots comme le, la, de, a, etc... auront la plus grande considération et ne sont pas très utiles comme des balises. Je suggère de mettre en œuvre une sorte de mot de, liste noire, afin d'exclure le plus commun et le sens des balises.
Une fois que vous avez le résultat dans un (tag, comte de), vous pouvez utiliser quelque chose de similaire pour le code suivant:
(Recherche est une liste de SearchRecordEntity, SearchRecordEntity détient la balise et son comte, SearchTagElement est une sous-classe de SearchRecordEntity qui a le TagCategory attribut,et ProcessedTags est une Liste de SearchTagElements qui détient le résultat)
Je voudrais vraiment vous recommandons d'utiliser http://thetagcloud.codeplex.com/. Il est très propre mise en œuvre qui prend soin de regroupement, de comptage et de rendu de balises. Il fournit également des fonctionnalités de filtrage.
Voici un ASP.NET Nuage de Contrôlequi pourrait vous aider à obtenir au moins commencé, source complet inclus.
Prendre un coup d'oeil à http://sourcecodecloud.codeplex.com/
Vous pouvez prendre un coup d'oeil à WordCloudun projet sur CodeProject. Il comprend 430 cesse de mots (comme
the
an
a
etc.) et utilise le Portier découlant de l'algorithme, ce qui réduit les mots à leur racine, de sorte que "étaient issus de souches" sont tous comptés comme 1 occurrence d'un même mot.Tout en C# - la seule chose que vous avez à faire il les modifier à la production de code HTML à la place de la visualisation de la il crée.
Jetez un oeil à ce. Il a travaillé pour moi. Il y a un projet dans le dossier Exemples nommé WebExample qui vous aideront à la résolution de ce.
https://github.com/chrisdavies/Sparc.TagCloud
Je ne sais pas si c'est exactement ce que vous cherchez, mais il peut vous aider à obtenir commencé:
LINQ qui compte mot de la fréquence(en VB mais je suis la conversion de C# maintenant)
Vous pouvez stocker une catégorie et la quantité d'objets qu'il a en quelque sorte de la collection, ou une table de base de données.
De cela, vous pouvez obtenir le nombre pour une certaine catégorie et ont certaines limites. Si votre paramètre est la catégorie, et votre valeur de retour est un nombre.
Donc, si le comte a >10 & <20, puis appliquer un .De style CSS pour le lien qui vous sera d'une certaine taille.
Vous pouvez stocker ces chiffres comme clés dans une collection, et ensuite obtenir la valeur où la clé correspond à votre valeur de retour (comme je l'ai mentionné ci-dessus).
Je n'ai pas le code source à portée de la main pour ce processus, mais vous ne trouverez pas une fonction simple à faire tout cela pour vous. Un contrôle, oui (comme ci-dessus).
C'est très une approche classique et le niveau moyen de le faire à partir de ce que j'ai vu dans le magazine des tutoriels, etc, et la première approche je pense (pas forcément les meilleurs).
Jetez un oeil à cette réponse pour un algorithme:
L'algorithme à mettre en œuvre un nuage de mots comme Wordle
La "DisOrganizer" mentionné dans les réponses pourraient servir vos fins. Avec un peu de changement, vous pouvez laisser ce "Disorganizer" servir d'une image, comme vous le souhaitez. PS: Le code est écrit en C# https://github.com/chandru9279/zasz.me/blob/master/zasz.me/
La Zoomable TagCloud Generator qui extrait les mots clés à partir d'une source donnée (fichier texte et d'autres sources) et affiche le TagCloud que le Zoom de l'Interface Utilisateur (ZUI)