Trong Khoa học Dữ liệu (Data Science), Trích xuất Từ khóa là một kỹ thuật phân tích văn bản, nơi bạn có thể có được thông tin chi tiết quan trọng về một số văn bản trong một khoảng thời gian ngắn. Sẽ hữu ích để lấy các từ khóa có liên quan từ bất kỳ văn bản nào và giúp bạn tiết kiệm thời gian quý báu để khám phá toàn bộ tài liệu. Có nhiều chức năng trong các dự án khác nhau, nơi bạn có thể triển khai loại thư viện này, chẳng hạn như tự động hóa trích xuất từ khóa khi bạn viết một bài đăng trên blog nào đó, vì vậy nếu bạn cảm thấy lười biếng hoặc kém sáng tạo hơn bình thường, bạn có thể tự động tạo chúng từ văn bản gốc của bạn. Một trường hợp thực tế hữu ích khác là khi bạn xuất bản một sản phẩm trong cửa hàng và nhận được đánh giá. Bạn có thể sử dụng tính năng này để trích xuất các vấn đề của sản phẩm tự động phân tích hàng nghìn đánh giá mà không cần khám phá tất cả chúng.
Trong phần đầu này, tôi sẽ chia sẻ với bạn 5 thư viện Python hữu ích nhất để trích xuất từ khóa từ bất kỳ văn bản nào bằng nhiều ngôn ngữ một cách tự động.
KeyBERT
KeyBERT chắc chắn là một trong những thư viện dễ sử dụng nhất trong số những thư viện khác. KeyBERT là một kỹ thuật trích xuất từ khóa tối thiểu và dễ sử dụng, tận dụng các thao tác nhúng BERT để tạo các từ khóa và cụm từ khóa gần giống nhất với một tài liệu. Thư viện này có thể được cài đặt dễ dàng bằng lệnh sau sử dụng pip:
Ví dụ
pip install keybert
Sau khi cài đặt, bạn có thể sử dụng nó như một thư viện trong các tập lệnh của mình với một tập lệnh như sau, nơi bạn cần nhập mô hình KeyBERT, sau khi nó được tải, bạn có thể sử dụng nó để trích xuất các từ khóa từ một biến có chứa văn bản thuần túy:
Ví dụ
from keybert import KeyBERT
doc = """
Supervised learning is the machine learning task of learning a function that
maps an input to an output based on example input-output pairs. It infers a
function from labeled training data consisting of a set of training examples.
In supervised learning, each example is a pair consisting of an input object
(typically a vector) and a desired output value (also called the supervisory signal).
A supervised learning algorithm analyzes the training data and produces an inferred function,
which can be used for mapping new examples. An optimal scenario will allow for the
algorithm to correctly determine the class labels for unseen instances. This requires
the learning algorithm to generalize from the training data to unseen situations in a
'reasonable' way (see inductive bias).
"""
kw_model = KeyBERT()
keywords = kw_model.extract_keywords(doc)
print(kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 1), stop_words=None))
#[
# ('learning', 0.4604),
# ('algorithm', 0.4556),
# ('training', 0.4487),
# ('class', 0.4086),
# ('mapping', 0.3700)
#]
Và đó là nó! Theo chỉ định của tác giả của thư viện, đó là mục tiêu của KeyBERT (một phương pháp nhanh chóng và dễ dàng để tạo từ khóa và cụm từ khóa). Để biết thêm thông tin về thư viện này, vui lòng truy cập kho lưu trữ chính thức hoặc đọc bài viết này được viết bởi tác giả của thư viện.
MultiRake
MultiRake là một thư viện trích xuất từ khóa tự động nhanh (RAKE) đa ngôn ngữ cho Python có các tính năng:
- Trích xuất từ khóa tự động từ văn bản được viết bằng bất kỳ ngôn ngữ nào
- Không cần biết trước ngôn ngữ của văn bản
- Không cần phải có danh sách các từ dừng
- 26 ngôn ngữ hiện có sẵn, phần còn lại - các từ dừng được tạo từ văn bản được cung cấp
- Chỉ cần định cấu hình rake, cắm vào văn bản và nhận từ khóa (xem chi tiết triển khai)
Việc triển khai này khác với những cách khác bởi sự hỗ trợ đa ngôn ngữ của nó. Về cơ bản, bạn có thể cung cấp văn bản mà không cần biết ngôn ngữ của nó (văn bản phải được viết bằng bảng chữ cái cyrillic hoặc latin), mà không có danh sách từ dừng rõ ràng và nhận được kết quả tốt. Mặc dù kết quả tốt nhất đạt được với danh sách các từ dừng được xây dựng kỹ lưỡng. Trong quá trình khởi tạo RAKE, chỉ nên sử dụng mã ngôn ngữ:
- bg - tiếng Bungari
- cs - tiếng Séc
- da - tiếng Đan Mạch
- de - tiếng Đức
- el - tiếng Hy Lạp
- en - tiếng Anh
- es - tiếng Tây Ban Nha
- fi - tiếng Phần Lan
- fr - tiếng Pháp
- ga - Ailen
- hr - tiếng Croatia
- hu - tiếng Hungary
- id - tiếng Indonesia
- it - Ý
- lt - tiếng Litva
- lv - người latvian
- nl - tiếng Hà Lan
- no - tiếng Na Uy
- pl - tiếng Ba Lan
- pt - tiếng Bồ Đào Nha
- ro - tiếng Rumani
- ru - tiếng Nga
- sk - tiếng Slovak
- sv - tiếng Thụy Điển
- tr - tiếng Thổ Nhĩ Kỳ
- uk - tiếng Ukraina
PKE
PKE là một bộ công cụ trích xuất cụm từ khóa dựa trên python mã nguồn mở cung cấp một đường dẫn trích xuất cụm từ khóa end-to-end, trong đó mỗi thành phần có thể dễ dàng sửa đổi hoặc mở rộng để phát triển các mô hình mới. Nó cũng cho phép dễ dàng đánh giá điểm chuẩn của các mô hình trích xuất cụm từ khóa hiện đại và các mô hình được giám sát được đào tạo trên bộ dữ liệu SemEval-2010 . Thư viện này có thể được cài đặt bằng lệnh pip sau (nó yêu cầu Python 3.6+):
Lệnh
pip install git+https://github.com/boudinfl/pke.git
Nó cũng yêu cầu một số thư viện bổ sung để hoạt động:
Lệnh
python -m nltk.downloader stopwords
python -m nltk.downloader universal_tagset
python -m spacy download en_core_web_sm # download the english model
PKE cung cấp một API tiêu chuẩn hóa để trích xuất các cụm từ khóa từ tài liệu. Nó có thể được sử dụng dễ dàng như được hiển thị trong tập lệnh sau:
Ví dụ
import pke
# initialize keyphrase extraction model, here TopicRank
extractor = pke.unsupervised.TopicRank()
# load the content of the document, here document is expected to be in raw
# format (i.e. a simple text file) and preprocessing is carried out using spacy
extractor.load_document(input='/path/to/input.txt', language='en')
# keyphrase candidate selection, in the case of TopicRank: sequences of nouns
# and adjectives (i.e. `(Noun|Adj)*`)
extractor.candidate_selection()
# candidate weighting, in the case of TopicRank: using a random walk algorithm
extractor.candidate_weighting()
# N-best selection, keyphrases contains the 10 highest scored candidates as
# (keyphrase, score) tuples
keyphrases = extractor.get_n_best(n=10)
Để sử dụng một mô hình khác, chỉ cần thay thế pke.unsupervised.TopicRank
bằng một mô hình khác ( danh sách các mô hình đã triển khai ).
YAKE
YAKE! là một phương pháp trích xuất từ khóa tự động không giám sát nhẹ dựa trên các tính năng thống kê văn bản được trích xuất từ các tài liệu đơn lẻ để chọn các từ khóa quan trọng nhất của văn bản. Hệ thống của chúng tôi không cần được đào tạo trên một bộ tài liệu cụ thể, cũng không phụ thuộc vào từ điển, kho ngữ liệu bên ngoài, kích thước của văn bản, ngôn ngữ hoặc miền. Để chứng minh giá trị và ý nghĩa của đề xuất của chúng tôi, chúng tôi so sánh nó với mười phương pháp tiếp cận không giám sát hiện đại (TF.IDF, KP-Miner, RAKE, TextRank, SingleRank, ExpandRank, TopicRank, TopicalPageRank, PositionRank và MultipartiteRank) và một phương pháp có giám sát (KEA). Kết quả thử nghiệm được thực hiện trên 20 tập dữ liệu (xem phần Điểm chuẩn bên dưới) cho thấy rằng các phương pháp của chúng tôi hoạt động tốt hơn đáng kể so với các phương pháp hiện đại trong một số bộ sưu tập có kích thước khác nhau,
RAKE
Triển khai Python của thuật toán Rapid Automatic Keyword Extraction (RAKE) như được mô tả trong: Rose, S., Engel, D., Cramer, N., & Cowley, W. (2010). Tự động trích xuất từ khóa từ các tài liệu riêng lẻ. Trong MW Berry & J. Kogan (Eds.), Khai phá Văn bản: Lý thuyết và Ứng dụng: John Wiley & Sons.
Nếu bạn biết một thư viện tuyệt vời khác cho phép trích xuất từ khóa từ văn bản thuần túy, hãy chia sẻ nó với cộng đồng trong hộp nhận xét.