Regex पासून LLMs पर्यंत: वेब डेटा एक्सट्रॅक्ट करण्याचा माझा प्रवास

मी एक किंमत तुलना करणारे (price comparison) टूल बनवले. मला डझनभर ई-कॉमर्स साइट्समधून उत्पादनांचा डेटा काढण्याची गरज होती. प्रत्येक साइटची रचना वेगळी होती. काही साइट्स रँडम CSS क्लासेस वापरत होत्या. काही साइट्स कंटेंट लोड करण्यासाठी JavaScript वापरत होत्या.

मी सुरुवातीला पारंपारिक पद्धत वापरून पाहिली. मी Regex आणि BeautifulSoup वापरले.

ते दोन साइट्ससाठी काम करत होते. त्यानंतर, एका साइटने तिची लेआउट बदलली. माझा कोड निकामी झाला. दुसरी साइट डायनॅमिक कंटेंट वापरत होती. डेटा वापरण्यापेक्षा स्क्रॅपर्स (scrapers) दुरुस्त करण्यातच माझा जास्त वेळ जात होता.

मग मी AI वापरून पाहिले. मी कच्चा (raw) HTML एका LLM मध्ये टाकला.

निकाल खराब होते. आउटपुट विसंगत होते. कधी मला JSON मिळत होते, तर कधी परिच्छेद (paragraphs). मॉडेलने चुकीचा (hallucinated) डेटा दिला. मी खूप जास्त टोकन्स पाठवल्यामुळे खर्चही खूप जास्त येत होता.

मला एक मध्यम मार्ग सापडला. आता मी हायब्रिड (hybrid) पद्धत वापरतो.

माझी प्रक्रिया खालीलप्रमाणे आहे:

  • HTML प्रीप्रोसेस (preprocess) करणे. मी स्क्रिप्ट्स, स्टाइल्स आणि नेव्हिगेशन बार काढून टाकतो. मी फक्त दृश्यमान (visible) मजकूर ठेवतो. यामुळे टोकनची संख्या आणि खर्च कमी होतो.
  • JSON मोड किंवा फंक्शन कॉलिंग (function calling) वापरणे. यामुळे LLM ला स्ट्रक्चर्ड डेटा (structured data) देण्यास भाग पाडले जाते.
  • Retry लॉजिक वापरणे. जर JSON चुकीचे असेल, तर कोड पुन्हा प्रयत्न करतो.
  • रिझल्ट्स कॅश (cache) करणे. एकाच पेजसाठी दोनदा पैसे भरू नयेत म्हणून मी प्रत्येक URL साठी यशस्वीरित्या काढलेला डेटा सेव्ह करतो.

स्टॅटिक आणि सुव्यवस्थित (well-structured) साइट्ससाठी Regex आणि BeautifulSoup अजूनही सर्वोत्तम आहेत. ते जलद आणि मोफत आहेत.

विस्कळीत आणि अनपेक्षित साइट्ससाठी LLMs अधिक चांगले आहेत. परंतु खर्च कमी ठेवण्यासाठी तुम्हाला आधी डेटा स्वच्छ (clean) करावा लागेल.

मी शिकलेले धडे:

  • तुमचा खर्च आणि यशाचा दर (success rate) मॉनिटर करा.
  • लॅटन्सीवर (latency) लक्ष द्या. LLM कॉल्सना मिलीसेकंद नाही, तर सेकंद लागतात.
  • आउटपुट व्हॅलिडेट (validate) करा. किंमत खरोखर वास्तविक किंमत आहे का, हे तपासा.
  • हायब्रिड सिस्टम वापरा. सोप्या साइट्ससाठी पार्सर (parser) आणि विस्कळीत साइट्ससाठी LLM वापरा.

या सेटअपमुळे माझे तासांचे काम वाचते. मी एका तासाच्या आत नवीन स्टोअर जोडू शकतो.

तुम्ही विस्कळीत वेब डेटा कसा हाताळता? तुम्हाला पार्सर्स आवडतात की LLMs?

स्रोत: https://dev.to/__c1b9e06dc90a7e0a676b/from-regex-to-llms-my-journey-extracting-unstructured-web-data-5gmh

पर्यायी लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi