Tutto sembrava funzionare correttamente quando aggiungevo elementi al mio database Postgres. Senza cambiare nulla, la mia applicazione Rails iniziato non riuscendo ogni volta che ha iniziato Madeleine ovunque nella mia app:Simbolo di codifica non valido con gemma Classifier
EncodingError in EventsController#update
invalid encoding symbol
app/controllers/events_controller.rb:137:in `update'
137 è la linea problema:
135 def update
136 @event = Event.find(params[:id])
137 m = SnapshotMadeleine.new("bayes_data")
....
end
Sono in grado di classificare le cose nella console, anche se , che è parte di ciò che mi sta causando confusione. Nella console, questo funziona correttamente:
m = SnapshotMadeleine.new("bayes_data") {}
=> #<Madeleine::DefaultSnapshotMadeleine:0x000...
m.system
=> #<Classifier::Bayes:0x000...
m.system.classify "test"
Sto usando l'ultima gemma Classifier con Madeleine.
Ho immaginato che qualcosa fosse danneggiato nella mia istantanea che ha tentato di caricare, quindi l'ho rimosso, ma questo non risolveva il problema. Ecco la mia seconda a ultima istantanea (oggi la più recente):
a = File.read('bayes_data/000000000000000000041.snapshot')
a.encoding
=> #<Encoding:UTF-8>
a.valid_encoding?
=> true
Non sei sicuro di quello che sta succedendo qui. Ho visto alcune persone con Ruby 1.9.3-p125 avuto problemi simili, quindi ho aggiornato all'ultima versione stabile, 1.9.3-p194, ma non è stato d'aiuto.
Ecco un link alla documentazione per il classificatore, che cita come utilizzare Madeleine così: http://classifier.rubyforge.org/
Mi piacerebbe davvero apprezzare qualsiasi indicazioni su ciò che sta succedendo qui. Grazie!
Hai mai risolto questo? Sto trovando lo stesso problema! – joshs
Mai fatto. Ho finito per abbandonare la funzione per il tempo. Consiglierei di trovare un'altra gemma più stabile. – airlok
si dovrebbe pulire la stringa prima di inviarla al classificatore, ad esempio, traslitterare i caratteri accentati –