मेरी कंपनी का एक ग्राहक है जो विभिन्न स्थानों पर विभिन्न कंपनियों के उत्पादों के लिए कीमतों को ट्रैक करता है। यह जानकारी डेटाबेस में जाती है।टेक्स्ट पढ़ने के लिए एल्गोरिदम या पैटर्न
ये कंपनियां प्रतिदिन हमारे ग्राहक को कीमतें ईमेल करती हैं, और निश्चित रूप से ईमेल सभी अलग-अलग स्वरूपित होते हैं। किसी भी कंपनी ने अपना प्रारूप बदलना असंभव है - वे ऐसा नहीं करेंगे।
कुछ इस तरह एक तरह से देखने के लिए:
This is example text that could be many lines long... Location 1 Product 1 Product 2 Product 3 $20.99 $21.99 $33.79 Location 2 Product 1 Product 2 Product 3 $24.99 $22.88 $35.59
दूसरों इस तरह तरह की लग रही है:
PRODUCT PRICE +/- ------------ -------- ------- Location 1 1 2007.30 +048.20 2 2022.50 +048.20 Maybe some multiline text here about a holiday or something... Location 2 1 2017.30 +048.20 2 2032.50 +048.20
वर्तमान में हम अलग-अलग प्रत्येक कंपनी की ईमेल प्रारूप के लिए लिखा पारसर्स है। लेकिन ये प्रारूप थोड़ा बार बदलते हैं। हम हर बार एक ही पंक्ति या कॉलम पर होने वाली कीमतों पर भरोसा नहीं कर सकते हैं।
हमारे लिए ईमेल देखने और यह निर्धारित करने के लिए कि कौन सा मूल्य किस स्थान पर जाता है, उस स्थान पर कौन सा मूल्य जाता है। लेकिन हमारे कोड के लिए इतना नहीं है। तो मैं एक और अधिक लचीला समाधान खोजने की कोशिश कर रहा हूं और आपके सुझावों के बारे में आपके सुझावों को पसंद करूंगा। मैं रेगेक्स से तंत्रिका नेटवर्क तक कुछ भी खोल रहा हूं - मैं सीखूंगा कि मुझे यह काम करने के लिए क्या चाहिए, मुझे नहीं पता कि मुझे क्या सीखना है। क्या यह एक लेक्स/पार्सिंग समस्या है? ओसीआर के समान ही?
कोड को प्रारूपों को स्वयं ही समझना नहीं है। ईमेल उपरोक्त लोगों की तरह कुछ मुख्य 'शैलियों' में आते हैं। हमें वास्तव में केवल इतना लचीला होने के लिए कोड की आवश्यकता है कि एक नई उत्पाद लाइन या व्हाइटस्पेस या कुछ फ़ाइल को अवांछित नहीं बनाता है।
कहां से शुरू करना है इसके बारे में किसी भी सुझाव के लिए धन्यवाद।
यह देखना उपयोगी होगा कि आप अभी इन प्रारूपों में से किसी एक को कैसे पार्स कर रहे हैं। कोई भी आपके मौजूदा कोड को लेने में सक्षम हो सकता है और यह बता सकता है कि इसे और अधिक लचीला बनाया जा सकता है। –
वर्तमान कोड मूल रूप से है: यदि कंपनी कंपनी 1 है, तो तीसरी पंक्ति पर जाएं, पहले 12 वर्णों को उत्पाद के रूप में पढ़ें, फिर मूल्य के रूप में 45-50 वर्ण पढ़ें। फिर चौथी पंक्ति पर जाएं ... यह बहुत कठिन कोड कोड है। –
@ स्कॉट, ठीक है, अगर व्हाइटस्पेस डेटा को कॉलम में अलग कर रहा है जैसे कि मैं अपने उत्तर में वर्णन करता हूं, तो आप आसानी से स्क्रिप्टिंग का उपयोग कर सकते हैं। – nik