Semantic Grep - Word2Vec tabanlı arama aracı
(github.com/arunsupe)- sgrep, metin girdisi üzerinde anlamsal arama yapmak için kelime gömmelerini kullanan bir komut satırı aracıdır
- Basit dize eşleştirmenin ötesine geçerek sorgu için anlamsal olarak benzer eşleşmeler bulur
- grep benzeri bir deneyim sunacak şekilde tasarlanmıştır
- Özellikler
- Word2Vec gömmeleriyle anlamsal arama
- Benzerlik eşiği ayarlanabilir
- Eşleşen satırların öncesi ve sonrasındaki bağlamı gösterme
- Eşleşen kelimeler ve satır numaraları için renk kodlu çıktı
- Dosyadan veya standart girdiden okuma desteği
- JSON dosyaları ve komut satırı argümanlarıyla yapılandırılabilir
- Kullanım örneği
- Hemingway'in "The Old Man and the Sea" eserinde "death" sözcüğüne benzer kelimeleri bağlam ve satır numaralarıyla birlikte arama:
curl -s 'https://gutenberg.ca/ebooks/hemingwaye-oldmanandthesea/…' \ | sgrep -C 2 -n -threshold 0.55 death - Bu komut şunları yapar:
- Project Gutenberg Canada'dan "The Old Man and the Sea" metnini alır
- Metni sgrep'e pipe eder
- "death" ile anlamsal olarak benzer kelimeleri arar
- Benzerlik eşiğini 0.55 olarak ayarlar (
-threshold 0.55) - Her eşleşmenin öncesi ve sonrasında 2 satırlık bağlam gösterir (
-C 2) - Satır numaralarını gösterir (
-n)
- Çıktı; benzerlik puanını, vurgulanan kelimeleri, bağlamı ve satır numaralarını gösterir
- Hemingway'in "The Old Man and the Sea" eserinde "death" sözcüğüne benzer kelimeleri bağlam ve satır numaralarıyla birlikte arama:
- Word2Vec modeli
- sgrep, ikili biçimde bir Word2Vec modeli gerektirir. Google'ın Word2Vec modeli gibi önceden eğitilmiş modelleri kullanabilir veya gensim gibi araçlarla kendi modelinizi eğitebilirsiniz
.bindosyasını yerel olarak indiripconfig.jsondosyasını güncelleyin- Google'ın Word2Vec'i: https://github.com/mmihaltz/word2vec-GoogleNews-vectors
- İnceltilmiş sürüm: GoogleNews-vectors-negative300-SLIM.bin.gz modeli https://github.com/eyaler/word2vec-slim/ (eyaler sayesinde)
download-model.sh, eyaler tarafından barındırılan küçük bir word2vec modelinimodels/googlenews-slim/dizinine kaydeden basit bir yardımcı betiktir
GN⁺ özeti
- sgrep, metin içinde anlamsal olarak benzer kelimeleri aramak için kelime gömmelerini kullanan bir araçtır
- grep'e benzer bir kullanım deneyimi sunarken basit dize eşleştirmenin ötesine geçen yetenekler sağlar
- Benzerliği belirlemek için Word2Vec modeli kullanır ve çeşitli yapılandırma seçenekleri sayesinde esnek biçimde kullanılabilir
- Metin analizi ve doğal dil işleme çalışmalarında yararlı olabilir; özellikle bağlam tabanlı aramanın gerektiği durumlarda güçlü bir araçtır
1 yorum
Hacker News görüşleri
Kodu okurken birkaç küçük ipucu paylaşmış
word2vecdeposunun veri kotasını aştığını söylemişBu fikrin çok faydalı olduğunu ve neden daha önce aklına gelmediğini düşündüğünü söylemiş
Zaten
semgrepadında bir araç ve şirket bulunduğunu belirtmişBu aracın açıklayıcı ifadeleri ya da birleşik ifadeleri işleyebilmesi durumunda çok faydalı olacağını söylemiş
Çok havalı bir araç olduğunu söylemiş
Bu aracın çok havalı olduğunu ve mutlaka denemek istediğini söylemiş
Benzer bir araç olarak
fltrönermişgrepbenzeri olduğunu söylemişÇok havalı olduğunu ve dosya adlarını da arayıp arayamadığını merak etmiş
Çok havalı bir araç keşfettiğini söylemiş
semgrepadı zaten kullanımda olduğu için başka bir isim düşünülmesi gerektiğini belirtmiş