Khai thác từ khóa là gì?
Trích xuất từ khóa tự động trích xuất các từ và cụm từ được sử dụng nhiều nhất và quan trọng nhất từ văn bản, sử dụng kỹ thuật phân tích văn bản. Nó giúp tóm tắt nội dung của văn bản và nhận ra các chủ đề chính được thảo luận, giúp ích cho việc nghiên cứu thị trường , phân tích cảm tính và các loại phân tích dữ liệu khác. Kỹ thuật này thúc đẩy nhúng câu và có thể phân tích các tập dữ liệu lớn trong thời gian thực.
Máy học trí tuệ nhân tạo (AI) với xử lý ngôn ngữ tự nhiên (NLP) (một lĩnh vực khoa học máy tính) phá vỡ ngôn ngữ của con người để máy móc có thể hiểu và phân tích ngôn ngữ đó. Trích xuất từ khóa tự động hóa các quy trình công việc như gắn thẻ các câu trả lời khảo sát sắp tới hoặc trả lời các truy vấn khẩn cấp của khách hàng. Kỹ thuật này sử dụng thông tin ngôn ngữ và ngữ nghĩa về văn bản và các từ chứa trong đó. Có các thuật toán và kỹ thuật học máy khác nhau để trích xuất các từ khóa phù hợp nhất trong văn bản.
Tại sao trích xuất từ khóa lại quan trọng?
Trích xuất từ khóa và trích xuất cụm từ khóa rất quan trọng vì một số lý do:
- Search Engine Optimization (SEO) : Trích xuất từ khóa giúp xác định các từ và cụm từ quan trọng nhất trong tài liệu, có thể được sử dụng để tối ưu hóa nội dung trang web cho các công cụ tìm kiếm.
- Tóm tắt văn bản: Trích xuất từ khóa có thể được sử dụng để tóm tắt tài liệu bằng cách xác định các từ và cụm từ quan trọng nhất thể hiện chủ đề chính của văn bản.
- Phân loại văn bản: Trích xuất từ khóa có thể được sử dụng để phân loại tài liệu văn bản thành các danh mục khác nhau dựa trên các từ khóa mà chúng chứa. Điều này rất hữu ích trong các ứng dụng như phân tích tình cảm.
- Truy xuất thông tin: Trích xuất từ khóa có thể được sử dụng để cải thiện độ chính xác của hệ thống truy xuất thông tin bằng cách xác định các từ khóa có liên quan phù hợp với truy vấn tìm kiếm của người dùng.
Làm cách nào để trích xuất từ khóa trong R?
Dưới đây là một số kỹ thuật khai thác từ khóa và các trường hợp sử dụng của chúng:
- Tìm từ khóa bằng cách thực hiện gắn thẻ Các bộ phận của Bài phát biểu để xác định danh từ
- Tìm từ khóa dựa trên Collocations và Co-occurrences
- Tìm từ khóa dựa trên thuật toán Textrank
- Tìm từ khóa dựa trên RAKE (khai thác từ khóa tự động nhanh chóng)
- Tìm từ khóa dựa trên kết quả phân tích cú pháp phụ thuộc (lấy chủ đề của văn bản)
trích xuất danh từ
Một cách dễ dàng để tìm từ khóa là nhìn vào danh từ. Vì mỗi thuật ngữ có một thẻ Phần của bài phát biểu nếu bạn chú thích văn bản bằng gói udpipe:
Mã số:
stats <- subset(x, upos %in% "NOUN")
stats <- txt_freq(x = stats$lemma)
library(lattice)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = head(stats, 30), col = "cadetblue", main = "Most occurring nouns", xlab = "Freq")
Sắp xếp thứ tự & sự xuất hiện đồng thời
Nhận biểu thức nhiều từ bằng cách xem xét các cụm từ (các từ nối tiếp nhau), các từ cùng xuất hiện trong mỗi câu hoặc các từ cùng xuất hiện của các từ ở gần nhau.
Mã số:
Collocation (words following one another)
stats <- keywords_collocation(x = x,
term = "token", group = c("doc_id", "paragraph_id", "sentence_id"),
ngram_max = 4)
Co-occurrences: How frequent do words occur in the same sentence, in this case only nouns or adjectives
stats <- cooccurrence(x = subset(x, upos %in% c("NOUN", "ADJ")),
term = "lemma", group = c("doc_id", "paragraph_id", "sentence_id"))
## Co-occurrences: How frequent do words follow one another
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"))
## Co-occurrences: How frequent do words follow one another even if we would skip 2 words in between
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"), skipgram = 2)
Textrank (mạng từ được sắp xếp theo Google Pagerank)
Textrank là một phương pháp trích xuất khác cho các từ khóa. Gói textrank R thực hiện thuật toán Textrank. Thuật toán Textrank cho phép tóm tắt văn bản và trích xuất từ khóa. Để xây dựng một mạng từ, thuật toán sẽ kiểm tra xem các từ có theo nhau không. Thuật toán ‘Google Pagerank’ đang trích xuất các từ có liên quan. Các từ có liên quan nối tiếp nhau kết hợp với nhau để có được từ khóa. TextRank không bắt nguồn từ văn bản gốc, vì đây là cách tiếp cận dựa trên biểu đồ.
Mã số:
stats <- textrank_keywords(x$lemma, relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 8, sep = " ")
stats <- subset(stats$keywords, ngram > 1 & freq >= 5) library(wordcloud) wordcloud(words = stats$keyword, freq = stats$freq)
Trích xuất từ khóa tự động nhanh chóng: RAKE
RAKE là thuật toán cơ bản tiếp theo, viết tắt của Rapid Automatic Keyword Extraction. RAKE là thuật toán trích xuất từ khóa độc lập với miền trong Xử lý ngôn ngữ tự nhiên.
-
Tính điểm cho mỗi từ là một phần của bất kỳ từ khóa ứng viên nào, được thực hiện bởi
- trong số các từ của từ khóa ứng cử viên, thuật toán xem xét mỗi từ xuất hiện bao nhiêu lần và bao nhiêu lần từ đó xuất hiện cùng với các từ khác
- mỗi từ nhận được một số điểm là tỷ lệ giữa mức độ của từ (số lần nó xuất hiện cùng với các từ khác) với tần suất xuất hiện của từ
- Điểm RAKE cho từ khóa ứng cử viên đầy đủ được tính bằng tổng điểm của từng từ xác định từ khóa ứng cử viên
Mã số:
stats <- keywords_rake(x = x, term = "token", group = c("doc_id", "paragraph_id", "sentence_id"), relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 4)
head(subset(stats, freq > 3))
Sử dụng đầu ra phân tích cú pháp phụ thuộc để lấy chủ đề danh nghĩa và tính từ của nó
Khi bạn thực hiện chú thích bằng udpipe, trường dep_rel cho biết các từ có liên quan với nhau như thế nào. Mã thông báo có liên quan đến cấp độ gốc bằng cách sử dụng token_id và head_token_id . Trường dep_rel cho biết cách các từ liên kết với nhau. Loại quan hệ có tại http://universaldependencies.org/u/dep/index.html.
Mã số:
stats <- merge(x, x, by.x = c("doc_id", "paragraph_id", "sentence_id", "head_token_id"), by.y = c("doc_id", "paragraph_id", "sentence_id", "token_id"), all.x = TRUE, all.y = FALSE, suffixes = c("", "_parent"), sort = FALSE)
stats <- subset(stats, dep_rel %in% "nsubj" & upos %in% c("NOUN") & upos_parent %in% c("ADJ"))
stats$term <- paste(stats$lemma_parent, stats$lemma, sep = " ")
stats <- txt_freq(stats$term)
library(wordcloud)
wordcloud(words = stats$key, freq = stats$freq, min.freq = 3, max.words = 100, random.order = FALSE, colors = brewer.pal(6, "Dark2"))
Khai thác văn bản là gì?
Khai thác văn bản trong R đề cập đến quá trình phân tích và trích xuất thông tin chuyên sâu từ dữ liệu văn bản bằng ngôn ngữ lập trình R cũng như các thư viện và gói liên quan. Khai thác văn bản bao gồm một số bước, bao gồm làm sạch và tiền xử lý dữ liệu, trích xuất tính năng, mô hình hóa thống kê và trực quan hóa.
Các
tm
gói cung cấp các chức năng để đọc dữ liệu văn bản, làm sạch và tiền xử lý dữ liệu cũng như tạo ma trận thuật ngữ tài liệu, thường được sử dụng để phân tích dữ liệu văn bản. Các
tidytext
gói cung cấp các công cụ để chuyển đổi dữ liệu văn bản thành các khung dữ liệu gọn gàng hơn.
Một số nhiệm vụ phổ biến trong khai thác văn bản bao gồm phân tích cảm xúc, lập mô hình chủ đề, phân cụm tài liệu và phân loại văn bản. Những nhiệm vụ này liên quan đến việc áp dụng các kỹ thuật thống kê và học máy để xác định các mẫu và mối quan hệ trong dữ liệu văn bản.
API trích xuất từ khóa là giao diện phần mềm cho phép nhà phát triển trích xuất từ khóa và cụm từ khóa từ văn bản bằng thuật toán dựng sẵn và mô hình máy học. Các API này cung cấp giải pháp dễ sử dụng và có thể mở rộng để tự động hóa quy trình trích xuất từ khóa mà không cần nhà phát triển xây dựng và đào tạo mô hình của riêng họ.
R là ngôn ngữ lập trình mã nguồn mở và môi trường phần mềm dành cho tính toán thống kê, phân tích dữ liệu và đồ họa. Mọi người sử dụng rộng rãi R trong học viện, nghiên cứu và công nghiệp cho các nhiệm vụ như lập mô hình thống kê, trực quan hóa dữ liệu, học máy và khai thác dữ liệu. Nó có giao diện với các ngôn ngữ lập trình khác như Python và C++ . Tìm thông tin chi tiết hơn với hướng dẫn trực tuyến trên GitHub.