Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tạo Bigram từ list Python cho trước

Bigram được tạo bằng cách ghép cặp từ từ hai từ liên tiếp trong một câu cho trước. Trong Python, kỹ thuật này được dùng nhiều trong phân tích văn bản. Dưới đây là hai cách tiếp cận để thực hiện.

Sử dụng enumerate và split

Dùng hai phương pháp này, trước tiên tách câu thành nhiều từ, sau đó dùng hàm enumerate để tạo cặp từ từ các từ liên tiếp.

Ví dụ

list = ['Stop. look left right. go']
print("Danh sách cho trước là : \n" + str(list))
# Sử dụng enumerate() và split() để tạo Bigram
output = [(k, m.split()[n + 1]) for m in list for n, k in enumerate(m.split()) if n < len(m.split()) - 1]
print("Tạo Bigram từ danh sách cho trước là: \n" + str(output))

Kết quả

Chạy đoạn code trên cho kết quả sau:

Danh sách cho trước là : ['Stop. look left right. go']
Tạo Bigram từ danh sách cho trước là: [('Stop.', 'look'), ('look', 'left'), ('left', 'right.'), ('right.', 'go')]

Sử dụng zip() và split()

Chúng ta cũng có thể tạo bigram dùng zip và split. Hàm zip() gom các từ theo thứ tự được tạo từ câu dùng split().

Ví dụ

list = ['Stop. look left right. go']
print("Danh sách cho trước là : \n" + str(list))
# Sử dụng zip() và split() để tạo Bigram
output = [m for n in list for m in zip(n.split(" ")[:-1], n.split(" ")[1:])]
print("Tạo Bigram từ danh sách cho trước là: \n" + str(output))

Kết quả

Chạy đoạn code trên cho kết quả sau:

Danh sách cho trước là : ['Stop. look left right. go']
Tạo Bigram từ danh sách cho trước là: [('Stop.', 'look'), ('look', 'left'), ('left', 'right.'), ('right.', 'go')]