Semantic Grep - Công cụ tìm kiếm dựa trên Word2Vec
(github.com/arunsupe)sgreplà công cụ dòng lệnh thực hiện tìm kiếm ngữ nghĩa cho đầu vào văn bản bằng cách sử dụng word embedding- Vượt qua việc khớp chuỗi đơn thuần để tìm các kết quả khớp tương đồng về mặt ngữ nghĩa với truy vấn
- Được thiết kế để mang lại trải nghiệm tương tự
grep
- Tính năng
- Tìm kiếm ngữ nghĩa bằng embedding Word2Vec
- Có thể thiết lập ngưỡng độ tương đồng
- Hiển thị ngữ cảnh trước và sau dòng khớp
- Xuất kết quả có mã màu cho từ khớp và số dòng
- Hỗ trợ đọc từ tệp hoặc đầu vào chuẩn
- Có thể cấu hình qua tệp JSON và tham số dòng lệnh
- Ví dụ sử dụng
- Tìm các từ tương tự với "death" trong "Ông già và biển cả" của Hemingway, kèm ngữ cảnh và số dòng:
curl -s 'https://gutenberg.ca/ebooks/hemingwaye-oldmanandthesea/…' \ | sgrep -C 2 -n -threshold 0.55 death - Lệnh này thực hiện:
- Lấy văn bản "Ông già và biển cả" từ Project Gutenberg Canada
- Pipe văn bản vào
sgrep - Tìm các từ tương đồng về mặt ngữ nghĩa với "death"
- Đặt ngưỡng độ tương đồng là 0.55 (
-threshold 0.55) - Hiển thị 2 dòng ngữ cảnh trước và sau mỗi kết quả khớp (
-C 2) - Hiển thị số dòng (
-n)
- Kết quả đầu ra hiển thị điểm tương đồng, các từ được tô sáng, ngữ cảnh và số dòng
- Tìm các từ tương tự với "death" trong "Ông già và biển cả" của Hemingway, kèm ngữ cảnh và số dòng:
- Mô hình Word2Vec
sgrepyêu cầu mô hình Word2Vec ở định dạng nhị phân. Có thể dùng mô hình được huấn luyện sẵn như Word2Vec của Google hoặc tự huấn luyện bằng các công cụ nhưgensim- Tải tệp
.binvề máy cục bộ và cập nhậtconfig.json- Word2Vec của Google: https://github.com/mmihaltz/word2vec-GoogleNews-vectors
- Bản rút gọn: mô hình GoogleNews-vectors-negative300-SLIM.bin.gz https://github.com/eyaler/word2vec-slim/ (cảm ơn eyaler)
download-model.shlà một script trợ giúp đơn giản để lưu mô hình word2vec nhỏ do eyaler host vào thư mụcmodels/googlenews-slim/
Tổng hợp của GN⁺
sgreplà công cụ dùng word embedding để tìm các từ tương đồng về mặt ngữ nghĩa trong văn bản- Công cụ này mang lại trải nghiệm sử dụng tương tự
grepnhưng cung cấp khả năng vượt ra ngoài việc khớp chuỗi đơn giản - Công cụ dùng mô hình Word2Vec để đánh giá độ tương đồng và có thể sử dụng linh hoạt nhờ nhiều tùy chọn cấu hình
- Có thể hữu ích trong các tác vụ phân tích văn bản và xử lý ngôn ngữ tự nhiên, đặc biệt mạnh khi cần tìm kiếm dựa trên ngữ cảnh
1 bình luận
Ý kiến trên Hacker News
Chia sẻ một vài mẹo nhỏ khi đọc mã
Ý tưởng này rất hữu ích và khiến tôi tự hỏi sao mình lại không nghĩ ra
Đã có một công cụ và công ty tên là semgrep rồi
Công cụ này sẽ rất hữu ích nếu có thể xử lý các cụm từ mô tả hoặc cụm từ ghép
Đây là một công cụ rất hay
Công cụ này rất hay và tôi chắc chắn muốn thử dùng
Đề xuất fltr như một công cụ tương tự
Rất hay, và tôi tò mò không biết có thể tìm cả tên tệp hay không
Thật tuyệt khi phát hiện ra một công cụ rất hay