Giải thuật tìm kiếm A* tìm kiếm ví dụ

Một phần của tài liệu MÔ HÌNH ôtômát hữu hạn TRONG hệ THỐNG DỊCH tự ĐỘNG ANH VIỆT (Trang 45)

3.3.1 Mục tiêu

Mục tiêu của việc tìm kiếm chính là tìm các ví dụ có khoảng cách với câu đầu vào nhỏ nhất trong bộ ngữ liệu song ngữ. Khoảng cách này được tính giữa hai chuỗi từ giữa câu đầu vào và câu ví dụ.

Khoảng cách giữa hai chuỗi từ được gọi là dist theo công thức dưới đây,

chính là khoảng cách sửa đổi có kèm theo yếu tố ngữ nghĩa. Trong công thức này,

46

I và D lần lượt biểu thị số phép chèn và xóa. Phép thay thế được xác định bởi

khoảng cách ngữ nghĩa giữa hai từ được thay thế, ký hiệu SEMDIST. Phép thay thế chỉ được phép thực hiện giữa hai từ nội dung thuộc cùng loại từ. Theo công thức này, dist chính là tổng giá trị của các phép chèn, xóa và thay thế được chuẩn hóa theo dộ dài của ãy từ. SEMDIST được xác định nhờ từ điển từ đồng nghĩa và có giá trị trong khoảng 0 đến 1.

Nếu khoảng cách nhỏ nhất tìm được không đủ nhỏ, các ví dụ đó trở nên không có ích khi dịch. Vì thế, cần sử dụng một ngƣỡng cho khoảng cách này. Nếu không có ví dụ nào nằm trong ngưỡng này, việc tìm kiếm ngữ liệu và đương nhiên cả quá trình dịch coi như thất bại và không đưa ra kết quả nào.

Do dịch trên ví dụ ở mức câu, hệ thống cần một giải thuật tìm kiếm có hiệu quả trên một bộ ngữ liệu lớn các ví dụ.Vì thế, hệ thống sử dụng giải thuật tìm kiếm A* do Doi et al. (2005) [9] đề xuất. Thay vì duyệt từng ví dụ, giải thuật này phân loại tập ví dụ thành các tập nhỏ hơn và cùng một lúc duyệt nhiều ví dụ nhờ biểu diễn tập ví dụ trên một ôtômát hữu hạn đơn định không có chu trình.

3.3.2 Giới thiệu về thuật toán A*

Giải thuật tìm kiếm A* là một giải thuật nằm trong nhóm giải thuật tìm kiếm best-first search. Ý tưởng chung của nhóm giải thuật này là lựa chọn nút để mở rộng dựa vào hàm đánh giá . Thông thường, nút có giá trị đánh giá nhỏ nhất sẽ được chọn, vì hàm đánh giá đo khoảng cách từ nút đó tới đích.

Giải thuật A* đánh giá một nút băng cách kết hợp là chi phí từ gốc đi tới nút đó, và là chi phí đi từ nút đó tới đích: . Như vậy, chính là ước lượng chi phí của lời giải tốt nhất đi qua .

3.3.3. Phân loại tập ứng cử viên

Các câu ứng cử viên (ví dụ) được phân loại dựa trên số từ nội dung và số từ chức năng. Việc này giúp cho việc lọc ra ứng cử viên dựa vào số từ nội dung và số

47

từ chức năng trong câu đầu vào và ngưỡng khoảng cách. Có nghĩa là, khoảng cách khả thi ngắn nhất có thể được tính dựa trên giả sử rằng tất cả các từ nội dung đều giống nhau, và tất cả các từ chức năng cũng đều giống nhau.

Nhóm các ứng cử viên với khoảng cách bé nhất có thể lớn hơn ngưỡng sẽ được loại bỏ.Nhóm ứng cử viên có khoảng cách bé nhất có thể càng nhỏ thì quá trình tìm kiếm trên tập đó sẽ được thực hiện càng sớm. Nếu một ứng cử viên có khoảng cách nhỏ hơn ngưỡng được tìm thấy trong nhóm, ngưỡng sẽ được cập nhật bằng giá trị của ứng cử viên đó. Cuối cùng, ngưỡng càng nhỏ thì càng loại bỏ được nhiều tập ứng cử viên hơn.

3.3.4. Biểu diễn không gian tìm kiếm

a. Trạng thái

Một trạng thái tìm kiếm sẽ gồm bốn thuộc tính: paths, node, input và trans, được định nghĩa như sau:

paths: Danh sách các chuỗi trạng thái so khớp(sau đây gọi tắt là đường đi) một phần.

node: Đỉnh của đồ thị từ biểu thị rằng quá trình so khớp đã được thực hiện đến đỉnh đó.

