Hướng dẫn python soundex - python soundex

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:

  1. Bước 1: Giữ lại chữ cái ban đầu
  2. 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: B
0
Hash Code: B
1
Hash Code: B
2
Hash Code: B
3

Hash Code: B
0
Hash Code: B
5
Hash Code: B
2
Hash Code: B
7

Các

Các

Hash Code: B5246
7
Hash Code: B5246
8
Hash Code: B5246
0
Hash Code: B524
[Truncating everything after position 4]
0
Hash Code: B5246
6

Hash Code: B5246
7
Hash Code: B524
[Truncating everything after position 4]
3
Hash Code: B5246
0
Hash Code: B524
[Truncating everything after position 4]
5
Hash Code: B5246
2
Hash Code: B524
[Truncating everything after position 4]
7
Hash Code: B5246
0
Hash Code: B524
[Truncating everything after position 4]
9
Hash Code: B5246
2
Hash Code of Bangalore: B524
1
Hash Code: B5246
0
Hash Code of Bangalore: B524
3
Hash Code: B5246
6

Hash Code: B5246
7
Hash Code of Bangalore: B524
6
Hash Code: B5246
0
Hash Code of Bangalore: B524
8
Hash Code of Bangalore: B524
9

Is

B524600
7
B524600
1
B524600
9
B524600
3
G216200
1

G216200
2
G216200
3
B524600
2
B524600
3
G216200
6

G216200
7
G216200
8
Hash Code: B
2 def0

G216200
7
G216200
3 def3
Hash Code: B
2 def5def6

def7

G216200
3 def3
Hash Code: B
2 soundex_generator(token):1
Hash Code:[n →5, g →2, l →4, r →6] = Ba524o6e

soundex_generator(token):5

Hash Code: B
5
Hash Code:[n →5, g →2, l →4, r →6] = Ba524o6e
0
Hash Code: B
2 soundex_generator(token):9

Các

Hash Code: B
0
Hash Code: B
11
Hash Code: B
12

Hash Code: B
13
Hash Code: B
14
Hash Code: B
15
Hash Code: B
16

Hash Code: B
13
Hash Code: B
14
Hash Code: B
19
Hash Code: B
16

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: B
0
Hash Code: B
1
Hash Code: B
2
Hash Code: B
3

Hash Code: B
0
Hash Code: B
5
Hash Code: B
2
Hash Code: B
7

Các

Các

Hash Code: B5246
7
Hash Code: B5246
8
Hash Code: B5246
0
Hash Code: B524
[Truncating everything after position 4]
0
Hash Code: B5246
6

Is

Hash Code: B5246
7
Hash Code of Bangalore: B524
6
Hash Code: B5246
0
Hash Code of Bangalore: B524
8
Hash Code of Bangalore: B524
9

Is

B524600
7
B524600
1
B524600
9
B524600
3
G216200
1

G216200
2
G216200
3
B524600
2
B524600
3
G216200
6

G216200
7
G216200
8
Hash Code: B
2 def0

G216200
7
G216200
3 def3
Hash Code: B
2 def5def6

def7

G216200
3 def3
Hash Code: B
2 soundex_generator(token):1
Hash Code:[n →5, g →2, l →4, r →6] = Ba524o6e

soundex_generator(token):5

Hash Code: B
5
Hash Code:[n →5, g →2, l →4, r →6] = Ba524o6e
0
Hash Code: B
2 soundex_generator(token):9

Các

Hash Code: B
0
Hash Code: B
11
Hash Code: B
12

Hash Code: B
13
Hash Code: B
14
Hash Code: B
19
Hash Code: B
16

Output:

G216200