Question

Je veux déposer quelques mots-clés meta tags dans une page en fonction de l'article étant montré.

Disons que vous chargez la page blabla.com/article.aspx?id=2 L'article qui id est égal à 2 est intitulé « La sagesse des erreurs dans la gestion des affaires délibérés »

Je voudrais inclure les balises meta comme ceci:

<META name="keywords" content="wisdom, deliberate, mistakes, business, management" />

Je besoin d'un moyen d'exclure les mots bruyants (comme SQL Server ne FullText). Comment voulez-vous faire?

1) Enregistrer la liste des mots de bruit dans webconfig? 2) Enregistrer les mots de bruit dans la base de données? 3) Enregistrer les mots de bruit dans un fichier texte? 4) les mots en dur les bruits dans le code (PAS = P)

Alors, comment voulez-vous charger ces mots de bruit pour minimiser la charge de la page? Et enfin, comment voulez-vous analyser la chaîne la suppression des mots de bruit?

Merci!

EDIT: Le bruit (ou arrêt) mots seraient les mêmes que SQL Server 2005 FTS utilise (vérifier noiseENU.txt dans MSSQL \ FTDATA) Voici le contenu de ce fichier:

about
1
after
2
all
also
3
an
4
and
5
another
6
any
7
are
8
as
9
at
0
be
$
because
been
before
being
between
both
but
by
came
can
come
could
did
do
does
each
else
for
from
get
got
has
had
he
have
her
here
him
himself
his
how
if
in
into
is
it
its
just
like
make
many
me
might
more
most
much
must
my
never
no
now
of
on
only
or
other
our
out
over
re
said
same
see
should
since
so
some
still
such
take
than
that
the
their
them
then
there
these
they
this
those
through
to
too
under
up
use
very
want
was
way
we
well
were
what
when
where
which
while
who
will
with
would
you
your
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Était-ce utile?

La solution

@ La réponse de Rob m'a orienté dans la bonne direction pour une tâche similaire. Voici la fonction de travail j'ai fini avec. Le fichier est copié noiseENU.txt en l'état de \Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData.

    Public Function StripNoiseWords(ByVal s As String) As String
        Dim NoiseWords As String = ReadFile("/Standard/Core/Config/noiseENU.txt").Trim
        Dim NoiseWordsRegex As String = Regex.Replace(NoiseWords, "\s+", "|") ' about|after|all|also etc.
        NoiseWordsRegex = String.Format("\s?\b(?:{0})\b\s?", NoiseWordsRegex)
        Dim Result As String = Regex.Replace(s, NoiseWordsRegex, " ", RegexOptions.IgnoreCase) ' replace each noise word with a space
        Result = Regex.Replace(Result, "\s+", " ") ' eliminate any multiple spaces
        Return Result
    End Function

Autres conseils

Ces types de mots sont appelés des « mots vides » -. Qui vous aidera à Google pour quelques idées de mise en œuvre

Mon sentiment est qu'il n'y a pas beaucoup de valeur à le faire - le titre est déjà considéré comme extrêmement important pour l'indexation de recherche. Aussi, est « la sagesse » vraiment un mot pertinent pour l'article?

Je pense que les meilleurs mots-clés sont choisis humains, comme des étiquettes, et maintenus à un niveau spécifique 1 à 3 au maximum qui décrivent vraiment le contenu.

Mais pour répondre à votre question - combien pensez-vous qu'ils seront? Si je devais le faire, je les garde dans une base de données (si j'utilisais déjà un db) et si elles performances impact, les précharger en mémoire (il peut être partagé par toutes les sessions).

Si vous souhaitez filtrer " Bruit " ou " Arrêter " Les mots, je suggère à la recherche dans les expressions regluar, ils sont la foudre rapide à ce genre de choses. En ce qui concerne la mise en œuvre, je ne serais probablement stocker le bruit / arrêt des mots dans une table, puis utilisez les mots pour construire votre regex. Vous devriez être en mesure de mettre en cache la regex sur le serveur afin baisse de performance devrait être minime.

