0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

KeyBERT: Phương Pháp Trích Xuất Từ Khóa Đơn Giản và Hiệu Quả

Đăng vào 3 tuần trước

• 3 phút đọc

Giới thiệu về KeyBERT

Trong thời đại thông tin hiện nay, việc phát hiện và tối ưu hóa từ khóa quan trọng là một phần không thể thiếu trong quá trình phát triển nội dung số. Nhiều người dùng khi đặt câu hỏi cho các hệ thống RAG thường sử dụng ngôn ngữ không rõ ràng hoặc câu hỏi mơ hồ, khiến cho các mô hình ngôn ngữ lớn (LLM) gặp khó khăn trong việc hiểu và tìm kiếm thông tin trong cơ sở dữ liệu vector. Do đó, việc có những công cụ hỗ trợ trích xuất từ khóa là tối cần thiết.

KeyBERT là một công cụ mạnh mẽ, cho phép người dùng trích xuất các từ khóa chính từ văn bản một cách dễ dàng. Nó hoạt động dựa trên công nghệ BERT và sử dụng độ tương đồng cosine để xác định các cụm từ quan trọng nhất trong một tài liệu cụ thể. Cách thức hoạt động của KeyBERT được mô tả như sau:

  1. Trích xuất các embedding tài liệu bằng BERT: Tài liệu được chuyển đổi thành các vector đại diện với các thông tin ngữ nghĩa phong phú.
  2. Trích xuất từ/cụm từ N-gram: Các từ khóa được xác định dựa trên các đoạn văn bản từ một đến nhiều từ.
  3. Sử dụng độ tương đồng cosine: KeyBERT tính toán độ tương đồng giữa tài liệu và các cụm từ để xác định những cụm từ mô tả tốt nhất tài liệu.

Dưới đây là liên kết đến repo Github của KeyBERT: KeyBERT trên GitHub

Lưu ý: Tôi khuyên các bạn nên tham khảo repo KeyBERT để tìm hiểu cách tích hợp với các mô hình sentence-transformers và LLMs, giúp công cụ này luôn đáp ứng các cập nhật mới nhất từ ngành công nghệ.

Hướng dẫn Thực Hiện

Trước khi bắt đầu, hãy cài đặt các thư viện cần thiết như sau:

python Copy
# Cài đặt các gói cần thiết
!pip install -q keybert pypdf

# Tải mẫu dữ liệu
!wget https://arxiv.org/pdf/1706.03762.pdf

# Nhập các thư viện
import re
from keybert import KeyBERT
from pypdf import PdfReader

Tiếp theo, ta sẽ sử dụng PdfReader để phân tích tệp PDF. Bạn có thể xem số lượng trang và nội dung ở mỗi trang:

python Copy
reader = PdfReader("/content/1706.03762.pdf")
print(len(reader.pages))  # 15 trang

page_no = 0
page = reader.pages[page_no]
text = page.extract_text()
print(text)

Sau khi có nội dung văn bản, chúng ta sẽ sử dụng KeyBERT để trích xuất từ khóa:

python Copy
# Có thể bỏ dấu # trước dòng này nếu bạn muốn loại bỏ ký tự xuống dòng.
# text = text.replace("\n", " ")

kw_model = KeyBERT()
keywords = kw_model.extract_keywords(text, keyphrase_ngram_range=(1, 3), highlight=True, stop_words='english', use_maxsum=True, top_n=10)

Giải thích mã code

  • keyphrase_ngram_range: Xác định số lượng từ trong các cụm từ khóa được tạo ra. Bạn có thể thay đổi giá trị để có những cụm từ khóa phù hợp với nhu cầu sử dụng.
  • use_maxsum: Khi được kích hoạt, KeyBERT sẽ lựa chọn nhiều từ/cụm từ nhất về mặt ngữ nghĩa và độ tương đồng để tối ưu hóa kết quả.
  • top_n: Chỉ số cho biết số lượng từ khóa mà bạn muốn nhận lại từ kết quả trích xuất.

Kết quả Trích Xuất Từ Khóa

Khi thực hiện xong các bước trên, bạn sẽ nhận được danh sách các từ khóa quan trọng nhất từ bài báo, giúp bạn dễ dàng tiếp cận nội dung và tối ưu hóa quy trình tìm kiếm của mình.

Kết luận

Bài viết này đã giới thiệu KeyBERT, một công cụ trích xuất từ khóa sử dụng nền tảng BERT và độ tương đồng cosine nhằm giúp người dùng dễ dàng tìm ra các cụm từ mô tả tốt nhất cho văn bản của họ. KeyBERT không chỉ đơn giản mà còn rất hiệu quả, hỗ trợ nhiều mô hình LLM khác nhau, tạo điều kiện thuận lợi cho việc tích hợp vào các hệ thống phức tạp.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào