Computer >> Máy Tính >  >> Lập trình >> Python

Tìm tần suất xuất hiện của mỗi từ trong một chuỗi bằng Python

Là một phần của phân tích văn bản, chúng ta thường xuyên cần đếm các từ và gán trọng số cho chúng để xử lý trong các thuật toán khác nhau, vì vậy trong bài viết này, chúng ta sẽ xem cách chúng ta có thể tìm tần suất xuất hiện của mỗi từ trong một câu nhất định. Chúng tôi có thể làm điều đó với ba cách tiếp cận như được hiển thị bên dưới.

Sử dụng Bộ đếm

Chúng ta có thể sử dụng mô-đun Counter () từ bộ sưu tập để lấy tần số của các từ. Ở đây, trước tiên chúng ta áp dụng split () để tạo các từ từ dòng và sau đó áp dụng most_common ().

Ví dụ

from collections import Counter
line_text = "Learn and practice and learn to practice"
freq = Counter(line_text.split()).most_common()
print(freq)

Chạy đoạn mã trên cho chúng ta kết quả sau -

[('and', 2), ('practice', 2), ('Learn', 1), ('learn', 1), ('to', 1)]

Sử dụng FreqDist ()

Bộ công cụ ngôn ngữ tự nhiên cung cấp chức năng FreqDist cho biết số lượng từ trong chuỗi cũng như số lượng từ riêng biệt. Việc áp dụng most_common () cho chúng ta tần suất xuất hiện của mỗi từ.

Ví dụ

from nltk import FreqDist
text = "Learn and practice and learn to practice"
words = text.split()
fdist1 = FreqDist(words)
print(fdist1)
print(fdist1.most_common())

Chạy đoạn mã trên cho chúng ta kết quả sau -

<FreqDist with 5 samples and 7 outcomes>
[('and', 2), ('practice', 2), ('Learn', 1), ('learn', 1), ('to', 1)]

Sử dụng Từ điển

Trong cách tiếp cận này, chúng tôi lưu trữ các từ của dòng trong một từ điển. Sau đó, chúng tôi áp dụng count () để có được tần suất của mỗi từ. Sau đó, nén các từ với các giá trị tần suất từ. Kết quả cuối cùng được hiển thị dưới dạng từ điển.

Ví dụ

text = "Learn and practice and learn to practice"
words = []
words = text.split()
wfreq=[words.count(w) for w in words]
print(dict(zip(words,wfreq)))

Chạy đoạn mã trên cho chúng ta kết quả sau:

{'Learn': 1, 'and': 2, 'practice': 2, 'learn': 1, 'to': 1}