Tần số Python

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

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

1. Lấy tệp thử nghiệm

Trong hướng dẫn này, chúng tôi sẽ sử dụng thử nghiệm. txt làm tệp thử nghiệm của chúng tôi. Bạn cứ tải về nhưng đừng mở. Hãy làm 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 xuất hiện của các từ, hãy đoán xem văn bản này được trích xuất từ ​​hướng dẫn nào của tôi

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

Giới thiệu về biểu thức chính quy

Vì chúng tôi sẽ áp dụng một mẫu trong trò chơi của mình, nên 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 hay từ Wikipedia

Một chuỗi ký tự xác định mẫu tìm kiếm, chủ yếu để sử dụng trong khớp mẫu với chuỗi hoặc khớp chuỗi, i. e. hoạt động giống như "tìm và thay thế". 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ả củ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ề biểu thức chính quy trước khi tiếp tục với hướng dẫn này, bạn có thể xem hướng dẫn khác của tôi Biểu thức chính quy trong Python và quay lại lần nữa để tiếp tục hướng dẫn này

2. Xây dựng chương trình

Hãy 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

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

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

1
text_string = document_text.read[].lower[]

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

document_text = open['test.txt', 'r']
16. Bắt đầu từ
document_text = open['test.txt', 'r']
17 sẽ giúp tránh những từ mà chúng ta có thể không quan tâm đến tần suất đếm, như if, of, in, v.v. , và những từ dài hơn
document_text = open['test.txt', 'r']
18 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

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

document_text = open['test.txt', 'r']
19 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ể xem hướng dẫn này

Biểu thức chính quy trên có thể được viết như sau

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

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

document_text = open['test.txt', 'r']
20

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

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

document_text = open['test.txt', 'r']
21, trong đó
document_text = open['test.txt', 'r']
22 là từ và
document_text = open['test.txt', 'r']
23 biểu thị tần suất xuất hiện của các từ trong tài liệu

Giả sử chúng ta đã khai báo một từ điển rỗng

document_text = open['test.txt', 'r']
24, đoạn văn trên sẽ như sau

1
document_text = open['test.txt', 'r']
1_______2_______
document_text = open['test.txt', 'r']
3
document_text = open['test.txt', 'r']
4_______1_______5

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

1
document_text = open['test.txt', 'r']
7

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

1
document_text = open['test.txt', 'r']
9
2
2_______1

Hãy kết hợp chương trình trong phần tiếp theo và xem đầu ra trông như thế nào

3. Tổng hợp tất cả

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

1
2
3
2
document_text = open['test.txt', 'r']
4
2
6
2
7
document_text = open['test.txt', 'r']
2
9
text_string = document_text.read[].lower[]
text_string = document_text.read[]
1
text_string = document_text.read[]
2
text_string = document_text.read[]
3
text_string = document_text.read[]
4
document_text = open['test.txt', 'r']
1
text_string = document_text.read[]
6
document_text = open['test.txt', 'r']
3
text_string = document_text.read[]
8
document_text = open['test.txt', 'r']
5
1
0
1
1
1
2
document_text = open['test.txt', 'r']
7
1
4
1
5
document_text = open['test.txt', 'r']
9
1
7
2
1

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

Hãy trở lại trò chơi của chúng ta. Đi qua các tần số từ, bạn nghĩ tệp thử nghiệm [có 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 suất tối đa]

4. Nhận các từ thông dụng nhất

Trong ví dụ trên, danh sách các từ duy nhất khá nhỏ do 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 lướt qua danh sách tương đối nhanh chóng

Nếu mẫu văn bản khá lớn thì sao? . Dưới đây là một số mã ví dụ lấy các từ được sử dụng thường xuyên nhất từ ​​​​đoạn trích của Dracula

1
2
3
2
document_text = open['test.txt', 'r']
4
2
6
2
7
text_string = document_text.read[].lower[]
5
2
9
text_string = document_text.read[].lower[]
text_string = document_text.read[]
1
text_string = document_text.read[]
2
text_string = document_text.read[]
3
1
1
text_string = document_text.read[]
4
document_text = open['test.txt', 'r']
1
text_string = document_text.read[]
6
document_text = open['test.txt', 'r']
3
text_string = document_text.read[]
8
document_text = open['test.txt', 'r']
5
1
0
1
2
\b[a-z]{3,15}\b
0
1
4
1
5
\b[a-z]{3,15}\b
3
1
7
1
1
\b[a-z]{3,15}\b
6
\b[a-z]{3,15}\b
7
\b[a-z]{3,15}\b
8
\b[a-z]{3,15}\b
9

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ố đếm

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ỏ những từ đệm 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 danh sách đen và chỉ thêm từ vào từ điển của bạn nếu chúng không có trong danh sách đen

1
2
3
2
document_text = open['test.txt', 'r']
4
2
6
2
7
text_string = document_text.read[].lower[]
5
2
9
text_string = document_text.read[].lower[]
text_string = document_text.read[]
1
text_string = document_text.read[]
2
text_string = document_text.read[]
3
text_string = document_text.read[]
4
match_pattern = re.search[r'\b[a-z]{3,15}\b', text_string]
3
text_string = document_text.read[]
6
1
1
text_string = document_text.read[]
8
document_text = open['test.txt', 'r']
1
1
0
match_pattern = re.search[r'\b[a-z]{3,15}\b', text_string]
9
1
2
document_text = open['test.txt', 'r']
01
1
4
document_text = open['test.txt', 'r']
03
1
5
1
7
\b[a-z]{3,15}\b
0
\b[a-z]{3,15}\b
6
\b[a-z]{3,15}\b
8
\b[a-z]{3,15}\b
3
document_text = open['test.txt', 'r']
10
1
1
document_text = open['test.txt', 'r']
12
\b[a-z]{3,15}\b
7
document_text = open['test.txt', 'r']
14
\b[a-z]{3,15}\b
9

Đây là kết quả sau khi chạy đoạn 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 ta đã học cách lấy tần suất của các từ trong một mẫu văn bản bằng cách sử dụng một chương trình Python đơn giản. Chúng tôi cũng đã sửa đổi mã gốc để nhận danh sách các từ thường dùng nhất hoặc chỉ nhận các từ không có trong danh sách đen của chúng tôi. Hy vọng rằng bây giờ bạn 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

Tần số có nghĩa là gì trong python?

Bảng tần suất là từ điển cho biết số lần một thứ xuất hiện trong danh sách . một danh sách python đơn giản. Danh sách này đơn giản và chúng ta có thể dễ dàng xem qua và đếm từng lần xuất hiện của một số.

Có chức năng tần số trong python không?

Bạn có thể tìm thấy tần suất bằng cách tính độ dài của từng danh sách . Nếu bạn đề cập đến dấu ngoặc đơn trong các câu như. "in [tần số [ l, g ] ]", thì chúng là do sử dụng Python 3. NẾU bạn đề cập đến chúng trong "if [ i < len[ values ​​] ]. ", sau đó nó là sử dụng cá nhân.

Làm thế nào để tính toán phân phối tần số trong python?

Phương pháp 2. Bảng tần số một chiều sử dụng pandas. .
mục lục. mảng hoặc chuỗi chứa các giá trị để nhóm theo hàng
cột. mảng hoặc chuỗi chứa các giá trị để nhóm theo các cột. .
giá trị. Một mảng các số sẽ được tổng hợp dựa trên các yếu tố

Chủ Đề