3 पॉइंट द्वारा GN⁺ 2024-07-28 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • sgrep एक कमांड-लाइन टूल है जो word embeddings का उपयोग करके टेक्स्ट इनपुट पर semantic search करता है
    • यह साधारण string matching से आगे बढ़कर query के लिए semantic रूप से समान matches खोजता है
    • इसे grep जैसे अनुभव देने के लिए डिज़ाइन किया गया है
  • सुविधाएँ
    • Word2Vec embeddings का उपयोग करके semantic search
    • similarity threshold सेट करने की सुविधा
    • match होने वाली line के पहले और बाद का context दिखाना
    • matching words और line numbers के लिए color-coded output
    • files या standard input से पढ़ने का समर्थन
    • JSON files और command-line arguments के माध्यम से configuration संभव
  • उपयोग उदाहरण
    • Hemingway की "The Old Man and the Sea" में "death" के समान शब्दों को context और line numbers के साथ खोजने के लिए:
      curl -s 'https://gutenberg.ca/ebooks/hemingwaye-oldmanandthesea/…' \  
      | sgrep -C 2 -n -threshold 0.55 death  
      
    • यह कमांड निम्न काम करता है:
      • Project Gutenberg Canada से "The Old Man and the Sea" का टेक्स्ट लाता है
      • टेक्स्ट को sgrep में pipe करता है
      • "death" से semantic रूप से मिलते-जुलते शब्द खोजता है
      • similarity threshold को 0.55 पर सेट करता है (-threshold 0.55)
      • हर match के पहले और बाद की 2 lines का context दिखाता है (-C 2)
      • line numbers दिखाता है (-n)
    • output में similarity score, highlighted words, context, और line numbers दिखाई देते हैं
  • Word2Vec मॉडल
    • sgrep को binary format में Word2Vec model चाहिए। आप Google के Word2Vec model जैसे pre-trained models का उपयोग कर सकते हैं या gensim जैसे tools से अपना model train कर सकते हैं
    • .bin file को लोकल में डाउनलोड करें और config.json अपडेट करें
    • download-model.sh एक सरल helper script है जो eyaler द्वारा होस्ट किया गया छोटा word2vec model models/googlenews-slim/ directory में सहेजता है

GN⁺ का सार

  • sgrep एक ऐसा टूल है जो word embeddings का उपयोग करके टेक्स्ट में semantic रूप से समान शब्द खोजता है
  • यह grep जैसा उपयोग अनुभव देता है, लेकिन साधारण string matching से आगे की क्षमता प्रदान करता है
  • यह similarity तय करने के लिए Word2Vec model का उपयोग करता है और कई configuration options के साथ लचीले ढंग से इस्तेमाल किया जा सकता है
  • यह text analysis और natural language processing कार्यों में उपयोगी हो सकता है, खासकर जब context-based search की आवश्यकता हो

1 टिप्पणियां

 
GN⁺ 2024-07-28
Hacker News राय
  • कोड पढ़ते समय कुछ छोटे सुझाव साझा किए गए

    • vectors को एक बार में पढ़ा जा सकता है
    • BLAS का उपयोग करके similarity को और तेज़ी से calculate किया जा सकता है
    • vectors को load करते समय normalize कर दें तो cosine similarity, vector dot product बन जाती है
    • यह कई CPU को support कर सकता है या नहीं, इस पर जिज्ञासा है
    • word2vec repository ने data quota पार कर लिया है
    • वैकल्पिक source के रूप में Stack Overflow और Hugging Face का सुझाव दिया गया
  • यह विचार बहुत उपयोगी लगा और सोचा कि यह पहले क्यों नहीं सूझा

  • semgrep नाम का एक tool और company पहले से मौजूद है

  • अगर यह tool descriptive phrases या compound phrases को handle कर सके, तो यह बहुत उपयोगी होगा

    • मौजूदा search engines की सबसे बड़ी कमी single-hit search है
  • यह बहुत शानदार tool है

    • लगता है कि यह हर line को words में बाँटकर हर word की embedding का उपयोग करता है
    • जिज्ञासा है कि क्या यह लंबे text sequences में semantic search कर सकता है
    • Transformer models के उपयोग की तुलना में word vectors का उपयोग तेज़ और हल्का होगा
    • ठीक से अलग न किए गए words को detect करने और substring के रूप में आने वाले सभी words को खोजने का तरीका भी सोचा जा सकता है
  • यह tool बहुत शानदार है और इसे ज़रूर आज़माना चाहूँगा

    • पूरे text में semantic search कई applications में बेहतर user experience दे सकता है
  • मिलते-जुलते tool के रूप में fltr का सुझाव दिया गया

    • यह natural language queries के लिए grep जैसा है
  • बहुत शानदार है, और जिज्ञासा है कि क्या यह file names भी search कर सकता है

  • यह बहुत शानदार tool मिला

    • semgrep पहले से उपयोग में है, इसलिए किसी दूसरे नाम पर विचार करना चाहिए