Trích xuất cụm từ từ văn bản python

Accueil > Kỹ thuật SEO > Tự động trích xuất các khái niệm và từ khóa

Tại bộ phận R&D của Oncrawl, chúng tôi đang ngày càng tìm cách nâng cao nội dung ngữ nghĩa của các trang Web của bạn. Sử dụng các mô hình Máy học để xử lý ngôn ngữ tự nhiên [NLP], chúng tôi có thể so sánh chi tiết nội dung các trang của bạn, tạo bản tóm tắt tự động, hoàn thành hoặc sửa các thẻ trong bài viết của bạn, tối ưu hóa nội dung theo dữ liệu Google Search Console của bạn, v.v.

Trong một bài viết trước, chúng tôi đã nói về việc trích xuất nội dung văn bản từ các trang HTML. Lần này, chúng tôi muốn nói về việc trích xuất tự động các từ khóa từ một văn bản. Chủ đề này sẽ được chia thành hai bài viết

  • phần đầu tiên sẽ đề cập đến bối cảnh và cái gọi là phương pháp “truyền thống” với một số ví dụ cụ thể
  • cái thứ hai sắp ra mắt sẽ xử lý các cách tiếp cận ngữ nghĩa hơn dựa trên các biến thể và phương pháp đánh giá để đánh giá các phương pháp khác nhau này

Bối cảnh

Ngoài tiêu đề hoặc phần tóm tắt, còn cách nào tốt hơn để xác định nội dung của văn bản, bài báo khoa học hoặc trang web bằng một vài từ khóa. Đó là một cách đơn giản và rất hiệu quả để xác định chủ đề và khái niệm của một văn bản dài hơn nhiều. Nó cũng có thể là một cách tốt để phân loại một loạt các văn bản. xác định chúng và nhóm chúng theo từ khóa. Các trang web cung cấp các bài báo khoa học như PubMed hoặc arxiv. org có thể cung cấp các danh mục và đề xuất dựa trên những từ khóa này

Từ khóa cũng rất hữu ích để lập chỉ mục các tài liệu rất lớn và để truy xuất thông tin, một lĩnh vực chuyên môn được các công cụ tìm kiếm biết đến 😉

Việc thiếu từ khóa là một vấn đề thường xuyên xảy ra trong việc phân loại tự động các bài báo khoa học [1]. nhiều bài viết không có từ khóa được chỉ định. Do đó, phải tìm ra các phương pháp để tự động trích xuất các khái niệm và từ khóa từ văn bản. Để đánh giá mức độ liên quan của một tập hợp từ khóa được trích xuất tự động, bộ dữ liệu thường so sánh các từ khóa được trích xuất bởi một thuật toán với các từ khóa được trích xuất bởi một số người

Như bạn có thể tưởng tượng, đây là một vấn đề được chia sẻ bởi các công cụ tìm kiếm khi phân loại các trang web. Hiểu rõ hơn về các quy trình trích xuất từ ​​khóa tự động cho phép hiểu rõ hơn lý do tại sao một trang web được định vị cho từ khóa đó hoặc từ khóa đó. Nó cũng có thể tiết lộ những lỗ hổng ngữ nghĩa khiến nó không được xếp hạng tốt cho từ khóa bạn đã nhắm mục tiêu

Rõ ràng là có một số cách để trích xuất từ ​​khóa từ một văn bản hoặc một đoạn văn. Trong bài đăng đầu tiên này, chúng tôi sẽ mô tả cái gọi là cách tiếp cận “cổ điển”

[Ebook] Dữ liệu SEO. Cuộc phiêu lưu lớn tiếp theo

Khám phá các công cụ và công nghệ của SEO dữ liệu và tìm hiểu kiến ​​thức và kỹ năng nào mà các SEO cần đạt được để thành thạo SEO dự đoán và tự động hóa

Đọc sách điện tử

hạn chế

