Hướng dẫn edit distance python nltk - chỉnh sửa khoảng cách python nltk
________ 14 ________ 15 (S1, S2, hoán vị = false) [Nguồn] ¶(s1, s2, transpositions=False)[source]¶ Tính toán khoảng cách chỉnh sửa Levenshtein giữa hai chuỗi. Khoảng cách chỉnh sửa là số lượng ký tự cần được thay thế, chèn hoặc xóa, để biến S1 thành S2. Ví dụ, việc biến đổi Rain Rain thành Shine Shine, yêu cầu ba bước, bao gồm hai lần thay thế và một lần chèn: Rain Rain -> Các hoạt động này có thể đã được thực hiện trong các đơn đặt hàng khác, nhưng ít nhất ba bước là cần thiết. Điều này cũng tùy chọn cho phép các chỉnh sửa chuyển vị (ví dụ: ab ab ab ->
: rtype int nltk.metrics.distance.demo () [nguồn] ¶NLTK.Metrics.Distance Module¶ Số liệu khoảng cách.
nltk.metrics.distance.edit_distance (s1, s2, thay thế_cost = 1, hoán vị = false) [nguồn] ¶ Tính toán khoảng cách chỉnh sửa Levenshtein giữa hai chuỗi. Khoảng cách chỉnh sửa là số lượng ký tự cần được thay thế, chèn hoặc xóa, để biến S1 thành S2. Ví dụ, việc biến đổi Rain Rain thành Shine Shine, yêu cầu ba bước, bao gồm hai lần thay thế và một lần chèn: Rain Rain -> Các hoạt động này có thể đã được thực hiện trong các đơn đặt hàng khác, nhưng ít nhất ba bước là cần thiết. Cho phép chỉ định chi phí của các chỉnh sửa thay thế (ví dụ:, A A - Điều này cũng tùy chọn cho phép các chỉnh sửa chuyển vị (ví dụ: ab ab ab ->
int Loại trở lạiedit_distance_align(s1, s2, substitution_cost=1)[source]¶nltk.metrics.distance.edit_distance_align (s1, s2, thay thế_cost = 1) [nguồn] ¶ Trong trường hợp sắp xếp nhiều khoảng cách tối thiểu hợp lệ, Backtrace có ưu tiên hoạt động sau:
Backtrace được thực hiện theo thứ tự chuỗi ngược. Hàm này không hỗ trợ chuyển vị. Thông sốS2 (STR) - Các chuỗi được căn chỉnh (str) – The strings to be aligned Loại trở lạiDanh sách [tuple (int, int)] nltk.metrics.distance.binary_distance (Label1, Label2) [Nguồn] ¶binary_distance(label1, label2)[source]¶Kiểm tra bình đẳng đơn giản. 0,0 Nếu các nhãn giống hệt nhau, 1.0 nếu chúng khác nhau. >>> from nltk.metrics import binary_distance >>> binary_distance(1,1) 0.0 >>> binary_distance(1,3) 1.0nltk.metrics.distance.jaccard_distance (Label1, Label2) [Nguồn] ¶jaccard_distance(label1, label2)[source]¶ Số liệu khoảng cách so sánh sự giống nhau. nltk.metrics.distance.masi_distance (Label1, Label2) [Nguồn] ¶masi_distance(label1, label2)[source]¶Số liệu khoảng cách có tính đến thỏa thuận một phần khi nhiều nhãn được chỉ định. >>> from nltk.metrics import masi_distance >>> masi_distance(set([1, 2]), set([1, 2, 3, 4])) 0.665 Passonneau 2006, Thỏa thuận đo lường về các mục có giá trị được đặt (MASI) cho chú thích ngữ nghĩa và thực dụng. nltk.metrics.distance.interval_distance (Label1, Label2) [Nguồn] ¶interval_distance(label1, label2)[source]¶Số liệu khoảng cách khoảng cách khoảng thời gian của Krippendorff >>> from nltk.metrics import interval_distance >>> interval_distance(1,10) 81 Krippendorff 1980, Phân tích nội dung: Giới thiệu về phương pháp của nó nltk.metrics.distance.presence (nhãn) [Nguồn] ¶presence(label)[source]¶Chức năng bậc cao để kiểm tra sự hiện diện của một nhãn đã cho nltk.metrics.distance.fractional_presence (nhãn) [nguồn] nltk.metrics.distance.custom_distance (file) [nguồn] nltk.metrics.distance.jaro_similarity (s1, s2)fractional_presence(label)[source]¶ nltk.metrics.distance.custom_distance(file)[source]¶ nltk.metrics.distance.jaro_similarity(s1, s2)[source]¶Tính toán sự tương đồng của Jaro giữa 2 chuỗi từ:
Khoảng cách Jaro giữa là tối thiểu không. của các chuyển đổi đơn lẻ cần thiết để thay đổi một từ này sang từ khác. Công thức tương tự Jaro từ https://en.wikipedia.org/wiki/jaro%E2%80%93Winkler_distance: ở đâu>>> binary_distance(1,3) 1.06
Khoảng cách Jaro Winkler là một phần mở rộng của sự tương đồng Jaro trong:
như vậy mà:
where,
Kiểm tra bằng cách sử dụng đầu ra từ https://www.census.gov/srd/papers/pdf/rr93-8.pdf từ Bảng 5 so sánh các bộ so sánh chuỗi được định đổi lại giữa 0 đến 1 1 >>> winkler_examples = [("billy", "billy"), ("billy", "bill"), ("billy", "blily"), ... ("massie", "massey"), ("yvette", "yevett"), ("billy", "bolly"), ("dwayne", "duane"), ... ("dixon", "dickson"), ("billy", "susan")] >>> winkler_scores = [1.000, 0.967, 0.947, 0.944, 0.911, 0.893, 0.858, 0.853, 0.000] >>> jaro_scores = [1.000, 0.933, 0.933, 0.889, 0.889, 0.867, 0.822, 0.790, 0.000] Một cách để phù hợp với các giá trị trên giấy Winkler, là cung cấp một hệ số tỷ lệ P khác nhau cho các cặp chuỗi khác nhau, ví dụ: >>> p_factors = [0.1, 0.125, 0.20, 0.125, 0.20, 0.20, 0.20, 0.15, 0.1] >>> for (s1, s2), jscore, wscore, p in zip(winkler_examples, jaro_scores, winkler_scores, p_factors): ... assert round(jaro_similarity(s1, s2), 3) == jscore ... assert round(jaro_winkler_similarity(s1, s2, p=p), 3) == wscore Kiểm tra bằng cách sử dụng các đầu ra từ https://www.census.gov/srd/papers/pdf/rr94-5.pdf từ Bảng Bảng 2.1. So sánh các bộ so sánh chuỗi bằng tên cuối cùng, tên và tên đường phố >>> winkler_examples = [('SHACKLEFORD', 'SHACKELFORD'), ('DUNNINGHAM', 'CUNNIGHAM'), ... ('NICHLESON', 'NICHULSON'), ('JONES', 'JOHNSON'), ('MASSEY', 'MASSIE'), ... ('ABROMS', 'ABRAMS'), ('HARDIN', 'MARTINEZ'), ('ITMAN', 'SMITH'), ... ('JERALDINE', 'GERALDINE'), ('MARHTA', 'MARTHA'), ('MICHELLE', 'MICHAEL'), ... ('JULIES', 'JULIUS'), ('TANYA', 'TONYA'), ('DWAYNE', 'DUANE'), ('SEAN', 'SUSAN'), ... ('JON', 'JOHN'), ('JON', 'JAN'), ('BROOKHAVEN', 'BRROKHAVEN'), ... ('BROOK HALLOW', 'BROOK HLLW'), ('DECATUR', 'DECATIR'), ('FITZRUREITER', 'FITZENREITER'), ... ('HIGBEE', 'HIGHEE'), ('HIGBEE', 'HIGVEE'), ('LACURA', 'LOCURA'), ('IOWA', 'IONA'), ('1ST', 'IST')] >>> jaro_scores = [0.970, 0.896, 0.926, 0.790, 0.889, 0.889, 0.722, 0.467, 0.926, ... 0.944, 0.869, 0.889, 0.867, 0.822, 0.783, 0.917, 0.000, 0.933, 0.944, 0.905, ... 0.856, 0.889, 0.889, 0.889, 0.833, 0.000] >>> binary_distance(1,3) 1.00 Một cách để phù hợp với các giá trị trên giấy Winkler, là cung cấp một hệ số tỷ lệ P khác nhau cho các cặp chuỗi khác nhau, ví dụ: >>> binary_distance(1,3) 1.01 >>> binary_distance(1,3) 1.02 Kiểm tra bằng cách sử dụng các đầu ra từ https://www.census.gov/srd/papers/pdf/rr94-5.pdf từ Bảng Bảng 2.1. So sánh các bộ so sánh chuỗi bằng tên cuối cùng, tên và tên đường phố >>> binary_distance(1,3) 1.03 Trường hợp thử nghiệm này chứng minh rằng đầu ra của sự tương tự Jaro-Winkler phụ thuộc vào sản phẩm l * p chứ không phải trên sản phẩm max_l * p. Ở đây sản phẩm max_l * p> 1 tuy nhiên sản phẩm l * pdemo()[source]¶ |