Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

Tôi đang cố gắng tìm số lần xuất hiện của một từ trong một chuỗi.

word = "dog"
str1 = "the dogs barked"

Tôi đã sử dụng những điều sau đây để đếm các lần xuất hiện:

count = str1.count(word)

Vấn đề là tôi muốn một trận đấu chính xác. Vì vậy, số lượng cho câu này sẽ là 0. Điều đó có thể?

Đã hỏi ngày 24 tháng 6 năm 2013 lúc 6:07Jun 24, 2013 at 6:07

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

lost9123193lost9123193lost9123193

9.68423 Huy hiệu vàng65 Huy hiệu bạc107 Huy hiệu Đồng23 gold badges65 silver badges107 bronze badges

Nếu bạn đang có hiệu quả:

import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))

Điều này không cần phải tạo bất kỳ danh sách trung gian nào (không giống như

import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
1) và do đó sẽ hoạt động hiệu quả cho các giá trị
import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
2 lớn.

Nó cũng có lợi ích của việc làm việc chính xác với dấu câu - nó sẽ trả về đúng

import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
3 là số lượng cho cụm từ
import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
4 (trong khi một
import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
1 không tranh luận sẽ không). Nó sử dụng cờ regex
import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
6, phù hợp với các ranh giới từ (chuyển đổi giữa
import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
7 a.k.a
import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
8 và bất cứ điều gì khác).

Nếu bạn cần lo lắng về các ngôn ngữ ngoài tập ký tự ASCII, bạn có thể cần điều chỉnh regex để khớp đúng các ký tự không từ trong các ngôn ngữ đó, nhưng đối với nhiều ứng dụng, thì đây sẽ là một quá trình quá mức và trong nhiều trường hợp khác đặt unicode và /hoặc cờ địa phương cho regex sẽ đủ.

Đã trả lời ngày 24 tháng 6 năm 2013 lúc 6:09Jun 24, 2013 at 6:09

5

Bạn có thể sử dụng

import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
9 để chuyển đổi câu thành danh sách các từ:

a = 'the dogs barked'.split()

Điều này sẽ tạo danh sách:

['the', 'dogs', 'barked']

Sau đó, bạn có thể đếm số lần xuất hiện chính xác bằng cách sử dụng

a = 'the dogs barked'.split()
0:

a.count('dog')  # 0
a.count('dogs') # 1

Nếu nó cần phải làm việc với dấu câu, bạn có thể sử dụng các biểu thức thông thường. Ví dụ:

import re
a = re.split(r'\W', 'the dogs barked.')
a.count('dogs') # 1

Đã trả lời ngày 24 tháng 6 năm 2013 lúc 6:10Jun 24, 2013 at 6:10

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

GRCGRCgrc

22.2k4 Huy hiệu vàng39 Huy hiệu bạc63 Huy hiệu Đồng4 gold badges39 silver badges63 bronze badges

5

Sử dụng danh sách hiểu biết:

>>> word = "dog"
>>> str1 = "the dogs barked"
>>> sum(i == word for word in str1.split())
0

>>> word = 'dog'
>>> str1 = 'the dog barked'
>>> sum(i == word for word in str1.split())
1

import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
1 Trả về một danh sách tất cả các từ trong một câu. Sau đó, chúng tôi sử dụng một danh sách hiểu để đếm số lần từ xuất hiện trong một câu.

Đã trả lời ngày 24 tháng 6 năm 2013 lúc 6:09Jun 24, 2013 at 6:09

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

Bạn có thể sử dụng

import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
9 để chuyển đổi câu thành danh sách các từ:TerryA

Điều này sẽ tạo danh sách:11 gold badges117 silver badges139 bronze badges

14

import re

word = "dog"
str = "the dogs barked"
print len(re.findall(word, str))

Sau đó, bạn có thể đếm số lần xuất hiện chính xác bằng cách sử dụng

a = 'the dogs barked'.split()
0:Jun 24, 2013 at 9:58

Nếu nó cần phải làm việc với dấu câu, bạn có thể sử dụng các biểu thức thông thường. Ví dụ:Aaron

Đã trả lời ngày 24 tháng 6 năm 2013 lúc 6:101 bronze badge

1

GRCGRC

words = str1.split()

22.2k4 Huy hiệu vàng39 Huy hiệu bạc63 Huy hiệu Đồng

Sử dụng danh sách hiểu biết:

import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
1 Trả về một danh sách tất cả các từ trong một câu. Sau đó, chúng tôi sử dụng một danh sách hiểu để đếm số lần từ xuất hiện trong một câu.

Terryaterrya

count = str1.count(word)
0

57.3K11 Huy hiệu vàng117 Huy hiệu bạc139 Huy hiệu đồngJun 24, 2013 at 6:12

Đã trả lời ngày 24 tháng 6 năm 2013 lúc 9:58Lennart Regebro

Aaronaaron41 gold badges221 silver badges251 bronze badges

2

count = str1.count(word)
1

Huy hiệu 411 Đồng

Bạn cần chia câu thành từ. Cho bạn ví dụ, bạn có thể làm điều đó chỉ vớiAug 2, 2018 at 10:37

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

Nhưng để sử dụng từ thực sự, bạn cần một cái gì đó nâng cao hơn cũng xử lý dấu câu. Đối với hầu hết các ngôn ngữ phương Tây, bạn có thể thoát khỏi việc thay thế tất cả các dấu câu bằng không gian trước khi thực hiện

