การประมวลผลข้อความกลายเป็นสาขาสำคัญใน machine learning และ AI Python รองรับสาขานี้ด้วยเครื่องมือและไลบรารีมากมาย ในบทความนี้เราจะดูวิธีหาจำนวนครั้งที่เกิดขึ้นของแต่ละตัวอักษรในสตริงที่กำหนด
ด้วย Counter
เมธอด Counter นับจำนวนครั้งที่องค์ประกอบเกิดขึ้นใน iterable ดังนั้นจึงใช้ได้โดยตรงโดยส่งสตริงที่ต้องการเข้าไป
ตัวอย่าง
from collections import Counter
# Given string
strA = "timeofeffort"
print("Given String: ", strA)
# Using counter
res = {}
for keys in strA:
res[keys] = res.get(keys, 0) + 1
# Result
print("Frequency of each character :\n ", res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given String: timeofeffort
Frequency of each character : {'t': 2, 'i': 1, 'm': 1, 'e': 2, 'o': 2, 'f': 3, 'r': 1}
ด้วย get()
เราสามารถจัดการสตริงเป็นพจนานุกรมและนับคีย์สำหรับแต่ละตัวอักษรด้วย get() ในลูป for
ตัวอย่าง
# Given string
strA = "timeofeffort"
print("Given String: ", strA)
# Using counter
res = {}
for keys in strA:
res[keys] = res.get(keys, 0) + 1
# Result
print("Frequency of each character :\n ", res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given String: timeofeffort
Frequency of each character : {'t': 2, 'i': 1, 'm': 1, 'e': 2, 'o': 2, 'f': 3, 'r': 1}
ด้วย set
เซตใน Python เก็บองค์ประกอบที่ไม่ซ้ำกัน ดังนั้นเราสามารถใช้ได้อย่างชาญฉลาดโดยนับจำนวนครั้งที่ตัวอักษรเดียวกันถูกพบซ้ำๆ เมื่อวนลูปผ่านสตริงเป็น iterable
ตัวอย่าง
# Given string
strA = "timeofeffort"
print("Given String: ", strA)
# Using counter
res = {}
res = {n: strA.count(n) for n in set(strA)}
# Result
print("Frequency of each character :\n ", res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given String: timeofeffort
Frequency of each character : {'f': 3, 'r': 1, 'm': 1, 'o': 2, 'i': 1, 't': 2, 'e': 2}