Làm cách nào để đếm số lượng văn bản trong python?

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để đếm số lượng từ và tần số từ trong cả chuỗi và tệp văn bản. Có thể đếm từ và tần số từ là một kỹ năng hữu ích. Ví dụ: biết cách thực hiện điều này có thể quan trọng trong các thuật toán học máy phân loại văn bản

Đến cuối hướng dẫn này, bạn sẽ học được

  • Cách đếm số từ trong một chuỗi
  • Cách đếm số từ trong một tệp văn bản
  • Cách tính tần số từ bằng Python

Mục lục

  • Đọc một tệp văn bản trong Python
  • Đếm số từ trong Python bằng split()
  • Đếm số từ trong Python bằng Regex
  • Tính tần số từ trong Python
  • Phần kết luận
  • Tài nguyên bổ sung

Đọc một tệp văn bản trong Python

Các quy trình đếm từ và tính toán tần số từ được hiển thị bên dưới giống nhau cho dù bạn đang xem xét một chuỗi hay toàn bộ tệp văn bản. Do đó, phần này sẽ mô tả ngắn gọn cách đọc tệp văn bản trong Python

Nếu bạn muốn có hướng dẫn chuyên sâu hơn về cách đọc tệp văn bản trong Python, hãy xem hướng dẫn này tại đây. Đây là một đoạn mã nhanh mà bạn có thể sử dụng để tải nội dung của tệp văn bản vào chuỗi Python

# Reading a Text File in Python
file_path = '/Users/datagy/Desktop/sample_text.txt'

with open(file_path) as file:
    text = file.read()

Tôi khuyến khích bạn xem hướng dẫn để tìm hiểu lý do và cách thức hoạt động của phương pháp này. Tuy nhiên, nếu bạn đang vội, chỉ cần biết rằng quy trình sẽ mở tệp, đọc nội dung của tệp rồi đóng tệp lại

Đếm số từ trong Python bằng split()

Một trong những cách đơn giản nhất để đếm số từ trong chuỗi Python là sử dụng hàm

# Splitting a string with .split()
text = 'Welcome to datagy! Here you will learn Python and data science.'
print(text.split())

# Returns: ['Welcome', 'to', 'datagy!', 'Here', 'you', 'will', 'learn', 'Python', 'and', 'data', 'science.']
5. Chức năng phân chia trông như thế này

# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)

Theo mặc định, Python sẽ coi các khoảng trắng liên tiếp là một dấu phân cách duy nhất. Điều này có nghĩa là nếu chuỗi của chúng tôi có nhiều khoảng trắng, thì chúng chỉ được coi là một dấu phân cách duy nhất. Hãy xem những gì phương thức này trả về

# Splitting a string with .split()
text = 'Welcome to datagy! Here you will learn Python and data science.'
print(text.split())

# Returns: ['Welcome', 'to', 'datagy!', 'Here', 'you', 'will', 'learn', 'Python', 'and', 'data', 'science.']

Chúng ta có thể thấy rằng phương thức hiện trả về một danh sách các mục. Vì chúng ta có thể sử dụng hàm

# Splitting a string with .split()
text = 'Welcome to datagy! Here you will learn Python and data science.'
print(text.split())

# Returns: ['Welcome', 'to', 'datagy!', 'Here', 'you', 'will', 'learn', 'Python', 'and', 'data', 'science.']
6 để đếm số lượng mục trong danh sách nên chúng ta có thể tạo số lượng từ. Hãy xem nó trông như thế nào

# Counting words with .split()
text = 'Welcome to datagy! Here you will learn Python and data science.'
print(len(text.split()))

# Returns: 11

Đếm số từ trong Python bằng Regex

Một cách đơn giản khác để đếm số từ trong chuỗi Python là sử dụng thư viện biểu thức chính quy,

# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
0. Thư viện đi kèm với một chức năng,
# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
1, cho phép bạn tìm kiếm các mẫu chuỗi khác nhau

Bởi vì chúng ta có thể sử dụng biểu thức chính quy để tìm kiếm các mẫu, trước tiên chúng ta phải xác định mẫu của mình. Trong trường hợp này, chúng tôi muốn các mẫu ký tự chữ và số được phân tách bằng khoảng trắng

Đối với điều này, chúng ta có thể sử dụng mẫu

# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
2, trong đó
# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
3 đại diện cho bất kỳ ký tự chữ và số nào và
# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
4 biểu thị một hoặc nhiều lần xuất hiện. Khi mẫu gặp khoảng trắng, chẳng hạn như khoảng trắng, mẫu sẽ dừng mẫu ở đó

Hãy xem cách chúng ta có thể sử dụng phương pháp này để tạo số từ bằng thư viện biểu thức chính quy,

# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
0

# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
0

Tính tần số từ trong Python