Tuy nhiên, chúng tôi có một số hạn chế và điều kiện tiên quyết trong việc lựa chọn thuật toán

  • Phương thức phải có khả năng trích xuất các từ khóa từ một tài liệu. Một số phương pháp yêu cầu một kho ngữ liệu hoàn chỉnh, tôi. e. vài trăm thậm chí hàng ngàn tài liệu. Mặc dù các phương pháp này có thể được sử dụng bởi các công cụ tìm kiếm, nhưng chúng sẽ không hữu ích cho một tài liệu
  • Chúng tôi đang ở trong trường hợp Học máy không giám sát. Chúng tôi không có sẵn bộ dữ liệu bằng tiếng Pháp, tiếng Anh hoặc các ngôn ngữ khác với dữ liệu được chú thích. Nói cách khác, chúng tôi không có hàng nghìn tài liệu với các từ khóa đã được trích xuất
  • Phương thức phải độc lập với miền/trường từ vựng của tài liệu. Chúng tôi muốn có thể trích xuất từ ​​khóa từ bất kỳ loại tài liệu nào. bài báo, trang web, vv. Lưu ý rằng một số bộ dữ liệu đã có từ khóa được trích xuất cho mỗi tài liệu thường là y học, khoa học máy tính, v.v.
  • Một số phương pháp dựa trên các mô hình gắn thẻ POS, tôi. e. khả năng của một mô hình NLP để xác định các từ trong câu theo loại ngữ pháp của chúng. một động từ, một danh từ, một định thức. Việc xác định tầm quan trọng của một từ khóa là một danh từ chứ không phải là một từ hạn định rõ ràng là có liên quan. Tuy nhiên, tùy thuộc vào ngôn ngữ, các mô hình gắn thẻ POS đôi khi có chất lượng không đồng đều

Về phương pháp truyền thống

Chúng tôi phân biệt giữa cái gọi là phương pháp “truyền thống” và những phương pháp gần đây hơn sử dụng NLP – Xử lý ngôn ngữ tự nhiên – các kỹ thuật như nhúng từ và nhúng theo ngữ cảnh. Chủ đề này sẽ được đề cập trong một bài viết trong tương lai. Nhưng trước tiên, hãy quay trở lại với các phương pháp cổ điển, chúng tôi phân biệt hai trong số chúng

  • phương pháp thống kê
  • phương pháp đồ thị

Phương pháp thống kê sẽ chủ yếu dựa vào tần số từ và sự xuất hiện đồng thời của chúng. Chúng tôi bắt đầu với các giả thuyết đơn giản để xây dựng kinh nghiệm và trích xuất các từ quan trọng. một từ rất thường xuyên, một loạt các từ liên tiếp xuất hiện nhiều lần, v.v. Các phương pháp dựa trên đồ thị sẽ xây dựng một đồ thị mà mỗi nút có thể tương ứng với một từ, nhóm từ hoặc câu. Sau đó, mỗi cung có thể biểu thị xác suất [hoặc tần suất] quan sát những từ này cùng nhau

Dưới đây là một số phương pháp

  • dựa trên thống kê
    • TF-IDF
    • CÀO
    • YẾU
  • dựa trên đồ thị
    • Xếp hạng văn bản
    • Chủ đềXếp hạng
    • Xếp hạng đơn

Tất cả các ví dụ được sử dụng văn bản lấy từ trang web này. Jazz au Tresor. John Coltrane – Ấn tượng Graz 1962

phương pháp thống kê

Chúng tôi sẽ giới thiệu cho bạn hai phương pháp Rake và Yake. Trong bối cảnh SEO, bạn có thể đã nghe nói về phương pháp TF-IDF. Nhưng vì nó yêu cầu một kho tài liệu, chúng tôi sẽ không giải quyết nó ở đây

CÀO

RAKE là viết tắt của Rapid Automatic Keyword Extraction. Có một số cách triển khai phương thức này trong Python, bao gồm rake-nltk. Điểm của mỗi từ khóa, còn được gọi là cụm từ khóa vì nó chứa nhiều từ, dựa trên hai yếu tố. tần suất của các từ và tổng số lần xuất hiện của chúng. Cấu trúc của mỗi cụm từ khóa rất đơn giản, nó bao gồm

  1. cắt văn bản thành câu
  2. cắt từng câu thành các cụm từ khóa

Trong câu sau, chúng ta sẽ lấy tất cả các nhóm từ được phân tách bằng các thành phần dấu câu hoặc từ dừng

Ngay trước đó, Coltrane đang dẫn đầu một nhóm ngũ tấu, với Eric Dolphy ở bên cạnh và Reggie Workman chơi bass đôi

