Hướng dẫn python count words in list - python đếm từ trong danh sách

Bạn có thể dùng

from collections import Counter

Nó hỗ trợ Python 2.7 , Đọc thêm thông tin tại đây

1.

>>>c = Counter('abracadabra')
>>>c.most_common(3)
[('a', 5), ('r', 2), ('b', 2)]

Sử dụng dict

>>>d={1:'one', 2:'one', 3:'two'}
>>>c = Counter(d.values())
[('one', 2), ('two', 1)]

Nhưng, bạn phải đọc tập tin trước và chuyển đổi thành Dict.

2. Đó là ví dụ về tài liệu Python, sử dụng RE và truy cập

# Find the ten most common words in Hamlet
>>> import re
>>> words = re.findall(r'\w+', open('hamlet.txt').read().lower())
>>> Counter(words).most_common(10)
[('the', 1143), ('and', 966), ('to', 762), ('of', 669), ('i', 631),
 ('you', 554),  ('a', 546), ('my', 514), ('hamlet', 471), ('in', 451)]

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 các từ và tần số từ là một kỹ năng hữu ích. Ví dụ, biết cách làm đ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.you’ll learn how to use Python to count the number of words and word frequencies in both a string and a text file. Being able to count words and word frequencies is a useful skill. For example, knowing how to do this can be important in text classification machine learning algorithms.

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

  • Cách đếm số lượng từ trong chuỗi
  • Cách đếm số lượng từ trong tệp văn bản
  • Cách tính tần số từ bằng cách sử dụng python

  • Đọc một tệp văn bản trong Python
  • Đếm số lượng từ trong python bằng cách sử dụng split ()
  • Đếm số lượng từ trong python bằng regex
  • Tính toán tần số từ trong Python
  • Sự kết luận
  • Tài nguyên bổ sung

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

Đếm số lượng từ trong python bằng cách sử dụng split ()

Đếm số lượng từ trong python bằng regex

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

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

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

Đếm số lượng từ trong python bằng cách sử dụng split ()

Đếm số lượng từ trong python bằng regex

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

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

# 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.']

Các quy trình để đếm các từ và tính toán các tần số từ được hiển thị bên dưới là 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. Bởi vì điều này, phần này sẽ mô tả ngắn gọn cách đọc một tệp văn bản trong Python.

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

# Returns: 11

Đếm số lượng từ trong python bằng regex

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

Các quy trình để đếm các từ và tính toán các tần số từ được hiển thị bên dưới là 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. Bởi vì điều này, phần này sẽ mô tả ngắn gọn cách đọc một tệp văn bản trong Python.

Nếu bạn muốn có một 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 ở đây. Dưới đâ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:

Tôi khuyến khích bạn kiểm tra hướng dẫn để tìm hiểu lý do và cách tiếp cận này hoạt động. Tuy nhiên, nếu bạn vội vàng, chỉ cần biết rằng quá trình mở tệp, đọc nội dung của nó và sau đó đóng lại tệp.

# Counting words with regular expressions
import re
text = 'Welcome to datagy! Here you will learn Python and data science.'
print(len(re.findall(r'\w+', text)))

# Returns: 11

Tính toán 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 truy cập. Tần số từ đại diện cho 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 toán 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. DefaultDICT mở rộng từ 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.

Bởi vì điều này, chúng ta có thể lặp qua một đoạn văn bản và đếm các sự 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 đã cho:

# Creating word frequencies with defaultdict
from collections import defaultdict
import re

text = 'welcome to datagy! datagy will teach data. data is fun. data data data!'

counts = defaultdict(int)
for word in re.findall('\w+', text):
    counts[word] += 1

print(counts)

