Có chức năng SoundEx cho Python và nếu không làm thế nào bạn sẽ tạo ra một mã SoundEx?
Nội phân Chính showShow
- Thuật toán SoundEx là gì và nó hoạt động như thế nào?
- Xuất thân và lemmatization trong NLP là gì?
- Sự khác biệt giữa thân cây và lemmatization là gì?
- Hạn chế của xuất phát và lemmat hóa
- Băm âm vị
- Thuật toán âm thanh Mỹ
- Ví dụ về thuật toán âm thanh Mỹ & nbsp;
- Thực hiện mã
Soundex
Code Letters
1 B, F, P, V
2 C, G, J, K, Q, S, X, Z
3 D, T
4 L
5 M, N
6 R
SKIP A, E, H, I, O, U, W, Y, H, W, and Y
Ví dụ:
Jackson = J250
Washington = W252
Clement = C455
Ashcraft = A261
Wu = W000
Trong bài viết này, chúng tôi sẽ đề cập đến sự tương tự từ phù hợp bằng thuật toán SoundEx trong Python.
Thuật toán SoundEx là gì và nó hoạt động như thế nào?
Xuất thân và lemmatization trong NLP là gì?
Xuất thân và lemmatization trong NLP là gì?
Sự khác biệt giữa thân cây và lemmatization là gì?
Hạn chế của xuất phát và lemmat hóaCanonicalization is a method for transforming data with many representations into a standard or normal form. In this article, we’ll try to understand these limitations and how phonetic hashing comes to the rescue.
Sự khác biệt giữa thân cây và lemmatization là gì?
Hạn chế của xuất phát và lemmat hóa
Hạn chế của xuất phát và lemmat hóa
Băm âm vị
Băm âm vị
Thuật toán âm thanh Mỹ
Thuật toán âm thanh Mỹ
Ví dụ về thuật toán âm thanh Mỹ & nbsp;
Thực hiện mã
Ví dụ:
Jackson = J250
Washington = W252
Clement = C455
- Ashcraft = A261
- Wu = W000
- Trong bài viết này, chúng tôi sẽ đề cập đến sự tương tự từ phù hợp bằng thuật toán SoundEx trong Python.
- SoundEx là một thuật toán ngữ âm có thể định vị các cụm từ có âm thanh tương tự. Phương thức tìm kiếm SoundEx lấy một từ làm đầu vào, chẳng hạn như tên người và xuất ra một chuỗi ký tự xác định một nhóm các từ [gần như] tương tự hoặc âm thanh [xấp xỉ].
- Xuất thân và hóa học, là hai phương pháp được sử dụng trong xử lý ngôn ngữ tự nhiên [NLP] để chuẩn hóa văn bản và nhận các từ hoặc tài liệu sẵn sàng cho một số xử lý học máy hơn. & NBSP;
- Mặc dù đây là hai trong số các kỹ thuật kinh điển hóa phổ biến nhất, nhưng chúng có những hạn chế nhất định, nhưng nhiệm vụ của chúng tôi là giảm các từ thành dạng gốc của chúng để xử lý trước và kỹ thuật này được gọi là chính trị. Canonicalization là một phương pháp để chuyển đổi dữ liệu với nhiều biểu diễn thành một dạng tiêu chuẩn hoặc bình thường. Trong bài viết này, chúng tôi sẽ cố gắng hiểu những hạn chế này và cách thức băm âm vị đến giải cứu.
- STEMMING là một kỹ thuật kinh điển hóa cố gắng giảm một từ xuống dạng gốc của nó bằng cách bỏ các phụ đề của nó. Lemmatization là một kỹ thuật kinh điển hóa khác, cố gắng lập bản đồ một từ cho bổ đề của nó - do đó, để có kết quả chính xác bằng cách sử dụng sự lemmat hóa, các từ phải được đánh vần chính xác trong kho văn bản.
Một vấn đề quan trọng xảy ra trong cả hai phương pháp khi xử lý các từ có nhiều biến thể cách viết do cách phát âm khác nhau. Ví dụ, các từ ‘màu sắc và‘ màu, có thể được đối xử khác nhau bởi một thân cây, mặc dù cả hai đều có ý nghĩa giống nhau. Tương tự như vậy, ‘du lịch, và du lịch, sẽ tạo ra hai thân/bổ đề mặc dù là các biến thể của cùng một từ. & Nbsp;
Băm âm vị là một kỹ thuật được sử dụng để chính sách hóa các từ có cùng đặc điểm ngữ âm. Do kết quả của việc băm âm vị, mỗi từ được gán một mã băm dựa trên âm vị của nó, là đơn vị âm thanh nhỏ nhất. Do đó, các từ là các biến thể ngữ âm của nhau có xu hướng có cùng một mã. Băm âm vị đạt được bằng cách sử dụng các thuật toán SoundEx có sẵn cho các ngôn ngữ khác nhau. Trong phần này, chúng tôi sẽ khám phá & nbsp;
Thuật toán American SoundEx, thực hiện tiếng băm ngữ âm trên ngôn ngữ tiếng Anh, tức là nó có một từ bằng tiếng Anh và tạo mã băm của nó.
Thuật toán âm thanh hoàn chỉnh của Mỹ để tìm mã SoundEx như dưới đây:
- Bước 1: Giữ lại chữ cái ban đầu
- Bước này dựa trên lý do rằng trong ngôn ngữ tiếng Anh, chữ cái đầu tiên của bất kỳ từ nào quyết định cách phát âm của nó và bắt buộc phải có tính hiểu biết của từ. Trong bước này, chúng tôi giữ lại chữ cái đầu tiên của từ như trong mã băm.
Ví dụ về thuật toán âm thanh Mỹ & nbsp;
Thực hiện mãBangalore.
Ví dụ: Retain the first letter
Hash Code: B
Washington = W252 Encode the Consonants
Hash Code:[n →5, g →2, l →4, r →6] = Ba524o6e
Clement = C455 Now, drop all the Vowels
Hash Code: B5246
Ashcraft = A261Make the Code Length 4
Hash Code: B524 [Truncating everything after position 4]
Wu = W000
Hash Code of Bangalore: B524
Tương tự như vậy, nếu chúng ta tính toán mã Hashc của Bengaluru [một biến thể ngữ âm của Bangalore], thì hóa ra là giống nhau, tức là B524Bengaluru [a phonetic variant of Bangalore], it turns out to be the same, i.e. B524
Thực hiện mã
Ví dụ 1:
Bây giờ chúng ta hãy áp dụng thuật toán SoundEx của Mỹ trong Python. Chúng tôi tạo một hàm soundex_generator tạo mã băm của bất kỳ từ nào đầu vào cho nó. Chúng ta có thể thấy rằng mã dưới đây cung cấp SoundEx cho Bangalore là B524, giống như mã chúng tôi tính bằng tay. & NBSP;
Python3
def
soundex_generator[token]:
Hash Code: B0
Hash Code: B1
Hash Code: B2
Hash Code: B3
Hash Code: B0
Hash Code: B5
Hash Code: B2
Hash Code: B7
Các
Các
Hash Code: B52467
Hash Code: B52468
Hash Code: B52460
Hash Code: B524 [Truncating everything after position 4]0
Hash Code: B52466
Hash Code: B52467
Hash Code: B524 [Truncating everything after position 4]3
Hash Code: B52460
Hash Code: B524 [Truncating everything after position 4]5
Hash Code: B52462
Hash Code: B524 [Truncating everything after position 4]7
Hash Code: B52460
Hash Code: B524 [Truncating everything after position 4]9
Hash Code: B52462
Hash Code of Bangalore: B5241
Hash Code: B52460
Hash Code of Bangalore: B5243
Hash Code: B52466
Hash Code: B52467
Hash Code of Bangalore: B5246
Hash Code: B52460
Hash Code of Bangalore: B5248
Hash Code of Bangalore: B5249
Is
B5246007
B5246001
B5246009
B5246003
G2162001
G2162002
G2162003
B5246002
B5246003
G2162006
G2162007
G2162008
Hash Code: B2
def
0G2162007
G2162003
def
3Hash Code: B2
def
5def
6def
7
G2162003
def
3Hash Code: B2
soundex_generator[token]:
1Hash Code:[n →5, g →2, l →4, r →6] = Ba524o6e
soundex_generator[token]:
5
Hash Code: B5
Hash Code:[n →5, g →2, l →4, r →6] = Ba524o6e0
Hash Code: B2
soundex_generator[token]:
9Các
Hash Code: B0
Hash Code: B11
Hash Code: B12
Hash Code: B13
Hash Code: B14
Hash Code: B15
Hash Code: B16
Hash Code: B13
Hash Code: B14
Hash Code: B19
Hash Code: B16
Output:
B524600
Ví dụ 2:
Trong ví dụ này, chúng tôi đang vượt qua Geeksforgeek như một đối số cho đầu ra là G216200. Ở đây, chúng tôi cắt hoặc pad để biến SoundEx thành mã 7 ký tự.GeeksforGeeks as an argument that gives output as G216200. Here, we Trim or Pad to make Soundex a 7-character code.
Python3
def
soundex_generator[token]:
Hash Code: B0
Hash Code: B1
Hash Code: B2
Hash Code: B3
Hash Code: B0
Hash Code: B5
Hash Code: B2
Hash Code: B7
Các
Các
Hash Code: B52467
Hash Code: B52468
Hash Code: B52460
Hash Code: B524 [Truncating everything after position 4]0
Hash Code: B52466
Is
Hash Code: B52467
Hash Code of Bangalore: B5246
Hash Code: B52460
Hash Code of Bangalore: B5248
Hash Code of Bangalore: B5249
Is
B5246007
B5246001
B5246009
B5246003
G2162001
G2162002
G2162003
B5246002
B5246003
G2162006
G2162007
G2162008
Hash Code: B2
def
0G2162007
G2162003
def
3Hash Code: B2
def
5def
6def
7
G2162003
def
3Hash Code: B2
soundex_generator[token]:
1Hash Code:[n →5, g →2, l →4, r →6] = Ba524o6e
soundex_generator[token]:
5
Hash Code: B5
Hash Code:[n →5, g →2, l →4, r →6] = Ba524o6e0
Hash Code: B2
soundex_generator[token]:
9Các
Hash Code: B0
Hash Code: B11
Hash Code: B12
Hash Code: B13
Hash Code: B14
Hash Code: B19
Hash Code: B16
Output:
G216200