Điều này có thể dẫn đến các cụm từ khóa sau.
______6.

Lưu ý rằng từ dừng là một loạt các từ rất thường xuyên như “the“, “in“, “and” or

# python snippet for yake
from yake import KeywordExtractor as Yake

yake = Yake[lan="fr", stopwords=FRENCH_STOPWORDS]
yake_keyphrases = yake.extract_keywords[text]
0“. Vì các phương pháp cổ điển thường dựa trên việc tính toán tần suất xuất hiện của các từ, điều quan trọng là bạn phải chọn các từ dừng một cách cẩn thận. Hầu hết thời gian, chúng tôi không muốn có những từ như
# python snippet for yake
from yake import KeywordExtractor as Yake

yake = Yake[lan="fr", stopwords=FRENCH_STOPWORDS]
yake_keyphrases = yake.extract_keywords[text]
1,
# python snippet for yake
from yake import KeywordExtractor as Yake

yake = Yake[lan="fr", stopwords=FRENCH_STOPWORDS]
yake_keyphrases = yake.extract_keywords[text]
2 “của” trong các đề xuất cụm từ khóa của chúng tôi. Thật vậy, những từ dừng này không được liên kết với một trường từ vựng cụ thể và do đó ít liên quan hơn nhiều so với các từ “
# python snippet for yake
from yake import KeywordExtractor as Yake

yake = Yake[lan="fr", stopwords=FRENCH_STOPWORDS]
yake_keyphrases = yake.extract_keywords[text]
0” hoặc “
# python snippet for yake
from yake import KeywordExtractor as Yake

yake = Yake[lan="fr", stopwords=FRENCH_STOPWORDS]
yake_keyphrases = yake.extract_keywords[text]
1” chẳng hạn

Khi chúng tôi đã cô lập một số cụm từ khóa ứng cử viên, chúng tôi sẽ cho điểm chúng theo tần suất xuất hiện của các từ và các lần xuất hiện đồng thời. Điểm càng cao, các cụm từ khóa càng phù hợp

Hãy thử nhanh với văn bản từ bài viết về John Coltrane

# python snippet for rake
from rake_nltk import Rake

# suppose you've already the article in the 'text' variable
rake = Rake[stopwords=FRENCH_STOPWORDS, max_length=4]
rake.extract_keywords_from_text[text]
rake_keyphrases = rake.get_ranked_phrases_with_scores[][:TOP]

Dưới đây là 5 cụm từ khóa đầu tiên

“đài phát thanh công cộng quốc gia Áo”, “đỉnh cao trữ tình hơn cả thiên đường”, “graz có hai đặc thù”, “john coltrane tenor saxophone”, “phiên bản duy nhất được thu âm”

Có một vài nhược điểm đối với phương pháp này. Đầu tiên là tầm quan trọng của việc lựa chọn từ dừng vì chúng được sử dụng để chia câu thành các cụm từ khóa ứng cử viên. Thứ hai là khi keyphrases quá dài thường sẽ có điểm cao hơn do sự xuất hiện đồng thời của các từ có mặt. Để giới hạn độ dài của các cụm từ khóa, chúng tôi đã đặt phương thức bằng một

# python snippet for yake
from yake import KeywordExtractor as Yake

yake = Yake[lan="fr", stopwords=FRENCH_STOPWORDS]
yake_keyphrases = yake.extract_keywords[text]
2

YẾU

YAKE là viết tắt của Yet Another Keyword Extractor. Phương pháp này dựa trên bài viết sau YAKE. Trích xuất từ ​​khóa từ các tài liệu đơn lẻ bằng nhiều tính năng cục bộ có từ năm 2020. Đây là một phương pháp mới hơn RAKE mà các tác giả đã đề xuất triển khai Python có sẵn trên Github

Đối với RAKE, chúng tôi sẽ dựa vào tần số từ và sự xuất hiện đồng thời. Các tác giả cũng sẽ thêm một số heuristic thú vị

  • chúng ta sẽ phân biệt giữa các từ viết thường và các từ viết hoa [chữ cái đầu tiên hoặc cả từ]. Ở đây, chúng tôi sẽ giả định rằng các từ bắt đầu bằng chữ in hoa [ngoại trừ ở đầu câu] có liên quan hơn các từ khác. tên người, thành phố, quốc gia, thương hiệu. Đây là cùng một nguyên tắc cho tất cả các từ viết hoa
  • điểm của mỗi cụm từ khóa ứng cử viên sẽ phụ thuộc vào vị trí của nó trong văn bản. Nếu các cụm từ khóa ứng cử viên xuất hiện ở đầu văn bản, chúng sẽ có điểm cao hơn nếu chúng xuất hiện ở cuối. Ví dụ, các bài báo thường đề cập đến các khái niệm quan trọng ở đầu bài viết