# Returns:
# defaultdict(, {'welcome': 1, 'to': 1, 'datagy': 2, 'will': 1, 'teach': 1, 'data': 5, 'is': 1, 'fun': 1})

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

  1. Chúng tôi đã nhập cả chức năng
    >>>d={1:'one', 2:'one', 3:'two'}
    >>>c = Counter(d.values())
    [('one', 2), ('two', 1)]
    
    0 và thư viện
    >>>c = Counter('abracadabra')
    >>>c.most_common(3)
    [('a', 5), ('r', 2), ('b', 2)]
    
    4
  2. Chúng tôi đã tải một số văn bản và khởi tạo một mặc định bằng cách sử dụng chức năng nhà máy
    >>>d={1:'one', 2:'one', 3:'two'}
    >>>c = Counter(d.values())
    [('one', 2), ('two', 1)]
    
    2
  3. Sau đó chúng tôi đã lặp qua từng từ trong danh sách từ và thêm một từ cho mỗi lần nó xảy ra

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

>>>d={1:'one', 2:'one', 3:'two'}
>>>c = Counter(d.values())
[('one', 2), ('two', 1)]
3. 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:

>>>c = Counter('abracadabra')
>>>c.most_common(3)
[('a', 5), ('r', 2), ('b', 2)]
0

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

  1. Chúng tôi đã nhập cả chức năng
    >>>d={1:'one', 2:'one', 3:'two'}
    >>>c = Counter(d.values())
    [('one', 2), ('two', 1)]
    
    0 và thư viện
    >>>c = Counter('abracadabra')
    >>>c.most_common(3)
    [('a', 5), ('r', 2), ('b', 2)]
    
    4
  2. Chúng tôi đã tải một số văn bản và khởi tạo một mặc định bằng cách sử dụng chức năng nhà máy
    >>>d={1:'one', 2:'one', 3:'two'}
    >>>c = Counter(d.values())
    [('one', 2), ('two', 1)]
    
    2
  3. Sau đó chúng tôi đã lặp qua từng từ trong danh sách từ và thêm một từ cho mỗi lần nó xảy ra

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

>>>c = Counter('abracadabra')
>>>c.most_common(3)
[('a', 5), ('r', 2), ('b', 2)]
1

Một cách khác để làm điều này là sử dụng lớp >>>d={1:'one', 2:'one', 3:'two'} >>>c = Counter(d.values()) [('one', 2), ('two', 1)] 3. 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:

Chúng tôi đã nhập các thư viện và lớp học bắt buộc của chúng tôi

Chúng tôi đã chuyển danh sách kết quả từ hàm >>>c = Counter('abracadabra') >>>c.most_common(3) [('a', 5), ('r', 2), ('b', 2)] 5 vào lớp >>>d={1:'one', 2:'one', 3:'two'} >>>c = Counter(d.values()) [('one', 2), ('two', 1)] 3

Chúng tôi đã in kết quả của lớp này

  • Một trong những đặc quyền của điều 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
    >>>d={1:'one', 2:'one', 3:'two'}
    >>>c = Counter(d.values())
    [('one', 2), ('two', 1)]
    
    6. Hàm trả về một danh sách các bộ dữ liệu được sắp xếp, đặt hàng các mục từ phổ biến nhất đến ít nhất. Bởi vì điều này, chúng ta chỉ có thể truy cập chỉ mục 0 để tìm từ phổ biến nhất:
  • Sự kết luận
  • Trong hướng dẫn này, bạn đã học cách tạo số lượng từ và tần số từ bằng cách sử dụng python. Bạn đã học được một số cách khác nhau để đếm các từ bao gồm sử dụng phương thức
    >>>d={1:'one', 2:'one', 3:'two'}
    >>>c = Counter(d.values())
    [('one', 2), ('two', 1)]
    
    7 và thư viện
    >>>c = Counter('abracadabra')
    >>>c.most_common(3)
    [('a', 5), ('r', 2), ('b', 2)]
    
    4. 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
    >>>d={1:'one', 2:'one', 3:'two'}
    >>>c = Counter(d.values())
    [('one', 2), ('two', 1)]
    
    0 và
    >>>d={1:'one', 2:'one', 3:'two'}
    >>>c = Counter(d.values())
    [('one', 2), ('two', 1)]
    
    3. Sử dụng phương thức bộ đếm, bạn có thể tìm thấy từ thường xuyên nhất trong một chuỗi.
  • Tài nguyên bổ sung