2012-02-10 7 views
2

Je me demande si quelqu'un peut m'aider à analyser les données pour les mots clés.Comment analyser efficacement les données

dire que je suis à la recherche pour ce mot clé: My Example Yo (ce qui est l'un des nombreux mots-clés)

J'ai données comme celui-ci

MY EXAMPLE YO #108 
my-example-yo #108 
my-example #108 
MY Example #108 

Ceci est juste quelques combinaisons. Il pourrait y avoir des mots ou des nombres devant ces phrases, il pourrait y avoir dans tous les cas, peut-être que rien ne vient après cela, peut-être que l'exemple ci-dessus vient après.

Quelques idées me sont venues à l'esprit.

  1. magasin toutes les combinaisons que je peux penser possible dans ma base de données puis utilisez contient

L'inconvénient avec cela que je passe une grande table de base de données avec toutes les combinaisons de tout ce que je dois trouver. Je devrai alors charger les données en mémoire (via nhibernate et vérifier chaque combinaison). J'essaie de déterminer quelle catégorie utiliser en fonction du mot clé et ils peuvent télécharger des milliers de lignes à vérifier.

Même si je charge des sous-ensembles et que je les feuillette, j'imagine que cela sera lent.

  1. Supprimez tous les caractères spéciaux et créez des espaces simples et ignorez la casse et essayez d'utiliser regex pour voir la correspondance du mot clé.

Vous ne savez pas quoi faire si le mot-clé contient des caractères spéciaux comme des tirets et autres.

Je sais que je n'obtiendrai pas toutes les combinaisons, mais je veux essayer d'en obtenir autant que possible.

+0

Comment les données que vous analysez sont-elles stockées? Est-il stocké dans un fichier plat, une base de données, une structure dans une application C#, ou autre chose? –

+0

Les données que je stocke proviennent d'un fichier csv qui sera ensuite converti en un datatable via filehelper. Je vérifie ensuite si une colonne que je prévois manque. J'essaie alors de trouver une colonne potentielle qui peut me procurer cette information (à partir des fichiers que j'ai vus c'est généralement un champ de description) et c'est ce que j'essaye d'analyser. Les mots-clés seront dans une base de données mssql qui sera obtenue par nhibernate. – chobo2

+0

@ chobo2 Vous pouvez utiliser l'utilitaire 'grep' pour cela. – ElKamina

Répondre

1

Avez-vous considéré Lucene.Net? Je ne l'ai pas utilisé moi-même, mais j'ai entendu dire que c'était un excellent outil pour la recherche en texte intégral. Il pourrait aussi bien faire avec la recherche par mot-clé. Je crois que stackoverflow uses Lucene.

+0

Je vais regarder dans. Je me demande cependant s'il semble utiliser des index. Le tableau avec les mots-clés sera probablement guid et varchar() un index aidera-t-il? Je n'utilise pas trop les index, donc je ne sais pas grand-chose à leur sujet. – chobo2

Questions connexes