Alles schien gut zu funktionieren, als ich meiner Postgres-Datenbank Elemente hinzufügte. Ohne etwas zu ändern, begann meine Rails-Anwendung versagt, wenn es Madeleine irgendwo in meiner app gestartet:Ungültiges Kodierungssymbol mit Klassifizierer gem
EncodingError in EventsController#update
invalid encoding symbol
app/controllers/events_controller.rb:137:in `update'
137 ist das Problem Linie:
135 def update
136 @event = Event.find(params[:id])
137 m = SnapshotMadeleine.new("bayes_data")
....
end
Ich bin in der Lage Dinge in der Konsole zu klassifizieren, obwohl , was ein Teil dessen ist, was mich verwirrt. In der Konsole funktioniert das gut:
m = SnapshotMadeleine.new("bayes_data") {}
=> #<Madeleine::DefaultSnapshotMadeleine:0x000...
m.system
=> #<Classifier::Bayes:0x000...
m.system.classify "test"
Ich verwende den neuesten Classifier Edelstein mit Madeleine.
Ich dachte, dass etwas in meinem Snapshot beschädigt war, dass es versucht zu laden, also habe ich es entfernt, aber das hat das Problem nicht gelöst. Hier ist meine zweite zu letzten Snapshot (jetzt die jüngste):
a = File.read('bayes_data/000000000000000000041.snapshot')
a.encoding
=> #<Encoding:UTF-8>
a.valid_encoding?
=> true
nicht sicher, was hier vor sich geht. Ich sah einige Leute mit Ruby 1.9.3-p125 hatte ähnliche Probleme, also habe ich auf die neueste stabile Version, 1.9.3-p194, aktualisiert, aber das half auch nicht.
Hier ist ein Link auf die Dokumentation für Classifier, der erwähnt, wie Madeleine verwenden, wie gut: http://classifier.rubyforge.org/
ich wirklich einen Einblick in schätzen würde, was hier vor sich geht. Vielen Dank!
Haben Sie das jemals gelöst? Ich finde das gleiche Problem! – joshs
Niemals. Ich habe das Feature für die Zeit aufgegeben. Ich würde empfehlen, einen anderen, stabileren Edelstein zu finden. – airlok
sollten Sie Ihre Zeichenfolge säubern, bevor Sie sie dem Klassifizierer zuführen, z. B. die akzentuierten Zeichen transkribieren –