48

trans: Chỉ dẫn về các toán tử được dùng tại trạng thái đó.

Một phép khớp hoàn toàn, thay thế, chèn và xóa trong một chuỗi so khớp của danh sách đường đi được biểu diễn thành một bản ghi gồm một nhãn và một từ hay các từ, lần lượt là: (E, word), (S, graph word, input word), (I, input word) và (D, graph word) với word là từ trùng nhau ở cả câu đầu vào và đồ thị từ (sau đây gọi tắt

là đồ thị), input word là từ trong câu đầu vào, graph word là từ ở đồ thị.

Chi phí của một trạng thái là chi phí của một đường đi bất kỳ trong danh sách đường đi, do các đường đi trong danh sách đều có chi phí như nhau. Chi phí của một chuỗi so khớp là tổng chi phí các bản ghi của nó. Chi phí của bản ghi được định nghĩa bằng 0 với bản ghi E, 1 với bản ghi I hoặc D. Chi phí của bản ghi S được định nghĩa bằng hai lần khoảng cách ngữ nghĩa giữa các từ trong bản ghi đó, trừ trường hợp nó là một giá trị dương rất nhỏ khi khoảng cách bằng 0. Giá trị nhỏ đó cũng cho biếtchi phí tối thiểu của bản ghi S.

b. Toán tử

Một trạng thái được mở rộng ra thành các trạng thái kế tiếp bởi một toán tử. Có năm toán tử được định nghĩa sau đây, trong khi các toán tử T và I được áp dụng cho một trạng tháithì mỗi toán tử E, S, và D được áp dụng cho tổ hợp gồm một trạng thái và một cạnh của đồ thị.

Ở phần trình bày tiếp theo, mỗi toán tử được áp dụng cho một trạng thái s, và nếu

có, cùng với cạnh e, và s được mở rộng thành trạng thái kế tiếp s’. Mỗi toán tử sẽ

được nêu rõ điều kiện áp dụng và kết quả của việc mở rộng là trạng thái kế tiếp s’.

 Toán tử T:

o Ý nghĩa: Chuyển đổi giữa các chỉ dẫn toán tử.

o Điều kiện: s.trans là E hoặc S.

o Kết quả:

s’.trans = Phép chọn giữa toán tử S và NIL (định nghĩa

phía dưới) nếu s.trans là E, NIL nếu s.trans là S.

 Các thuộc tính khác của s’ giống hệt như của s.

49

o Ý nghĩa: Thực hiện phép khớp hoàn toàn khi tại đỉnh hiện tại của đồ thị có một cạnh có nhãn giống hệt như từ đầu tiên trong phần còn lại của câu đầu vào chưa được xử lý. Trạng thái kế tiếp được sinh ra bằng cách đi theo cạnh đó của đồ thị.

o Điều kiện:

s.trans là E.

s.input không rỗng.

e.source là s.node.

e.label và đầu của s.input giống hệt nhau.

o Kết quả:

s’.paths được sinh bằng cách thêm vào một bản ghi E sau

mỗi phần tử của s.paths.

s’.node = e.destination.

s’.input được sinh bằng cách xóa đi phần đầu của s.input.

s’.trans = (định nghĩa phía dưới).

 Toán tử S:

o Ý nghĩa: Thực hiện phép thay thế khi tại đỉnh hiện tại của đồ thị có một cạnh có nhãn là một từ nội dung có từ loại giống từ đầu tiên trong phần còn lại của câu đầu vào chưa được xử lý. Trạng thái kế tiếp được sinh ra bằng cách đi theo cạnh đó của đồ thị.

o Điều kiện:

s.trans là S.

s.input không rỗng.

e.source là s.node.

e.label và đầu của s.input là các từ nội dung có cùng nhãn

từ loại nhưng không giống hệt nhau và khoảng cách ngữ nghĩa giữa chúng nhỏ hơn 1.

50

s’.paths được sinh bằng cách thêm vào một bản ghi S sau

mỗi phần tử của s.paths.

s’.node = e.destination.

s’.input được sinh bằng cách xóa đi phần đầu của s.input.

s’.trans = Phép chọn giữa toán tử E, S và NIL.

 Toán tử I:

o Ý nghĩa: Thực hiện phép chèn. Trạng thái kế tiếp được sinh ra có đỉnh giống như trạng thái trước.

o Điều kiện:

s.trans là NIL.

s.input không rỗng.

o Kết quả:

s’.paths được sinh bằng cách thêm vào một bản ghi I sau

mỗi phần tử của s.paths.

s’.node = s.node.

s’.input được sinh bằng cách xóa đi phần đầu của s.input.