Voici un exemple basé sur les mots que vous avez fournis ci-dessus. Theres un bon testeur de regex en ligne http://regexpal.com/ :

    \b(?:about|1|after|2|all|also|3|an|4|and|5|another|6|any|7|are|8
|as|9|at|0|be|$|because|been|before|being|between|both|but|by|came|can|come|
could|did|do|does|each|else|for|from|get|got|has|had|he|have|her|here|him|
himself|his|how|if|in|into|is|it|its|just|like|make|many|me|might|more|most|
much|must|my|never|no|now|of|on|only|or|other|our|out|over|re|said|same|see|
should|since|so|some|still|such|take|than|that|the|their|them|then|there|these|
they|this|those|through|to|too|under|up|use|very|want|was|way|we|well|
were|what|when|where|which|while|who|will|with|would|you|your)\b

Vous pouvez jeter un oeil à mon poste génération automatique de Les balises META pour ASP.NET . Là, je fais usage de mots de bruit (ou arrêter mots) en anglais, français, espagnol et allemand. Pour chaque langue que j'ai 3 tableaux de mots: bruit standard, les verbes les plus courants et un tiers avec leurs conjugaisons. De cette façon, vous pouvez supprimer des mots de bruit ainsi que des verbes et conjugaisons, même verbes irréguliers (dans d'autres langues que l'anglais, conjugaisons sont complexes beaucoup plus que -ed, -ment et -s résiliations).

Le code exemple de projet VB fourni crée titre méta, meta keywords et meta description pour chaque page asp.net (.aspx) à la volée, sans intervention de l'utilisateur et son coup cpu est seulement au moment de la compilation (première demande). Une fois que la page est compilé, leurs balises (titre, mots-clés, description) restent sans aucune empreinte cpu. En effet, les metas sont calculés et poussé à l'intérieur du fichier à la volée avant qu'il ne soit compilé, grâce à VirtualPathProviders (le système de fichiers n'est pas modifié à tout moment).

Je les stocker dans des tableaux codés qui sont triés afin d'être en mesure d'utiliser l'algorithme de recherche binaire.

J'espère que cela peut vous aider de quelque façon. Cordialement.

ici est la solution

  1. définir la variable $ NOISE_WORDS xs: string *
  2. {
  3. (:. \ B est une limite de mot Ce captures commençant,
  4. fin et milieu de chaîne correspond à des mots entiers. :)
  5. ( '\ BLa \ b', '\ bof \ b', '\ interdiction \ b', '\ bor \ b',
  6. '\ bis \ b', '\ bon \ b', '\ bbut \ b', '\ ba \ b')
  7. }
    1. définir la fonction remove-bruit-mots ($ string, bruit $)
    2. {
    3. (:. Ceci est une fonction récursive :)
    4. si (non (vide (bruit de $))) puis
    5. remove-bruit-mots (
    6. remplacer ($ string, le bruit de $ [1], '', 'i'),
    7. (: Ceci passe le long des mots de bruit après
    8. celui qui vient d'évaluer. :)
    9. bruit de $ [Position ()> 1]
    10. )
    11. autre normalize-space ($ string)
    12. }
      1. laissez source $ chaine1: = "La tragédie du Roi Lear"
    13. soit $ source string2: = "La tragédie du Roi Lear Ces un"
    14. laissez source string3 de $: =
    15. « La tragédie du Roi Lear un des Ces de »
    16. laissez source string4 de $: = "Le d'un des"
    17. (: Devez gérer résultat vide si tous les mots de bruit,
    18. comme dans 4 ci-dessus. :)
    19. Soit $ final: =
    20. remove-bruit-mots (source chaine1 $, NOISE_WORDS $)
    21. déclaration finale $

Visite [texte du lien] [1]

[1]: http://filesharepoint.com pour plus de détails ..

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top