Python logic mờ

Trong một thế giới ngày càng phụ thuộc nhiều vào khả năng truy cập thông tin nhanh chóng, hai tiêu chí thiết kế ứng dụng đã trở thành chìa khóa
  • Làm sạch dữ liệu, để đảm bảo dữ liệu được cung cấp là chính xác và
  • Trải nghiệm người dùng (UX) giải thích cho những sai lầm tiềm ẩn do người dùng thực hiện

Loại UX này có thể phức tạp để triển khai. Chẳng hạn, con người có thể dễ dàng nhận ra trong nháy mắt rằng ai đó đang gõ “New York City” có khả năng là đang gõ “New York City”. Nhưng rút ra cùng một kết luận theo chương trình thì khó khăn hơn nhiều

Một câu trả lời cho thực tế của dữ liệu không hoàn hảo và đầu vào của người dùng bị nhập sai là triển khai giải pháp khớp mờ có thể phát hiện lỗi chính tả và cách viết thay thế. Khớp mờ là một kỹ thuật khớp chuỗi gần đúng, cho phép các ứng dụng xác định theo chương trình xác suất mà hai chuỗi khác nhau thực sự đề cập đến cùng một thứ.  

Bài blog này sẽ

  • Giới thiệu với bạn về kết hợp mờ
  • Cung cấp một ví dụ thực tế về cách triển khai khớp mờ trong Python bằng thư viện FuzzyWuzzy

Bắt đầu. Cài đặt công cụ so khớp mờ với môi trường Python sẵn sàng sử dụng này

Để làm theo mã trong hướng dẫn đối sánh mờ Python này, bạn cần cài đặt phiên bản Python mới nhất, cùng với tất cả các gói được sử dụng trong bài đăng này. Cách nhanh nhất để thiết lập và chạy là cài đặt thời gian chạy Kết hợp mờ dành cho Windows, Mac hoặc Linux, chứa phiên bản Python và tất cả các gói .

Python logic mờ

Để tải xuống môi trường Python phát hiện lừa đảo sẵn sàng sử dụng, bạn cần phải tạo tài khoản Nền tảng ActiveState. Chỉ cần sử dụng thông tin đăng nhập GitHub hoặc địa chỉ email của bạn để đăng ký. Việc đăng ký thật dễ dàng và nó mở ra nhiều lợi ích của Nền tảng ActiveState cho bạn.

Python logic mờ

Đối với người dùng Windows , hãy chạy phần sau tại dấu nhắc CMD để tự động tải xuống và cài đặt CLI của chúng tôi, Công cụ trạng thái cùng với thời gian chạy Mô phỏng COVID vào môi trường ảo.

powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://platform.activestate.com/dl/cli/install.ps1'))) -activate-default Pizza-Team/Fuzzy-Matching"

Đối với người dùng Mac hoặc Linux , hãy chạy phần sau để tự động tải xuống và cài đặt CLI của chúng tôi, Công cụ trạng thái cùng với thời gian chạy Mô phỏng COVID vào môi trường ảo.

