Loại bỏ dấu câu trong python
answer 716 Từ góc độ hiệu quả, bạn sẽ không đánh bại
Đối với các phiên bản cao hơn của Python, sử dụng mã sau:
Nó đang thực hiện các thao tác chuỗi thô trong C bằng bảng tra cứu - sẽ không có nhiều thứ sẽ đánh bại điều đó ngoài việc viết mã C của riêng bạn. Nếu tốc độ không phải là một mối lo, thì một lựa chọn khác là:
Tốc độ này nhanh hơn s.replace với mỗi char, nhưng sẽ không thực hiện cũng như các cách tiếp cận python không thuần túy như regexes hoặc string.translate, như bạn có thể thấy trong các khoảng thời gian dưới đây. Đối với loại vấn đề này, làm nó ở mức độ thấp nhất có thể sẽ được đền đáp. Mã thời gian:
Điều này cho kết quả như sau:
716 hữu ích 5 bình luận chia sẻ answer 103 Biểu thức thông thường là đủ đơn giản, nếu bạn biết chúng.
Trong đoạn mã trên, chúng tôi đang thay thế (re.sub) tất
cả NON [ký tự chữ và số (\ w) và dấu cách (\ s)] bằng chuỗi trống. 103 hữu ích 5 bình luận chia sẻ answer 58 Để thuận tiện cho việc sử dụng, tôi tổng hợp ghi chú về dấu chấm câu từ một chuỗi trong cả Python 2 và Python 3. Vui lòng tham khảo các câu trả lời khác để biết mô tả chi tiết. Con trăn 2
Con trăn 3
58 hữu ích 2 bình luận chia sẻ answer 50
50 hữu ích 5 bình luận chia sẻ answer 25 Tôi thường sử dụng một cái gì đó như thế này:
25 hữu ích 2 bình luận chia sẻ answer 22
22 hữu ích 1 bình luận chia sẻ answer 20 Không nhất thiết phải đơn giản, nhưng một cách khác, nếu bạn quen thuộc hơn với gia đình re.
20 hữu ích 3 bình luận chia sẻ answer 12 Đối với các giá trị Python 3 Để xóa dấu chấm (một số?) Sau đó, sử dụng:
Các
Để xóa tất cả dấu câu, không chỉ dấu chấm câu ASCII, bảng của bạn cần lớn hơn một chút; xem câu trả lời của JF Sebastian (phiên bản Python 3):
12 hữu ích 4 bình luận chia sẻ answer 11
Cá nhân, tôi tin rằng đây là cách tốt nhất để xóa dấu câu khỏi chuỗi trong Python vì:
Điều này sử dụng các thuộc tính ký tự Unicode, mà bạn có thể đọc thêm về Wikipedia . 11 hữu ích 0 bình luận chia sẻ answer 6 Đây có thể không phải là giải pháp tốt nhất tuy nhiên đây là cách tôi đã làm.
6 hữu ích 0 bình luận chia sẻ answer 6 Đây là một chức năng tôi đã viết. Nó không hiệu quả lắm, nhưng nó đơn giản và bạn có thể thêm hoặc xóa bất kỳ dấu câu nào bạn muốn:
6 hữu ích 0 bình luận chia sẻ answer 6 Đây là một lớp lót cho Python 3.5:
6 hữu ích 0 bình luận chia sẻ answer 6 Tôi chưa thấy câu trả lời này. Chỉ cần sử dụng một regex; nó loại bỏ tất cả các ký tự bên cạnh các ký tự từ (
6 hữu ích 3 bình luận chia sẻ answer 4 Đây là một giải pháp không có regex.
4 hữu ích 0 bình luận chia sẻ answer 4 Cũng giống như một bản cập nhật, tôi viết lại ví dụ @Brian trong Python 3 và thực hiện các thay đổi cho nó để di chuyển bước biên dịch regex bên trong hàm. Tôi nghĩ ở đây là thời gian từng bước cần thiết để làm cho
chức năng hoạt động. Có lẽ bạn đang sử dụng điện toán phân tán và không thể có đối tượng regex được chia sẻ giữa các công nhân của bạn và cần phải có
đấu với
Thêm vào đó tôi đã thêm một phương thức khác để sử dụng tập hợp, trong đó tôi tận dụng hàm giao nhau để giảm số lần lặp. Đây là mã hoàn chỉnh:
Đây là kết quả của tôi:
4 hữu ích 0 bình luận chia sẻ answer 3
3 hữu ích 1 bình luận chia sẻ answer 3
3 hữu ích 0 bình luận chia sẻ answer 2 Một lớp lót có thể hữu ích trong các trường hợp không nghiêm ngặt:
2 hữu ích 0 bình luận chia sẻ answer 1 Tìm kiếm và thay thế bằng cách sử dụng các hàm regex, như được thấy ở đây. . Nếu bạn phải liên tục thực hiện thao tác, bạn có thể giữ một bản sao được biên dịch của mẫu biểu thức chính quy (dấu chấm câu của bạn) xung quanh, điều này sẽ tăng tốc mọi thứ lên một chút. 1 hữu ích 3 bình luận chia sẻ answer 1
1 hữu ích 0 bình luận chia sẻ answer 1
1 hữu ích 0 bình luận chia sẻ answer 1 Xóa các từ dừng khỏi tệp văn bản bằng Python
1 hữu ích 0 bình luận chia sẻ answer 1 Đây là cách thay đổi tài liệu của chúng tôi thành chữ hoa hoặc chữ thường.
1 hữu ích 0 bình luận chia sẻ |