s’.trans = Phép chọn giữa toán tử E, S và NIL.

 Toán tử D:

o Ý nghĩa: Thực hiện phép xóa.

o Điều kiện:

s.trans là NIL.

s.paths chứa một đường đi có bản ghi cuối cùng không

phải là bản ghi I.

s.node là e.source.

o Kết quả:

s’.paths được sinh bằng cách từs.paths: đầu tiên các đường

đi có bản ghi cuối cùng là bản ghi I được xóa bỏ; tiếp theo một bản ghi D được thêm vào mỗi đường đi còn lại.

51

s’.input =s.input.

s’.trans = Phép chọn giữa toán tử E, S và NIL.

Ở định nghĩa phía trên, phép chọn giữa toán tử S và NILsẽ cho kết quả là S nếu như có khả năng rằng toán tử S sẽ được áp dụng cho s’, ngược lại kết quả là

NIL. Khả năng này được đánh giá là tồn tại nếu đầu của s’.input là một từ nội dung, và có một cạnh có đỉnh đầu là s’.node và nhãn là từ có cùng nhãn từ loại nhưng

không giống hệt đầu của s’.input. Phép chọn giữa toán tử E, S và NILsẽ cho kết quả là E nếu như có một cạnh có đỉnh đầu là s’.node và nhãn là đầu của s’.input, ngược cho kết quả giống phép chọn giữa toán tử S và NIL. Toán tử T không thực sự thực hiện quá trình so khớp nhưng nó điều kiển thứ tự áp dụng các toán tử khác thông qua thuộc tính trans.

Điều kiện áp dụng thứ hai của toán tử D ngăn chặn việc thêm bản ghi D vào sau bản ghi I. Nó có nghĩa là ta áp dụng một quy tắc phải đặt bản ghi D lên trước bản ghi I trong một chuỗi so khớp của I và D nhằm tránh dư thừa do sự xuất hiện nhiều lần của cùng một chuỗi so khớp về bản chất.

c. Trạng thái xuất phát và trạng thái kết thúc

Trong trạng thái xuất phát thuộc tính paths là một danh sách của một chuỗi so khớp rỗng, thuộc tính node chính là đỉnh xuất phát, thuộc tính input là toàn bộ chuỗi từ trong câu đầu vào và thuộc tính trans là toán tử E.

Một trạng thái kết thúc là một trạng thái mà thuộc tính node là đỉnh kết thúc và thuộc tính input là rỗng.

3.3.5. Giải thuật tìm kiếm

Từ trạng thái tìm kiếm xuất phát được hình thành như định nghĩa phía trên, cùng với các toán tử và trạng thái kết thúc, quá trình tìm kiếm được thực hiện để tìm ra trạng thái kết thúc có chi phí nhỏ nhất. Là điều kiện xuất phát, một cận trên của chi phí phải được đưa ra, chính là ngưỡng khoảng cách nhân với tổng của độ dài câu đầu vào và câu ví dụ trong đồ thị.

a. Hàm đánh giá

52

là chi phí từ trạng thái ban đầu đến trạng thái s, chính bằng chi phí của trạng

thái svà có thể được tính từ s.paths. Nếu s là trạng thái kết thúc, . là cận dưới của chi phí để đi từ trạng thái s tới trạng thái kết thúc.

- Tất cả các câu trong đồ thị có cùng số từ nội dung và số từ chức năng. Vì thế, có thể dễ dàng xác định được số từ nội dung trong đồ thị, số từ nội dung trong câu đầu vào, số từ chức năng trong đồ thị, và số từ chức năng trong câu đầu vào mà chưa được xử lý tại trạng thái s. Gọi các số đó lần lượt là

. Cận dưới của chi phí sẽ được tính dựa vào số các từ chưa được xử lý, được ký hiệu là bên dưới.

- Hơn nữa, với giả sử rằng một trong các toán tử E, S, I và D đã được áp dụng cho trạng thái s mà có thể đã được áp dụng toán tử D trước đó nếu cần thiết, cận dưới

của chi phí từ s tới trạng thái đích được ký hiệu bằn với o biểu thị một

toán tử. Giá trị của được định nghĩa sau đâu với mỗi loại toán tử o.

 Toán tử E: .

 Toán tử S: cộng với chi phí nhỏ nhất của bản ghi S.

 Toán tử I:

o nếu đầu của

s.input là từ nội dung,

o nếu ngược

lại.

 Toán tử D:

o nếu không có cạnh nào có đỉnh đầu là s.node và nhãn là

53

o nếu không có cạnh nào có đỉnh đầu là s.node và nhãn là

một từ nội dung,

o nếu ngược lại, với:

