2009-12-30 14 views
2

Il suffit d'apprendre Ruby et trouvé quelque chose de bizarre (au moins pour programmeur ansi-c).Ruby, pourquoi l'utilisation de FeedNormalizer casse Classifier :: CRM114

Ayant Mac OS X 10.6.2, rubis 1.8.7 (11/08/2008 patchlevel 72) [darwin10.0-universel], feed-normaliseur 1.5.1 et crm114 1.0.3

require 'rubygems' 
require 'crm114' 
require 'feed-normalizer' 
#FeedNormalizer::FeedNormalizer.parse open("http://news.google.com/news?ned=us&topic=w&output=rss") 

crm = Classifier::CRM114.new([:interesting, :boring]) 

crm.train! :interesting, 'Some data set with a decent signal to noise ratio.' 
crm.train! :boring, 'Pig latin, as in lorem ipsum dolor sit amet.' 

puts crm.classify 'Lorem ipsum' 

Exécution fichier ci-dessus:

$ ruby crmdebug.rb 
interesting 
0.5 

Très bien, cela est tout simplement faire des démonstrations.

Maintenant décommentant la ligne #FeedNormalizer...

Et d'exécuter le fichier sans commentaire:

$ ruby crmdebug.rb 
nil 
0.0 

?! Qu'est-ce qu'une terre se passe ici? Pourquoi l'utilisation de FeedNormalizer casse crm114 (ceux qui ne sont pas liés)? Comment déboguer ce genre de situation? Est-ce typique qu'une autre classe brise d'autres classes? J'ai redémarré aussi (hé c'est Mac;))

Répondre

0

Je n'ai pas pu dupliquer ce problème. Voici les étapes que j'ai suivies:

sudo apt-get install crm114 
sudo gem install crm114 
sudo gem install feed-normalizer 

Tout est OK. Maintenant, exécutez l'exemple de code avec feed-normizer commenté.

$ ruby crmdebug.rb 
interesting 
0.5 

... et décommentée:

$ ruby crmdebug.rb 
interesting 
0.5 

Ubuntu 2.6.24-26, Ruby 1.8.6. Désolé, c'est tout ce que j'ai.

0

Feed-normalisateur est actuellement un petit tour supérieur à votre version installée. Vous montrez 1.5.1.

 
gem search feed-normalizer -r 

*** REMOTE GEMS *** 

feed-normalizer (1.5.2) 

donc il pourrait être résolu dans la mise à jour. Voici le update log.