0 votes

extraire des données d'une chaîne de caractères au format similaire

Recherche quelque chose de similaire à

http://code.google.com/p/templatemaker/

mais pour ruby...

Il s'agit de comparer un échantillon de chaînes aléatoires (100) et d'en extraire uniquement les chaînes uniques...

1voto

nas Points 2869

Vous pouvez mettre toutes les chaînes dans un tableau et trouver l'uniq, comme sp

string_array = ['string1', 'string2', 'string3', 'string4', 'string1', 'string1', 'string4' ]
unique_strngs = string_array.uniq 
#=> ['string1', 'string2', 'string3', 'string4']

0voto

JosefZ Points 1465

Je ne connais rien qui existe déjà, mais il ne devrait pas être difficile d'écrire quelque chose.

Pour autant que je sache, quelque chose du genre de ce qui suit devrait fonctionner :

  • lorsque #learn est appelé pour la première fois avec une chaîne de caractères, il découpe cette chaîne en fonction d'une expression régulière et stocke les morceaux dans un tableau.
  • lorsque #learn est appelé la prochaine fois avec une chaîne de caractères, il découpe cette chaîne et la compare à ce qui a déjà été stocké, en recherchant les morceaux qui diffèrent de ceux qui ont été stockés.
    • pour les morceaux qui diffèrent, stocker un marqueur dans le tableau, peut-être un symbole :hole (pour utiliser la terminologie du lien)
  • lorsqu'une chaîne de caractères est ensuite passée à #extract, celui-ci découpe à nouveau la chaîne, la compare à la signature construite par #learn et s'il y a une correspondance, extrait les mots qui se trouvent à la place du symbole :hole et les renvoie sous la forme d'un tableau.
  • la méthode #as_text(string) remplacerait simplement les symboles :hole du tableau de signatures par la chaîne de caractères fournie, les réunirait et renverrait le résultat.

Je suis sûr qu'il y a des problèmes avec cet algorithme car il ne fonctionnera pas exactement comme dans le lien fourni, mais c'est un début. Je l'ai juste improvisé.

Mais pour autant que je sache, il n'y a rien de disponible en Ruby pour faire cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X