Nguyễn Nam

Trong SEO, phân tích n-gram giúp chúng ta hiểu rõ hơn về các cụm từ phổ biến mà người dùng tìm kiếm. Bằng cách xác định những cụm từ quan trọng nhất từ báo cáo truy vấn, chúng ta có thể tối ưu hóa nội dung để phù hợp với xu hướng tìm kiếm của người dùng.

Bài viết này hướng dẫn bạn cách sử dụng Python để phân tích n-gram từ dữ liệu SEO, xác định các cụm từ phổ biến nhất và tổng hợp lượng hiển thị (Impressions) của chúng. Toàn bộ quy trình được thực hiện trong Google Colab.


1. Cài Đặt Thư Viện Cần Thiết

Trước khi chạy mã, bạn cần cài đặt các thư viện Python sau trong Google Colab:

!pip install nltk pandas numpy

2. Chuẩn Bị Dữ Liệu

Chúng ta sử dụng dữ liệu từ tệp CSV chứa truy vấn tìm kiếm của người dùng. Hãy tải tệp lên Google Colab trước khi chạy mã.

import pandas as pd
import collections
import nltk
import numpy as np
from google.colab import files

# Tải dữ liệu
uploaded = files.upload()

# Đọc file CSV (giả sử tệp có cột 'queries' và 'Impressions')
df = pd.read_csv('/content/query.csv')

Dữ liệu cần có hai cột:


3. Phân Tích N-Gram

Bước tiếp theo là tách các truy vấn thành các cụm từ (n-gram) để xem từ hoặc cụm từ nào xuất hiện nhiều nhất.

# Tạo danh sách truy vấn
list_of_keywords = df['queries'].tolist()
list_of_words_in_keywords = [x.split(" ") for x in list_of_keywords]

# Đếm số lần xuất hiện của từng n-gram
counts = collections.Counter()
for phrase in list_of_words_in_keywords:
    counts.update(nltk.ngrams(phrase, 1))  # Unigram (1-gram)
    counts.update(nltk.ngrams(phrase, 2))  # Bigram (2-gram)

# Lấy 400 n-grams phổ biến nhất
top_400 = counts.most_common(400)
x = pd.DataFrame(top_400, columns=['query', 'count'])

4. Tính Tổng Số Lần Hiển Thị Cho Mỗi N-Gram

Chúng ta sẽ tính tổng số lần hiển thị (Impressions) của từng n-gram bằng cách kiểm tra tất cả các truy vấn chứa nó.

# Hàm lấy tổng impressions
def GetVolume(query):
    df_filtered = df[df['queries'].str.contains(query, regex=False, na=False)]
    return df_filtered['Impressions'].sum()

# Xóa các ký tự không cần thiết
def RemoveUselessChar(x):
    return ''.join([char for char in x if char not in "'(),"])

# Làm sạch dữ liệu và tính volume
x['query'] = x['query'].apply(lambda q: RemoveUselessChar(str(q)))
x['Volume'] = x['query'].apply(GetVolume)

5. Xuất Dữ Liệu Thành File CSV

Sau khi hoàn thành phân tích, chúng ta sẽ lưu dữ liệu vào một tệp CSV để sử dụng sau này.

# Xuất dữ liệu
x.to_csv('ngram_analysis.csv', index=False)

# Tải file về máy
files.download('ngram_analysis.csv')

6. Ứng Dụng Trong SEO


Kết Luận

Với Python và Google Colab, bạn có thể nhanh chóng phân tích n-gram từ dữ liệu SEO để tối ưu hóa nội dung hiệu quả hơn. Hãy thử chạy mã trên Google Colab và áp dụng vào chiến lược SEO của bạn ngay hôm nay!

 

11 Responses

  1. Alright mates, gave idd888 a whirl the other day. Not bad, not bad at all. A decent selection of games, and the site’s pretty easy to navigate. Might stick around for a bit, y’know. Check it out here idd888.

Leave a Reply

Your email address will not be published. Required fields are marked *

Solverwp- WordPress Theme and Plugin