Hướng dẫn how do you count the frequency of words in a python file? - làm thế nào để bạn đếm tần suất của các từ trong một tệp python?

Bạn đã bao giờ tự hỏi về một cách nhanh chóng để nói những gì một tài liệu đang tập trung vào? Chủ đề chính của nó là gì? Hãy để tôi cung cấp cho bạn thủ thuật đơn giản này. Liệt kê các từ duy nhất được đề cập trong tài liệu, và sau đó kiểm tra số lần mỗi từ đã được đề cập [tần số]. Bằng cách này sẽ cung cấp cho bạn một dấu hiệu cho thấy tài liệu chủ yếu là về những gì. Nhưng đó sẽ là một nhiệm vụ rất nhàm chán, chậm chạp và mệt mỏi nếu được thực hiện bằng tay. Chúng ta cần một quy trình tự động, phải không?

Có, một quy trình tự động sẽ làm cho điều này dễ dàng hơn nhiều. Hãy xem làm thế nào chúng ta có thể liệt kê các từ duy nhất khác nhau trong tệp văn bản và kiểm tra tần số của từng từ bằng Python.

1. Nhận tệp kiểm tra Get the Test File

Trong hướng dẫn này, chúng tôi sẽ sử dụng Test.txt làm tệp thử nghiệm của chúng tôi. Hãy tiếp tục và tải xuống, nhưng đừng mở nó! Hãy tạo một trò chơi nhỏ. Văn bản bên trong tệp thử nghiệm này là từ một trong những hướng dẫn của tôi tại Envato Tuts+. Dựa trên tần suất của các từ, hãy đoán xem hướng dẫn nào của tôi, văn bản này được trích xuất từ ​​đó.

Hãy bắt đầu trò chơi!

Về biểu thức thường xuyên

Vì chúng tôi sẽ áp dụng một mẫu trong trò chơi của mình, chúng tôi cần sử dụng các biểu thức chính quy [regex]. Nếu "biểu thức chính quy" là một thuật ngữ mới đối với bạn, thì đây là một định nghĩa tốt từ Wikipedia:

Một chuỗi các ký tự xác định mẫu tìm kiếm, chủ yếu để sử dụng trong khớp mẫu với các chuỗi hoặc khớp chuỗi, tức là "Tìm và thay thế" các thao tác giống như. Khái niệm này nảy sinh vào những năm 1950, khi nhà toán học người Mỹ Stephen Kleene chính thức hóa mô tả ngôn ngữ thông thường và được sử dụng phổ biến với các tiện ích xử lý văn bản Unix ed, trình soạn thảo và grep, bộ lọc

Nếu bạn muốn biết thêm về các biểu thức thông thường trước khi tiến lên phía trước với hướng dẫn này, bạn có thể thấy các biểu thức thường xuyên hướng dẫn khác của tôi trong Python và quay lại một lần nữa để tiếp tục hướng dẫn này.

2. Xây dựng chương trìnhBuilding the Program

Hãy làm việc từng bước để xây dựng trò chơi này. Điều đầu tiên chúng tôi muốn làm là lưu trữ tệp văn bản trong một biến chuỗi.

document_text = open['test.txt', 'r']
text_string = document_text.read[]

Bây giờ, để làm cho việc áp dụng biểu thức thông thường của chúng tôi dễ dàng hơn, hãy biến tất cả các chữ cái trong tài liệu của chúng tôi thành các chữ cái viết thường, sử dụng hàm thấp hơn [], như sau:

text_string = document_text.read[].lower[]

Hãy viết biểu thức chính quy của chúng tôi sẽ trả về tất cả các từ với một số ký tự trong phạm vi

text_string = document_text.read[].lower[]
0. Bắt đầu từ
text_string = document_text.read[].lower[]
1 sẽ giúp tránh các từ có tần suất chúng ta có thể không quan tâm đến việc đếm, như nếu, của, trong, v.v., và các từ dài hơn
text_string = document_text.read[].lower[]
2 có thể không phải là từ chính xác. Biểu thức chính quy cho một mẫu như vậy trông như thế này:

\b[a-z]{3,15}\b

text_string = document_text.read[].lower[]
3 có liên quan đến ranh giới từ. Để biết thêm thông tin về ranh giới từ, bạn có thể kiểm tra hướng dẫn này.

Biểu thức thông thường ở trên có thể được viết như sau:

match_pattern = re.search[r'\b[a-z]{3,15}\b', text_string]

Vì chúng tôi muốn đi qua nhiều từ trong tài liệu, chúng tôi có thể sử dụng hàm

text_string = document_text.read[].lower[]
4:

Trả về tất cả các trận đấu không chồng chéo của mẫu trong chuỗi, như một danh sách các chuỗi. Chuỗi được quét từ trái sang phải và các trận đấu được trả về theo thứ tự được tìm thấy. Nếu một hoặc nhiều nhóm có mặt trong mẫu, hãy trả lại danh sách các nhóm; Đây sẽ là một danh sách các bộ dữ liệu nếu mẫu có nhiều hơn một nhóm. Các trận đấu trống được bao gồm trong kết quả trừ khi họ chạm vào sự khởi đầu của một trận đấu khác.

Tại thời điểm này, chúng tôi muốn tìm tần số của từng từ trong tài liệu. Khái niệm phù hợp để sử dụng ở đây là từ điển của Python, vì chúng ta cần các cặp

text_string = document_text.read[].lower[]
5, trong đó
text_string = document_text.read[].lower[]
6 là từ và
text_string = document_text.read[].lower[]
7 đại diện cho tần số mà các từ xuất hiện trong tài liệu.

