2012-06-19 17 views
7

के साथ अमान्य एन्कोडिंग प्रतीक सबकुछ ठीक काम कर रहा था क्योंकि मैंने अपने पोस्टग्रेज़ डेटाबेस में आइटम जोड़े थे।वर्गीकृत मणि

EncodingError in EventsController#update 
    invalid encoding symbol 
    app/controllers/events_controller.rb:137:in `update' 

137 समस्या लाइन है:

135 def update 
136 @event = Event.find(params[:id]) 
137 m = SnapshotMadeleine.new("bayes_data") 
     .... 
    end 

मैं कंसोल में चीजों को वर्गीकृत करने में सक्षम हूँ, हालांकि कुछ भी बदलने के बिना, मेरी रेल एप्लिकेशन में नाकाम रहने के जब भी यह मेरे एप्लिकेशन में कहीं भी मेडेलीन शुरू कर दिया शुरू कर दिया , जो मुझे भ्रम पैदा कर रहा है का हिस्सा है। कंसोल में, यह ठीक काम करता है:

m = SnapshotMadeleine.new("bayes_data") {} 
    => #<Madeleine::DefaultSnapshotMadeleine:0x000... 
m.system 
    => #<Classifier::Bayes:0x000... 
m.system.classify "test" 

मै मैडलेन के साथ नवीनतम क्लासिफायर मणि का उपयोग कर रहा हूं।

मुझे लगा कि मेरे स्नैपशॉट में कुछ दूषित हो गया था, जिसने इसे लोड करने का प्रयास किया, इसलिए मैंने इसे हटा दिया, लेकिन इससे समस्या हल नहीं हुई। यहाँ मेरी दूसरी करने के लिए पिछले स्नैपशॉट (अब हाल ही में एक) है:

a = File.read('bayes_data/000000000000000000041.snapshot') 
a.encoding 
    => #<Encoding:UTF-8> 
a.valid_encoding? 
    => true 

सुनिश्चित नहीं हैं कि यहां क्या हो रहा है। मैंने रूबी 1.9.3-पी 125 के साथ कुछ लोगों को भी इसी तरह की समस्याएं देखीं, इसलिए मैंने नवीनतम स्थिर रिलीज, 1.9.3-पी 1 9 4 में अपग्रेड किया, लेकिन इससे मदद नहीं मिली। http://classifier.rubyforge.org/

मैं वास्तव में यहाँ क्या हो रहा है में किसी भी अंतर्दृष्टि सराहना करेंगे:

यहाँ वर्गीकरणकर्ता के लिए दस्तावेज़, जो उल्लेख मेडेलीन का उपयोग कैसे करें के साथ-साथ करने के लिए एक लिंक भी है। धन्यवाद!

+0

क्या आपने कभी इसे हल किया है? मुझे एक ही समस्या मिल रही है! – joshs

+0

कभी नहीं किया। मैं समय के लिए सुविधा छोड़ने घायल हो गया। मैं एक और, अधिक स्थिर मणि खोजने की सिफारिश करेंगे। – airlok

+0

आपको क्लासिफायर को खिलाने से पहले अपनी स्ट्रिंग को साफ करना चाहिए, उदाहरण के लिए, उच्चारण वर्णों को लिप्यंतरित करें –

उत्तर

0

मैं mysql एडाप्टर जो जागरूक एन्कोडिंग नहीं कर रहा था, शायद आप जाँच कर सकते हैं अपने postgres adaptar है अगर और यदि नहीं एक दूसरे से

0

मैं नहीं जानता कि क्यों मानक मार्शल वर्ग की कोशिश के साथ rails_admin मणि के साथ एक समस्या हुई काम नहीं करता है, लेकिन मैं

m = SnapshotMadeleine.new("bayes_data", YAML) do 
    b = Classifier::Bayes.new "Positive", "Negative 
end 

और फिर

m = SnapshotMadeleine.new("bayes_data", YAML) 

कुछ मार्शल के साथ टूट का उपयोग कर अच्छे परिणाम मिले थे? पक्का नहीं है।

0

आपको यह सुनिश्चित करना होगा कि डेटा को प्रशिक्षित करने के लिए आप जिस स्ट्रिंग का उपयोग करते हैं वह यूटीएफ -8 एन्कोडेड है। यदि आप डेटा सेट को प्रशिक्षण दे रहे हैं, तो एक बदसूरत हैक

Encoding.default_external = Encoding::UTF_8 
Encoding.default_internal = Encoding::UTF_8 

आपकी स्क्रिप्ट में है।