sh <(curl -q https://platform.activestate.com/dl/cli/install.sh) --activate-default Pizza-Team/Fuzzy-Matching

Giới thiệu về kết hợp mờ

Như đã đề cập ở trên, khớp mờ là một kỹ thuật khớp chuỗi gần đúng để khớp dữ liệu tương tự theo chương trình. Thay vì chỉ nhìn vào sự tương đương giữa hai chuỗi để xác định xem chúng có giống nhau hay không, các thuật toán so khớp mờ hoạt động để định lượng chính xác mức độ gần của hai chuỗi với nhau. Khi làm như vậy, họ có thể giúp xác định khả năng hai chuỗi khác nhau thực sự có ý nghĩa tương đương. Điều này thường được thực hiện bằng cách kết hợp chỉnh sửa khoảng cách.

Chỉnh sửa khoảng cách là một số liệu chuỗi. Số liệu này cung cấp một cách để phát hiện sự gần gũi của hai chuỗi với nhau bằng cách xác định số lượng thay đổi tối thiểu phải xảy ra để biến một chuỗi thành chuỗi kia. Đưa ra ví dụ ở phần đầu của phần này, “Thành phố New York” so với. “New Yolk City”, người ta có thể dễ dàng nhận ra rằng chỉ cần chuyển một chữ cái trong chuỗi thứ hai (chữ “l” thành chữ “r”) sẽ dẫn đến hai chuỗi này giống nhau. Có nghĩa là khoảng cách chỉnh sửa tương đối thấp và hai chuỗi này rất gần nhau. Nói cách khác, có khả năng cao là các chuỗi này giống nhau

Kết hợp mờ có nhiều trường hợp sử dụng, nhiều trường hợp trong số đó chúng ta gặp phải thường xuyên. Ví dụ: nhập “New Yolk” vào ứng dụng GPS và nó có thể sẽ đưa ra gợi ý “New York. ” Hơi sai chính tả cụm từ tìm kiếm trong công cụ tìm kiếm yêu thích của bạn và bạn có thể sẽ được cung cấp kết quả cho cụm từ mà bạn thực sự định thực hiện . Nói cách khác, việc triển khai tận dụng một số dạng kết hợp mờ ở xung quanh chúng ta và nhiều lần chúng có nghĩa là sự khác biệt giữa trải nghiệm người dùng tích cực và tiêu cực.

Bây giờ, hãy xem triển khai khớp mờ trong Python, sử dụng thư viện mã nguồn mở FuzzyWuzzy

Kết hợp mờ với Python FuzzyWuzzy

FuzzyWuzzy, một thư viện so khớp chuỗi mã nguồn mở dành cho các nhà phát triển Python, được phát triển lần đầu tiên bởi SeatGeek để . FuzzyWuzzy đánh giá khoảng cách Levenshtein (một phiên bản của khoảng cách chỉnh sửa tính đến việc chèn, xóa và thay thế ký tự) để thực hiện điều này. Ngoài ra, FuzzyWuzzy còn chứa chức năng đánh giá độ tương tự của chuỗi trong các trường hợp khác mà chúng tôi sẽ đề cập bên dưới.

Đánh giá độ tương tự của chuỗi với fuzz. hàm tỷ lệ

Để đánh giá hai chuỗi khác nhau bằng khoảng cách chỉnh sửa, chúng tôi sẽ sử dụng fuzz. ratio chức năng trong mô-đun fuzz của FuzzyWuzzy. Hàm này trả về điểm tương đồng dưới dạng giá trị từ 0 đến 100. Giá trị càng gần 100 thì hai chuỗi càng giống nhau. Ví dụ: hãy so sánh hai chuỗi giống hệt nhau.

from fuzzywuzzy import fuzz
value = fuzz.ratio('New York', 'New York')
print('value: ' + str(value))

Thực thi tập lệnh này dẫn đến đầu ra sau

value: 100

Bây giờ, chúng ta hãy xem 'New Yolk' so với. 'New York' và xem hàm 'tỷ lệ' trả về kết quả gì

value = fuzz.ratio('New Yolk', 'New York')

print('value: ' + str(value))

Và đây là đầu ra

value: 88

Chỉ với một sự khác biệt trong các chuỗi tương đối ngắn của “New York” và “New Yolk”, giá trị được trả về giảm từ 100 xuống 88. Tuy nhiên, giá trị này chỉ ra rằng hai chuỗi rất giống nhau. Để kiểm tra lần cuối, hãy thay thế 'New Yolk' bằng 'New Zealand'. Và so sánh chuỗi này với 'New York'

value = fuzz.ratio('New Zealand', 'New York')

print('value: ' + str(value))

Điều này dẫn đến đầu ra sau

value: 42

Giá trị thấp hơn này cho thấy sự khác biệt đáng kể hơn giữa hai chuỗi

Như đã nói, trong khi fuzz. tỷ lệ hoạt động tốt trong nhiều trường hợp, đây có thể không phải là tùy chọn tốt nhất để đánh giá sự giống nhau giữa các chuỗi khớp một phần. Đối với điều này, FuzzyWuzzy chứa hàm partial_ratio có thể phù hợp hơn.

Bỏ qua thứ tự mã thông báo trong đánh giá của bạn

Bây giờ, hãy xem xét tình huống trong đó hai chuỗi được cung cấp theo thứ tự khác nhau. Với FuzzyWuzzy, những điều này có thể được đánh giá để trả về một điểm tương đồng hữu ích bằng cách sử dụng hàm token_sort_ratio.

________số 8

Đoạn mã trên trả về giá trị 100. Về cơ bản, hai chuỗi được mã hóa, sắp xếp lại theo cùng một kiểu và được đánh giá bằng cách sử dụng fuzz. hàm tỷ lệ. Điều này có thể hữu ích trong nhiều trường hợp, bao gồm.

  • Tìm kiếm một trích dẫn nổi tiếng đã vô tình gõ sai thứ tự
  • Trường hợp của SeatGeek, người đang cố gắng tổng hợp vé được cung cấp bởi nhiều nhà cung cấp có mô tả về sự kiện thể thao rất khác nhau.

Xem xét đoạn mã sau đây cũng trả về giá trị 100

value = fuzz.token_sort_ratio('Chiefs vs. Raiders', 'Raiders vs. Chiefs')

kết thúc

Chức năng trên chỉ là một phần nhỏ của những gì FuzzyWuzzy cung cấp. Để đánh giá thêm chức năng của nó, hãy xem README và cho nó cơ hội để xem nó có thể giúp tăng cường triển khai đối sánh mờ của bạn như thế nào.

Mặc dù đối sánh mờ không phải là một ngành khoa học hoàn hảo, nhưng nó có thể cung cấp cho các nhà phát triển ứng dụng một điểm khởi đầu để làm sạch các bộ dữ liệu lộn xộn và phát triển trải nghiệm người dùng linh hoạt, linh hoạt và trực quan hơn. Việc tinh chỉnh triển khai đối sánh mờ hầu như luôn đòi hỏi một số suy nghĩ nghiêm túc, cũng như sự kết hợp của các kỹ thuật đối sánh mờ khác nhau. Tuy nhiên, đối với bất kỳ ứng dụng nào phải đánh giá đầu vào văn bản của người dùng hoặc đối với một tập dữ liệu trong đó các mục nhập trùng lặp là một vấn đề luôn hiện hữu, thì nước trái cây chắc chắn rất đáng để thử.

Python logic mờ là gì?

Logic mờ là một dạng logic đa trị xử lý suy luận gần đúng thay vì cố định và chính xác . Các giá trị logic mờ nằm ​​trong khoảng từ 1 đến 0. tôi. e giá trị có thể từ hoàn toàn đúng đến hoàn toàn sai.

Logic mờ với ví dụ là gì?

Nói một cách đơn giản hơn, một chỉ số logic Mờ có thể là 0, 1 hoặc ở giữa các số này i. e. 0. 17 hoặc 0. 54. Ví dụ: Trong Boolean, chúng ta có thể nói ly nước nóng ( i. e 1 hoặc Cao) hoặc ly nước lạnh i. e. (0 hoặc thấp), nhưng trong logic mờ, chúng ta có thể nói cốc nước ấm (không nóng cũng không lạnh) .

Ý nghĩa của logic mờ là gì?

"Logic mờ là kỹ thuật biểu diễn và thao tác thông tin không chắc chắn . Trong logic mệnh đề truyền thống hơn, mỗi sự kiện hoặc mệnh đề, chẳng hạn như 'trời sẽ mưa vào ngày mai', phải đúng hoặc sai. Tuy nhiên, phần lớn thông tin mà mọi người sử dụng về thế giới liên quan đến một số mức độ không chắc chắn.

Các ứng dụng của logic mờ là gì?

Logic mờ đã được sử dụng trong nhiều ứng dụng như nhận dạng mẫu khuôn mặt, điều hòa không khí, máy giặt, máy hút bụi, hệ thống phanh chống trượt, hệ thống truyền động, điều khiển hệ thống tàu điện ngầm và máy bay trực thăng không người lái, hệ thống dựa trên tri thức để tối ưu hóa đa mục tiêu của hệ thống điện,