Giả sử chúng tôi đã tuyên bố một từ điển trống

text_string = document_text.read[].lower[]
8, đoạn trên sẽ trông như sau:

for word in match_pattern:
    count = frequency.get[word,0]
    frequency[word] = count + 1

Bây giờ chúng ta có thể thấy các phím của mình bằng cách sử dụng:

frequency_list = frequency.keys[]

Cuối cùng, để có được từ và tần số của nó [số lần nó xuất hiện trong tệp văn bản], chúng ta có thể làm như sau:

for words in frequency_list:
    print[words, frequency[words]]

Hãy đặt chương trình lại với nhau trong phần tiếp theo và xem đầu ra trông như thế nào.

3. Đặt tất cả lại với nhau Putting It All Together

Đã thảo luận về chương trình từng bước, bây giờ chúng ta hãy xem chương trình trông như thế nào:

import re

frequency = {}
document_text = open['test.txt', 'r']
text_string = document_text.read[].lower[]
match_pattern = re.findall[r'\b[a-z]{3,15}\b', text_string]

for word in match_pattern:
    count = frequency.get[word,0]
    frequency[word] = count + 1
    
frequency_list = frequency.keys[]

for words in frequency_list:
    print[words, frequency[words]]

Nếu bạn chạy chương trình, bạn sẽ nhận được một cái gì đó như sau: & nbsp;

Hãy trở lại trò chơi của chúng tôi. Trải qua các tần số từ, bạn nghĩ rằng tệp kiểm tra [với nội dung từ hướng dẫn Python khác của tôi] đang nói về điều gì?

[Gợi ý: Kiểm tra từ với tần số tối đa].

4. Nhận các từ thường xuyên nhấtGet the Most Frequent Words

Trong ví dụ trên, danh sách các từ độc đáo khá nhỏ do một mẫu văn bản nhỏ. Vì vậy, chúng tôi có thể chọn từ thường xuyên nhất sau khi liếc qua danh sách tương đối nhanh chóng.

Điều gì sẽ xảy ra nếu mẫu văn bản khá lớn? Trong trường hợp đó, sẽ dễ dàng hơn nhiều để có được các từ thường xuyên nhất bằng cách sắp xếp đơn giản được đưa vào chương trình của chúng tôi. Dưới đây là một số mã ví dụ nhận được các từ được sử dụng thường xuyên nhất từ ​​đoạn trích của Dracula.

import re

frequency = {}
document_text = open['dracula.txt', 'r']
text_string = document_text.read[].lower[]
match_pattern = re.findall[r'\b[a-z]{3,15}\b', text_string]
 
for word in match_pattern:
    count = frequency.get[word,0]
    frequency[word] = count + 1

most_frequent = dict[sorted[frequency.items[], key=lambda elem: elem[1], reverse=True]]

most_frequent_count = most_frequent.keys[]
 
for words in most_frequent_count:
    print[words, most_frequent[words]]

Tôi đã nhận được danh sách các từ sau khi thực hiện chương trình.

5. Loại trừ các từ cụ thể khỏi số lượng Exclude Specific Words From the Count

Bạn thường có thể mong đợi từ phổ biến nhất trong bất kỳ đoạn văn bản lớn nào là từ "The". Bạn có thể loại bỏ các từ filler không mong muốn như vậy để phân tích văn bản tốt hơn bằng cách tạo một danh sách đen và chỉ thêm các từ vào từ điển của bạn nếu chúng không nằm trong danh sách đen.

import re

frequency = {}
document_text = open['dracula.txt', 'r']
text_string = document_text.read[].lower[]
match_pattern = re.findall[r'\b[a-z]{3,15}\b', text_string]

blacklisted = ['the', 'and', 'for', 'that', 'which']
 
for word in match_pattern:
    if word not in blacklisted:
        count = frequency.get[word,0]
        frequency[word] = count + 1

most_frequent = dict[sorted[frequency.items[], key=lambda elem: elem[1], reverse=True]]

most_frequent_count = most_frequent.keys[]
 
for words in most_frequent_count:
    print[words, most_frequent[words]]

Dưới đây là đầu ra sau khi chạy mã trên trên cùng một tệp.

Suy nghĩ cuối cùng

Trong hướng dẫn này, chúng tôi đã học cách có được tần suất của các từ trong mẫu văn bản bằng cách sử dụng chương trình Python đơn giản. Chúng tôi cũng đã sửa đổi mã gốc để có được danh sách các từ thường xuyên nhất hoặc chỉ nhận được các từ không có trong danh sách đen của chúng tôi. Hy vọng, bây giờ bạn sẽ có thể cập nhật chương trình theo nhu cầu cá nhân của riêng bạn để phân tích bất kỳ đoạn văn bản nào.

Bạn có thấy bài đăng này hữu ích?

Tôi thích viết về Python.

Làm thế nào để bạn đếm tần số trong Python?

Sử dụng dict..
Khởi tạo mảng ..
Khởi tạo một dict trống ..
Lặp lại trong danh sách.Nếu phần tử không có trong Dict, thì hãy đặt giá trị thành 1. Khác tăng giá trị lên 1 ..
In phần tử và tần số bằng cách lặp lại trên Dict ..

Làm thế nào để bạn kiểm tra số lượng từ trong python?

Cách đếm số lượng từ trong một chuỗi trong Python..
A_String = "Một hai ba".
Word_List = a_String.Split [] chia `a_string` bằng khoảng trắng ..
number_of_words = len [word_list].
print[number_of_words].

Bài Viết Liên Quan

Chủ Đề