3 poin oleh GN⁺ 2024-07-28 | 1 komentar | Bagikan ke WhatsApp
  • sgrep adalah alat baris perintah yang melakukan pencarian semantik untuk input teks menggunakan embedding kata
    • Melampaui pencocokan string sederhana dengan menemukan kecocokan yang mirip secara semantik dengan kueri
    • Dirancang untuk memberikan pengalaman yang mirip dengan grep
  • Fitur
    • Pencarian semantik menggunakan embedding Word2Vec
    • Dapat mengatur ambang kemiripan
    • Menampilkan konteks sebelum dan sesudah baris yang cocok
    • Output berkode warna untuk kata yang cocok dan nomor baris
    • Mendukung pembacaan dari file atau input standar
    • Dapat dikonfigurasi melalui file JSON dan argumen baris perintah
  • Contoh penggunaan
    • Mencari kata yang mirip dengan "death" di "The Old Man and the Sea" karya Hemingway, lengkap dengan konteks dan nomor baris:
      curl -s 'https://gutenberg.ca/ebooks/hemingwaye-oldmanandthesea/…' \  
      | sgrep -C 2 -n -threshold 0.55 death  
      
    • Perintah ini melakukan hal berikut:
      • Mengambil teks "The Old Man and the Sea" dari Project Gutenberg Canada
      • Menyalurkan teks tersebut ke sgrep
      • Mencari kata-kata yang mirip secara semantik dengan "death"
      • Mengatur ambang kemiripan ke 0.55 (-threshold 0.55)
      • Menampilkan 2 baris konteks sebelum dan sesudah setiap kecocokan (-C 2)
      • Menampilkan nomor baris (-n)
    • Output menampilkan skor kemiripan, kata yang disorot, konteks, dan nomor baris
  • Model Word2Vec
    • sgrep memerlukan model Word2Vec dalam format biner. Anda dapat menggunakan model yang sudah dilatih sebelumnya seperti model Word2Vec dari Google, atau melatihnya sendiri menggunakan alat seperti gensim
    • Unduh file .bin secara lokal lalu perbarui config.json
    • download-model.sh adalah skrip pembantu sederhana yang menyimpan model word2vec kecil yang di-host oleh eyaler ke direktori models/googlenews-slim/

Ringkasan GN⁺

  • sgrep adalah alat untuk mencari kata yang mirip secara semantik dalam teks menggunakan embedding kata
  • Alat ini memberikan pengalaman penggunaan yang mirip dengan grep, sambil menawarkan kemampuan yang melampaui pencocokan string sederhana
  • Alat ini menggunakan model Word2Vec untuk menilai kemiripan dan dapat digunakan secara fleksibel melalui berbagai opsi konfigurasi
  • Alat ini berguna untuk analisis teks dan tugas pemrosesan bahasa alami, terutama saat diperlukan pencarian berbasis konteks

1 komentar

 
GN⁺ 2024-07-28
Komentar Hacker News
  • Sambil membaca kodenya, membagikan beberapa tips kecil

    • vektor bisa dibaca sekaligus
    • kemiripan bisa dihitung lebih cepat dengan menggunakan BLAS
    • jika dinormalisasi saat memuat vektor, cosine similarity menjadi hasil dot product vektor
    • penasaran apakah bisa mendukung beberapa CPU
    • repositori word2vec telah melampaui kuota data
    • mengusulkan Stack Overflow dan Hugging Face sebagai sumber alternatif
  • Ide ini terasa sangat berguna dan membuat penasaran kenapa tidak terpikir sebelumnya

  • Sudah ada alat dan perusahaan bernama semgrep

  • Alat ini akan sangat berguna jika bisa menangani frasa deskriptif atau frasa majemuk

    • saat ini kelemahan terbesar mesin pencari adalah pencarian single-hit
  • Ini alat yang sangat keren

    • sepertinya setiap baris dipecah menjadi kata-kata dan menggunakan embedding tiap kata
    • penasaran apakah bisa melakukan pencarian semantik pada urutan teks yang panjang
    • menggunakan word vector kemungkinan akan lebih cepat dan lebih ringan daripada memakai model Transformer
    • bisa juga mempertimbangkan cara untuk mendeteksi kata yang tidak terpisah dengan baik dan menemukan semua kata yang muncul sebagai substring
  • Alat ini sangat keren dan benar-benar ingin mencobanya

    • pencarian semantik di seluruh teks akan memberikan pengalaman pengguna yang lebih baik di banyak aplikasi
  • Mengusulkan fltr sebagai alat serupa

    • mirip grep untuk pertanyaan bahasa alami
  • Sangat keren, dan penasaran apakah nama file juga bisa dicari

  • Menemukan alat yang sangat keren

    • karena semgrep sudah digunakan, perlu mempertimbangkan nama lain