# python snippet for yake
from yake import KeywordExtractor as Yake

yake = Yake[lan="fr", stopwords=FRENCH_STOPWORDS]
yake_keyphrases = yake.extract_keywords[text]

Giống như RAKE, đây là 5 kết quả hàng đầu

“Treasure Jazz”, “John Coltrane”, “Ấn tượng Graz”, “Graz”, “Coltrane”

Mặc dù có một số trùng lặp một số từ nhất định trong một số cụm từ khóa, nhưng phương pháp này có vẻ khá thú vị

cách tiếp cận đồ thị

Cách tiếp cận này không quá xa so với cách tiếp cận thống kê theo nghĩa là chúng ta cũng sẽ tính toán các lần xuất hiện của từ. Hậu tố Xếp hạng được liên kết với một số tên phương thức, chẳng hạn như TextRank, dựa trên nguyên tắc của thuật toán Xếp hạng Trang để tính toán mức độ phổ biến của mỗi trang dựa trên các liên kết đến và đi của nó

[Ebook] Tự động hóa SEO với Oncrawl

Khám phá cách giải quyết các vấn đề SEO dễ dàng hơn bằng cách tự động cảnh báo khi quá trình thu thập thông tin kết thúc

Đọc sách điện tử

Xếp hạng văn bản

Thuật toán này xuất phát từ TextRank giấy. Đưa trật tự vào văn bản từ năm 2004 và dựa trên các nguyên tắc giống như thuật toán PageRank. Tuy nhiên, thay vì xây dựng một biểu đồ với các trang và liên kết, chúng tôi sẽ xây dựng một biểu đồ với các từ. Mỗi từ sẽ được liên kết với các từ khác theo sự xuất hiện của chúng

Có một số triển khai trong Python. Trong bài viết này, tôi sẽ giới thiệu về pytextrank. Chúng tôi sẽ phá vỡ một trong những hạn chế của chúng tôi về việc gắn thẻ POS. Thật vậy, khi xây dựng biểu đồ, chúng tôi sẽ không bao gồm tất cả các từ dưới dạng nút. Chỉ động từ và danh từ sẽ được tính đến. Giống như các phương pháp trước đó sử dụng từ dừng để lọc ra các ứng cử viên không liên quan, thuật toán TextRank sử dụng loại từ ngữ pháp

Dưới đây là một ví dụ về một phần của biểu đồ sẽ được xây dựng bởi thuật toán

ví dụ về biểu đồ xếp hạng văn bản

Đây là một ví dụ về việc sử dụng trong Python. Lưu ý rằng việc triển khai này sử dụng cơ chế đường ống của thư viện spaCy. Đây là thư viện có thể thực hiện gắn thẻ POS

# python snippet for pytextrank
import spacy
import pytextrank

# load a french model
nlp = spacy.load["fr_core_news_sm"]

# add pytextrank to the pipe
nlp.add_pipe["textrank"]
doc = nlp[text]

textrank_keyphrases = doc._.phrases

Dưới đây là 5 kết quả hàng đầu

“Copenhague”, “novembre”, “Ấn tượng Graz”, “Graz”, “John Coltrane”

Ngoài việc trích xuất các cụm từ khóa, TextRank còn trích xuất các câu. Điều này có thể rất hữu ích để tạo ra cái gọi là “tóm tắt trích xuất” – khía cạnh này sẽ không được đề cập trong bài viết này

kết luận

Trong số ba phương pháp được thử nghiệm ở đây, hai phương pháp cuối cùng đối với chúng tôi dường như khá phù hợp với chủ đề của văn bản. Để so sánh tốt hơn các phương pháp này, rõ ràng chúng ta sẽ phải đánh giá các mô hình khác nhau này trên một số lượng lớn các ví dụ. Thực sự có các số liệu để đo mức độ liên quan của các mô hình trích xuất từ ​​khóa này