- Bằng việc sử dụng các giá trị trên, h”(s) được định nghĩa như là: (1) h”(s,E) nếu s.trans là toán tử E

(2) giá trị nhỏ nhất giữa h”(s, S),h”(s,I) và h”(s,D)nếu s.trans là toán tử S (3) giá trị nhỏ nhất giữa h”(s,I) và h”(s,D) nếu s.trans là toán tử NIL.

b.Thuật toán

Thuật toán tìm kiếm được mô tả bên dưới sử dụng OPEN là danh sách các trạng thái chưa được mở rộng và CLOSED là các trạng thái đã được mở rộng. Hai trạng thái giống nhau ở bước (5) có nghĩa là chúng có giá trị giống nhau ở mọi thuộc tính trừ thuộc tính paths.

(1)Đặt giá trị của giới hạn cận trên và gọi OPEN là danh sách chỉ bao gồm trạng thái xuất phát.

(2)Kết thúc trừ khi OPEN có một đỉnh có chi phí không vượt quá cận trên. (3)Lấy một đỉnh s có giá trị nhỏ nhất của f” ra khỏi OPEN và đặt s vào

CLOSED.

(4)Nếu s là trạng thái kết thúc, giữ s làm một lời giải, cập nhật giá trị cận

trên bằng giá trị của s và quay lại bước (2).

(5)Mở rộng s thành các trạng thái kế tiếp và với mỗi trạng thái kế tiếp s’,

nếu f”(s’) không vượt quá cận trên, thực hiện theo các nhánh điều kiện sau:

a. Nếu không có trạng thái nào giống s’ ở cả OPEN lẫn CLOSED,

đưas’ vào OPEN.

b. Nếu có một trạng thái giống s’ nhưng có chi phí lớn hơn chi phí của s’ ở OPEN hoặc CLOSED, xóa bỏ nó và đưa s’ vào OPEN.

54

c. Nếu có một trạng thái giống s’ có chi phí bằng chi phí của s’ ở

CLOSED, xóa bỏ nó và đưa s’ vào OPEN.

d. Nếu có một trạng thái giống s’ có chi phí bằng chi phí của s’ ở

OPEN, thêm các đường đi trong s’.paths vào thuộc tính paths của trạng thái đó.

(6)Trở lại bước (2).

c. Tối ưu

Đồ thị từ thường có một lượng các cạnh bắt nguồn từ đỉnh xuất phát nhiều hơn so với các đỉnh khác. Vì thế, khi toán tử D được áp dụng cho một trạng thái có thuộc tính node là đỉnh xuất phát, rất nhiều đỉnh kế tiếp được sinh ra làm tốn kém thời gian xử lý, đây là trường hợp mà đầu của chuỗi so khớp là một bản ghi loại D. Lần này, khi toán tử D được áp dụng cho một trạng thái có đỉnh là đỉnh xuất phát, trạng thái này được mở rộng thành trạng thái kế tiếp có đỉnh là đỉnh giả đầu tiên. Đỉnh giả đầu tiên này (minh họa hình 3.5) là đỉnh đầu của các cạnh có nhãn là từ thứ hai trong các câu ví dụ, và các cạnh này đi vào luồng đồ thị bình thường. Một trạng thái có đỉnh là đỉnh giả đầu tiên được mở rộng thành một trạng thái có đỉnh bình thường bằng toán tử E hay S, và thành một trạng thái có đỉnh là đỉnh giả thứ hai nhờ toán tử D.

55

Từ công tức của ngưỡng khoảng cách, ta có thể xác định được số bước đỉnh giả cần chuẩn bị. Gọi L là độ dài của câu ví dụ, d là số bản ghi loại D nằm ở đầu

chuỗi so khớp, như vậy câu đầu vào với khoảng cách nhỏ nhất cả thể là câu được tạo thành từ câu ví dụ bằng cách xóa đi d từ ở đầu. Từ đó rút ra khoảng cách nhỏ nhất có thể là . Nếu khoảng cách này lớn hơn ngưỡng giới hạn Θ, việc tìm kiếm có thể được dừng lại. Vì thế, với ràng buộc là d, từ dó rút ra . Số nguyên d lớn nhất thỏa mãn điều kiện này chính là số đỉnh giả cần phải chuẩn bị.

3.3.6 Giới hạn tập ứng cử viên

Tuy đã có giới hạn về ngưỡng khoảng cách nhưng sự phong phú của các câu trong ví dụ vẫn khiến cho việc tìm kiếm trong tất cả các tập ứng cử viên trở nên

Một phần của tài liệu MÔ HÌNH ôtômát hữu hạn TRONG hệ THỐNG DỊCH tự ĐỘNG ANH VIỆT (Trang 45)