Để tính toán tần số từ, chúng ta có thể sử dụng lớp defaultdict hoặc lớp Counter. Tần số từ thể hiện tần suất một từ nhất định xuất hiện trong một đoạn văn bản

Sử dụng defaultdict để tính tần số từ trong Python

Hãy xem cách chúng ta có thể sử dụng defaultdict để tính toán tần số từ trong Python. Phần mở rộng defaultdict trên từ điển Python thông thường bằng cách cung cấp các chức năng hữu ích để khởi tạo các khóa bị thiếu

Do đó, chúng ta có thể lặp lại một đoạn văn bản và đếm số lần xuất hiện của mỗi từ. Hãy xem cách chúng ta có thể sử dụng nó để tạo tần số từ cho một chuỗi nhất định

# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
1

Hãy phá vỡ những gì chúng tôi đã làm ở đây

  1. Chúng tôi đã nhập cả hàm
    # Understanding the split() function
    str.split(
       sep=None     # The delimiter to split on
       maxsplit=-1  # The number of times to split
    )
    6 và thư viện
    # Understanding the split() function
    str.split(
       sep=None     # The delimiter to split on
       maxsplit=-1  # The number of times to split
    )
    0
  2. Chúng tôi đã tải một số văn bản và khởi tạo một defaultdict bằng hàm nhà máy
    # Understanding the split() function
    str.split(
       sep=None     # The delimiter to split on
       maxsplit=-1  # The number of times to split
    )
    8
  3. Sau đó, chúng tôi lặp lại từng từ trong danh sách từ và thêm một từ cho mỗi lần nó xuất hiện

Sử dụng bộ đếm để tạo tần số từ trong Python

Một cách khác để làm điều này là sử dụng lớp

# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
9. Lợi ích của phương pháp này là chúng ta thậm chí có thể dễ dàng xác định từ thường xuyên nhất. Hãy xem cách chúng ta có thể sử dụng phương pháp này

# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
6

Hãy phá vỡ những gì chúng tôi đã làm ở đây

  1. Chúng tôi đã nhập các thư viện và lớp học cần thiết
  2. Chúng tôi đã chuyển danh sách kết quả từ hàm
    # Understanding the split() function
    str.split(
       sep=None     # The delimiter to split on
       maxsplit=-1  # The number of times to split
    )
    1 vào lớp
    # Understanding the split() function
    str.split(
       sep=None     # The delimiter to split on
       maxsplit=-1  # The number of times to split
    )
    9
  3. Chúng tôi đã in kết quả của lớp này

Một trong những lợi ích của việc này là chúng ta có thể dễ dàng tìm thấy từ phổ biến nhất bằng cách sử dụng hàm

# Splitting a string with .split()
text = 'Welcome to datagy! Here you will learn Python and data science.'
print(text.split())

# Returns: ['Welcome', 'to', 'datagy!', 'Here', 'you', 'will', 'learn', 'Python', 'and', 'data', 'science.']
2. Hàm trả về một danh sách các bộ dữ liệu được sắp xếp, sắp xếp các mục từ phổ biến nhất đến ít phổ biến nhất. Do đó, chúng ta có thể chỉ cần truy cập vào chỉ mục thứ 0 để tìm từ phổ biến nhất

# Splitting a string with .split()
text = 'Welcome to datagy! Here you will learn Python and data science.'
print(text.split())

# Returns: ['Welcome', 'to', 'datagy!', 'Here', 'you', 'will', 'learn', 'Python', 'and', 'data', 'science.']
0

Phần kết luận

Trong hướng dẫn này, bạn đã học cách tạo số từ và tần số từ bằng Python. Bạn đã học được một số cách khác nhau để đếm từ bao gồm sử dụng phương pháp

# Splitting a string with .split()
text = 'Welcome to datagy! Here you will learn Python and data science.'
print(text.split())

# Returns: ['Welcome', 'to', 'datagy!', 'Here', 'you', 'will', 'learn', 'Python', 'and', 'data', 'science.']
3 và thư viện
# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
0. Sau đó, bạn đã học các cách khác nhau để tạo tần số từ bằng cách sử dụng
# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
6 và
# Understanding the split() function
str.split(
   sep=None     # The delimiter to split on
   maxsplit=-1  # The number of times to split
)
9. Sử dụng phương thức Counter, bạn có thể tìm thấy từ xuất hiện nhiều nhất trong một chuỗi

Count() có hoạt động trên chuỗi không?

Phương thức count() trả về số lần một giá trị được chỉ định xuất hiện trong chuỗi .

Làm cách nào để đếm số lần một từ xuất hiện trong một chuỗi trong Python?

Phương thức count() có thể đếm số lần xuất hiện của một chuỗi con trong một chuỗi lớn hơn. Phương thức chuỗi đếm() trong Python tìm kiếm thông qua một chuỗi. Nó trả về một giá trị bằng số lần một chuỗi con xuất hiện trong chuỗi.