Danh sách các từ khóa được tạo ra bởi cái gọi là mô hình truyền thống này cung cấp cơ sở tuyệt vời để kiểm tra xem các trang của bạn có được nhắm mục tiêu tốt không. Ngoài ra, chúng đưa ra ước tính đầu tiên về cách công cụ tìm kiếm có thể hiểu và phân loại nội dung

Mặt khác, các phương pháp khác sử dụng các mô hình NLP được đào tạo trước như BERT cũng có thể được sử dụng để trích xuất các khái niệm từ tài liệu. Trái ngược với cái gọi là cách tiếp cận cổ điển, các phương pháp này thường cho phép nắm bắt ngữ nghĩa tốt hơn

Các phương pháp đánh giá khác nhau, nhúng theo ngữ cảnh và máy biến áp sẽ được trình bày trong bài viết thứ hai về chủ đề này

Đây là danh sách các từ khóa được trích xuất từ ​​bài viết này bằng một trong ba phương pháp được đề cập

“phương pháp”, “từ khóa”, “cụm từ khóa”, “văn bản”, “từ khóa được trích xuất”, “Xử lý ngôn ngữ tự nhiên”

Tài liệu tham khảo thư mục

  • [1] Cải thiện trích xuất từ ​​khóa tự động với nhiều kiến ​​thức ngôn ngữ hơn, Anette Hulth, 2003
  • [2] Trích xuất từ ​​khóa tự động từ các tài liệu riêng lẻ, Stuart Rose et. ất, 2010
  • [3] YẾU. Trích xuất từ ​​khóa từ các tài liệu đơn lẻ bằng nhiều tính năng cục bộ, Ricardo Campos et. âl, 2020
  • [4] Xếp hạng văn bản. Đưa trật tự vào văn bản, Rada Mihalcea et. ất, 2004

Bắt đầu dùng thử 14 ngày miễn phí của bạn

Tự mình tìm hiểu lý do tại sao Oncrawl là nền tảng SEO kỹ thuật và dữ liệu được công nhận nhất trên thị trường. Không cần thẻ tín dụng và không có ràng buộc nào được đính kèm. chỉ 14 ngày dùng thử đầy đủ tính năng

Bắt đầu dùng thử

Damien Garaud Xem tất cả các bài viết của họ Trở thành tác giả Oncrawl

Nhà khoa học dữ liệu tại Oncrawl, Damien thích học các công cụ và kỹ thuật phát triển mới, ngôn ngữ lập trình và thành ngữ mới để cải thiện công việc của mình

KeyBERT là gì?

KeyBERT là kỹ thuật trích xuất từ ​​khóa tối thiểu và dễ sử dụng, tận dụng nhúng BERT để tạo từ khóa và cụm từ khóa giống nhất với tài liệu.

Khai thác từ khóa Yake là gì?

Trong bài viết này, chúng tôi mô tả YAKE. , phương pháp trích xuất từ ​​khóa tự động không giám sát trọng lượng nhẹ dựa trên các tính năng văn bản thống kê được trích xuất từ ​​​​các tài liệu đơn lẻ để chọn các từ khóa phù hợp nhất của văn bản .

Các tùy chọn để trích xuất ý nghĩa từ văn bản trên trang web là gì?

Hãy khám phá 5 kỹ thuật phổ biến được sử dụng để trích xuất thông tin từ văn bản trên. .
Nhận dạng thực thể được đặt tên. Kỹ thuật cơ bản và hữu ích nhất trong NLP là trích xuất các thực thể trong văn bản. .
Phân tích tình cảm. .
Tóm tắt văn bản. .
khai thác khía cạnh. .
Mô hình hóa chủ đề

Làm cách nào để cài đặt cào trong Python?

Phát triển .
Kiểm tra kho lưu trữ
Thực hiện các thay đổi của bạn và thêm/cập nhật các bài kiểm tra liên quan
Cài đặt `thơ` bằng cách sử dụng `pip cài đặt thơ`
Chạy `poetry install` để tạo môi trường ảo cho dự án
Chạy thử nghiệm bằng cách sử dụng `poetry run tox` [Mọi phiên bản python mà bạn chưa kiểm tra sẽ không thành công]

Chủ Đề