a = 'the dogs barked'.split()
2.RegularExpression then you can do this neat trick.

count = str1.count(word)
2

Điều này cũng sẽ làm việc cho tiếng Anh trong các trường hợp đơn giản, nhưng lưu ý rằng "Tôi" sẽ được chia thành hai từ: "I" và "M", và thực tế nó sẽ được chia thành "I" và "AM". Nhưng điều này có thể là quá mức cần thiết cho ứng dụng này.May 18, 2019 at 19:21

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

Đối với các trường hợp khác như ngôn ngữ châu Á hoặc sử dụng tiếng Anh trong thế giới thực thực tế, bạn có thể muốn sử dụng một thư viện thực hiện từ chia cho bạn.Haseeb Mir

Sau đó, bạn có một danh sách các từ và bạn có thể làm1 gold badge13 silver badges21 bronze badges

Đã trả lời ngày 24 tháng 6 năm 2013 lúc 6:12

count = str1.count(word)
3

Lennart Regebrolennart Regebro

162K41 Huy hiệu vàng221 Huy hiệu bạc251 Huy hiệu Đồng

Tạo hàm lấy hai đầu vào là câu của văn bản và từ. Chia văn bản của một câu thành phân đoạn của các từ trong danh sách, sau đó kiểm tra xem từ được tính có tồn tại trong các từ được phân đoạn hay không và đếm sự xuất hiện là sự trở lại của hàm.

Đã trả lời ngày 2 tháng 8 năm 2018 lúc 10:3716 gold badges50 silver badges57 bronze badges

Nếu bạn không cần điều tiết thì bạn có thể thực hiện thủ thuật gọn gàng này.Aug 5, 2015 at 6:34

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

1

Đã trả lời ngày 18 tháng 5 năm 2019 lúc 19:21

count = str1.count(word)
4

Haseeb Mirhaseeb Mir

count = str1.count(word)
5

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

8611 Huy hiệu vàng13 Huy hiệu bạc21 Huy hiệu đồng

Dưới đây là một ví dụ đơn giản trong đó chúng ta có thể thay thế từ mong muốn bằng từ mới và cũng cho số lần xuất hiện mong muốn:3 gold badges27 silver badges50 bronze badges

đầu ra sẽ là:

a = 'the dogs barked'.split()
3Mar 29, 2017 at 1:10

Tham số đầu tiên trong hàm là search_string. Cái thứ hai là new_string sẽ thay thế search_string của bạn. Thứ ba và cuối cùng là số lần xuất hiện.

count = str1.count(word)
6

KaraJul 15, 2017 at 19:51

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

6.02416 Huy hiệu vàng 50 Huy hiệu bạc57 Huy hiệu đồngroger

Đã trả lời ngày 5 tháng 8 năm 2015 lúc 6:341 silver badge5 bronze badges

Chúng ta hãy xem xét ví dụ

a = 'the dogs barked'.split()
4. Nếu bạn muốn đếm không có số lượng khác biệt "suvo" và "suvojit" thì bạn sử dụng phương thức đếm () ... đếm riêng biệt i.e) bạn không đếm suvojit cho suvo .. chỉ đếm "suvo" cô đơn.

count = str1.count(word)
7

Sau đó, tìm số lượng Suvo cô đơn mà bạn phải phủ nhận từ số lượng Suvojit.Nov 27, 2019 at 8:07

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

NeilwgetDJ

13.9k3 Huy hiệu vàng27 Huy hiệu bạc 50 Huy hiệu Đồng1 gold badge8 silver badges11 bronze badges

Đã trả lời ngày 29 tháng 3 năm 2017 lúc 1:10

Đây sẽ là giải pháp của tôi với sự giúp đỡ của các bình luận:

Đã trả lời ngày 15 tháng 7 năm 2017 lúc 19:51Sep 10, 2020 at 10:34

Roger rogerRutuja

Bạc bạc 2012 Huy hiệu đồng2 silver badges3 bronze badges

Tôi mới bắt đầu học mã hóa nói chung và tôi không biết bất kỳ thư viện nào như vậy.

count = str1.count(word)
9

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

Dharman ♦

28.3K21 Huy hiệu vàng75 Huy hiệu bạc127 Huy hiệu đồng21 gold badges75 silver badges127 bronze badges

Đã trả lời ngày 24 tháng 6 năm 2021 lúc 16:51Jun 24, 2021 at 16:51

Hướng dẫn python count specific words in string - python đếm các từ cụ thể trong chuỗi

Một cách khác để làm điều này là bằng cách mã hóa chuỗi (chia thành từ)tokenizing string (breaking into words)

Sử dụng quầy từ mô -đun thu thập thư viện tiêu chuẩn PythonCounter from collection module of Python Standard Library

import re
count = sum(1 for _ in re.finditer(r'\b%s\b' % re.escape(word), input_string))
0

Đã trả lời ngày 5 tháng 12 năm 2021 lúc 8:07Dec 5, 2021 at 8:07

Tarun Kumartarun KumarTarun Kumar

5511 Huy hiệu vàng4 Huy hiệu bạc14 Huy hiệu đồng1 gold badge4 silver badges14 bronze badges