3.4.1. Chức năng tra cứu từ điển
Tra cứu là chức năng quan trọng nhất của hệ thống từ điển đa ngữ của chúng ta. Quá trình tra cứu là quá trình diễn ra từ khi nhập pattern cần tra cứu đến khi hiển thị các thông tin của pattern đó. Các thông tin bao gồm: các nghĩa(chính xác là thể hiện các nghĩa trong ngôn ngữ mà pattern thuộc về), các ví dụ của pattern tương ứng với nghĩa(có thể có nhiều hoặc không có), các từ đồng nghĩa, các từ quan hệ theo các quan hệ đã được định nghĩa trong hệ thống.
32 Bắt đầu Nhập Pattern, LanguageSource và LanguageTarget
Kiểm tra sự tồn tại của PatternId
Kết thúc
Lấy danh sách các Phrase của
PatternId
Kiểm tra số lượng Phrase Lấy danh sách các SenseId Láy danh sách các Explain(giải thích và ví dụ) Lấy danh sách các SenseId của các Pattern đồng nghĩa Lấy danh sách các SenseId có quan hệ với SenseId của Pattern Lấy danh sách các PatternId đồng nghĩa Lấy danh sách các PatternId có quan hệ tương ứng Lấy danh sách các Pattern đồng nghĩa Lấy danh sách các PatternId có quan hệ tương ứng Kết thúc
Hình 3.1. Giải thuật tra cứu
Khi có pattern nhập vào, quá trình tra cứu bao gồm các bước:
Nhập pattern cần tra, lựa chọn ngôn ngữ đầu vào hoặc không lựa chọn(ngôn ngữ nguồn), lựa chọn ngôn ngữ giải thích cho pattern đó(ngôn ngữ đích).
Bước 1: Kiểm tra pattern có tồn tại trong bảng tblPattern hay không.
Nếu không tồn tại kết thúc và thông báo cho người dùng. Nếu tồn tại, lấy PatternId và chuyển sang bước 2.
Bước 2: Với PatternId đã xác định, truy vấn vào tblPhrase để lấy các phrase của
PatternId đó trong ngôn ngữ đã chọn. Kết quả cho ta là một tập các phrase của PatternId. Tập phrase này có thể rỗng hoặc không rỗng.
Nếu tập phrase rỗng, quá trình tra cứu kết thúc.
Nếu phrase khác rỗng, ta sẽ lấy được danh sách các nghĩa mà pattern thuộc về mà cụ thể ở đây là danh sách các SenseId. Và chuyển sang bước 3.
33
nghĩa, các ví dụ(trong ngôn ngữ nguồn và ngôn ngữ đích)
Truy vấn vào tblExplain, với mỗi SenseId trong danh sách, kết hợp với LanguageId ta lấy bản ghi tương ứng và lấy các thôn tin cần thiết.
Việc lấy thông tin thực hiện với cả ngôn ngữ nguồn và ngôn ngữ đích. Ở đây ngôn ngữ nguồn có thể có nhiều hơn 1.
Bước 4: Lấy các từ đồng nghĩa với Pattern cần tra cứu trong ngôn ngữ đích.
Với mỗi SenseId ta truy vấn vào tblphrase để lấy các phrase cùng SenseId trong ngôn ngữ đích(cùng LanguageId của ngôn ngữ đích). Ta sẽ có một tập các phrase và lấy được một tập các PatternId
Từ tập PatternId , truy vấn vào tblPattern để lấy danh sách các Pattern đồng nghĩa(tập này có thể rỗng)
Bước 5: Xác định các Pattern khác có quan hệ của Pattern
Sử dụng tập các SenseId của Pattern đã xác định ở bước 2, truy vấn vào tblRelation để xác định các bản ghi chứa SenseId. Từ các bản ghi này ta lấy được tập các quan hệ, và tập các SenseId quan hệ tương ứng.
Với tập các SenseId quan hệ của mỗi SenseId trong tập SenseId của Pattern ta truy vấn tương tự như bước 4 để lấy các từ đồng nghĩa
Bước này thực hiện với cả ngôn ngữ nguồn và ngôn ngữ đích Quá trình truy vấn đề đây kết thúc
Bước 6: Sắp xếp các Pattern quan hệ theo nhóm
Quá trình tra cứu kết thúc!
3.4.2. Bổ sung nghĩa
Bổ sung nghĩa có thể hiểu theo hai hướng khác nhau:
Bổ sung nghĩa hoàn toàn mới, tức là chưa có một pattern nào mang nghĩa đó Bổ sung thể hiện của nghĩa đã tồn tại trong một ngôn ngữ cụ thể
Trường hợp thứ nhất ít xảy ra do các nghĩa trong tiếng Anh đã được xem như khá đầy đủ.
Trường hợp thứ hai sẽ được đề cập chi tiết. Bổ sung nghĩa hay bổ sung thể hiện của nghĩa đã có trong một ngôn ngữ cụ thể. Thể hiện của nghĩa sẽ bao gồm giải thích và các ví dụ(Content và Example). Việc bổ sung Content và Example có thể thực hiện riêng lẻ hoặc đồng thời.
34
Sơ đồ thuật toán :
Bắt đầu
Nhập Content và
Example
Kiểm tra sự tồn tại ExplainId Không Chèn vào tblExplain Cập nhật bản ghi đã tồn tại trong tblExplain Tồn tại Kết thúc
35
Trong sơ đồ thuật toán, Content và Example được đặt chung là Explain. Việc bổ sung nghĩa thực hiện qua các bước:
Bước 1: Nhập Explain tương ứng với SenseId cần bổ sung, chọn ngôn ngữ hiện
thị của SenseId
Bước 2: Với cặp SenseId và LanguageId ta truy cập vào tblExplain để tìm kiếm
bản ghi chứa cặp giá trị tương ứng này. Có hai trường hợp xảy ra:
Chưa tồn tại bản ghi chứa bộ hai giá trị SenseId và LanguageId, và quá trình bổ sung ta chỉ việc tạo ra một ExplainId mới và chèn vào tblExplain mà không cần quan tâm một vấn đề nào khác.
Tồn tại bản ghi chứa bộ giá trị SenseId và LanguageId, quá trình bổ sung không cần tạo ExplainId mới nhưng cần kiểm tra các trường Content và Example:
Content nếu đã có thì không thể bổ sung thêm Exmple đã có thì nối thêm vào trường này
Nếu cả hai trường Content và Example chưa có, việc bổ sung chỉ là câu lệnh bình thường
Kết thúc quá trình bổ sung nghĩa trong hệ thống từ điển đa ngữ.
3.4.3. Module bổ sung từ
Trong hệ thống từ điển, việc thêm mới các từ là vấn đề quan trọng. Trong hệ thống từ điển thông thường, việc thêm pattern phải quan tâm đến ngôn ngữ. Việc thêm một pattern thuộc nhiều ngôn ngữ thì lần lượt thêm vào các bảng của từng ngôn ngữ khác nhau. Việc này đòi hỏi tốn nhiều thời gian và gây ra dư thừa trong cấu trúc cơ sở dữ liệu. Với hệ thống từ điển ta đã thiết kế, việc bổ sung pattern đơn giản chỉ cập nhật vào tblPattern. Bổ sung Pattern bao gồm mấy trường hợp:
Bổ sung Pattern mới mà chưa có mối quan hệ về nghĩa hay mối quan hệ về ngôn ngữ nào cả(mới hoàn toàn).
Bổ sung Pattern có quan hệ về nghĩa trong hệ thống. Chẳng hạn như các từ đồng nghĩa hay các từ thuộc vào các mối quan hệ khác về nghĩa.
36
Sơ đồ thuật toán:
Bắt đầu Nhập Pattern, Language của từ đồng nghĩa
Kiểm tra sự tồn tại của PatternId trong tblPattern
Lấy PatternId của Pattern đồng nghĩa Đã có Bổ sung Pattern và tạo PatternId mới trong tblPattern Chưa có
Kiểm tra sự tồn tại của Phrase(SenseId, PatternId,
LanguageId) trong tblPhrase
Bổ sung Phrase mới vào tblPhrase
Chưa có
Kết thúc Đã tồn tại
37
Quá trình bổ sung các Pattern đồng nghĩa với Pattern tra cứu trong một ngôn ngữ cụ thể:
Bước 1: Nhập từ đồng nghĩa và lựa chọn ngôn ngữ cho từ đồng nghĩa(có thể
khác với ngôn ngữ của từ tra cứu).
Bước 2: Thông tin truyền đến server gồm pattern đồng nghĩa, SenseId, và
LanguageId. Việc đầu tiên kiểm tra pattern đồng nghĩa đã tồn tại trong tblPattern hay chưa.
Nếu chưa tồn tại, bổ sung vào tblPattern với PatternId được tạo mới như cách thực hiện với PhraseId ở phần bổ sung nghĩa phần trên
Nếu đã tồn tại, ta xác định được PatternId của từ đồng nghĩa Chuyển sang bước 3
Bước 3: Kiểm tra bộ ba giá trị SenseId, PatternId và LanguageId đã tồn tại trong
tblPhrase hay chưa
Nếu tồn tại rồi, kết thúc
Nếu chưa tồn tại tính PhraseId theo cách trên và chuyển sang bước 4
Bước 4: Với bộ giá trị trên cùng với PhraseId, bổ sung một bản ghi mới vào
tblPhrase
Kết thúc quá trình bổ sung pattern đồng nghĩa.
Trong module bổ sung từ có xây dựng chức năng đếm từ bổ sung, chức năng bộ lọc và kiểm tra sự chính xác của chính tả của các từ bổ sung; chức năng để người quản trị có thể kiểm soát dễ dàng danh sách các từ bổ sung. Mục đích của module này là tập hợp số từ bổ sung để tham khảo ý kiến chuyên gia, từ nào chính xác sẽ chính thức bổ sung vào bộ từ điển.
* Ghi chú: Module bổ sung và bổ sung nghĩa từ sẽ thiết kế thêm tab “từ do
người dùng bổ sung” và “nghĩa do người dùng bổ sung” và có ghi chú: Ban quản trị website không chịu trách nhiệm về tính chính xác của các từ, ngữ, nghĩa…do người dùng bổ sung cho đến khi đã được thẩm định và bổ sung chính thức vào bộ từ điển, khuyến cáo người dùng chỉ để tham khảo…
3.5. Thiết kế CSDL
Hiện tại hệ thống từ điển chuyên ngành điện cũ đang chỉ hỗ trợ song ngữ Anh – Việt và Việt - Ạnh chính vì vậy sẽ hạn chế trong việc hỗ trợ công tác nghiên cứu và tiếp cận với các tài liệu ngoài tiếng Anh. Bởi vậy phương án xây dựng hệ thống từ
38
điển chuyên ngành điện đa ngữ có ưu điểm hơn hẳn hệ thống từ điển song ngữ. Việc tổ chức cơ sở dữ liệu theo một hệ thống thống nhất giảm thiểu được sự dư thừa dữ liệu. Và với một ứng dụng công nghệ thông tin thì thiết kế cơ sở dữ liệu là một trong những công việc quan trọng nhất, đảm bảo sự tối ưu, tiết kiệm, toàn vẹn cho hệ thống.
Hệ thống từ điển tử đa ngữ lấy các dữ liệu tiếng Anh của từ điển Wordnet của đại học Princeton làm gốc. Ta dựa vào cấu trúc cơ sở dữ liệu của Wordnet để xây dựng cấu trúc cơ sở dữ liệu mới cho hệ thống từ điển chuyên ngành điện mới. Trong cấu trúc từ điển Wordnet ban đầu của đại học Princeton, trung tâm của hệ thống là bộ hai tham số bao gồm Pattern và Synset_Offset. Hai tham số này nằm trong file index.pos. Sử dụng tham số Pattern cho phép ta xác định được từ hoặc cụm từ cần tìm kiếm. Dựa vào file index.pos ta xác định được bản ghi chứa Pattern. Trong bản ghi này ta nhận được giá trị của Synset_Offset. Và với các giá trị Synset_Offset, ta nhận được các bản ghi tương ứng trong file data.pos. Mỗi bản ghi cho ta các thông tin về các từ hay cụm đồng nghĩa với Pattern, các Pointer của Pattern theo Synset_Offset hiện tại thông qua các Pointer_Symbol, các giải thích về nghĩa(explain), các ví dụ có thể có của Pattern trong Synset_Offset đó(example). Sau đó, sử dụng các Pointer tìm được để xác định các Pattern có quan hệ với Pattern theo từng Pointer.
Trong hệ thống từ điển chuyên ngành điện mới, vì số lượng ngôn ngữ được mở rộng nên kiến trúc sẽ thay đổi nhiều so với cấu trúc dữ liệu của Wordnet. Những vấn đề đặt ra với cơ sở dữ liệu của hệ thống mới:
Cơ sở dữ liệu của từ điển Wordnet cũ lưu theo cấu trúc file text và giải thuật tìm kiếm thực hiện theo giải thuật tìm kiếm nhị phân. Ở hệ thống mới, cơ sở dữ liệu được lưu trữ và quản lý trong hệ quản trị cơ sở dữ liệu để dễ dàng chỉnh sửa, bổ sung và mở rộng. Điều cần thiết là xác định và chuyển đổi các trường trong các bản ghi trong các file text thành các trường trong dữ liệu mới, phân chia các trường thành các bảng dữ liệu khác nhau.
Bổ sung, chỉnh sửa hay xóa Pattern sẽ phải bổ sung, chỉnh sửa hay xóa vào đâu? Bổ sung, chỉnh sửa hay xóa nghĩa sẽ phải bổ sung, chỉnh sửa hay xóa vào đâu? Bổ sung, chỉnh sửa hay xóa các giải thích của nghĩa, các ví dụ hay các từ có quan hệ như thế nào?
Và quan trọng nhất: Khi thêm hay xóa bỏ một ngôn ngữ phải thực hiện như thế nào? Cần tổ chức như thế nào để việc này thực hiện đơn giản?
Tổ chức cơ sở dữ liệu để việc truy vấn tối ưu?
Giải quyết tất cả các vấn đề trên, xem như ta đã tổ chức xong cơ sở dữ liệu cho hệ thống từ điển điện tử đa ngữ!
39
3.5.1. Kiến trúc cơ sở dữ liệu
Trong mô hình kiến trúc từ điển cơ sở dữ liệu bao gồm 3 thành phần chính: - Pattern
- Sense - Phrase
3.5.1.1. Pattern-Kho từ vựng
Kho từ vựng là thành phần mấu chốt của một từ điển nói chung và từ điển điện tử nói riêng. Độ lớn và độ chính xác của kho từ vựng thể hiện chất lượng của từ điển.Trong các hệ thống từ điển thông thường, kho từ vựng hay Pattern luôn gắn liền với ngôn ngữ để chỉ rõ từ vựng hay Pattern nào đó thuộc về ngôn ngữ cụ thể. Từ đó có thể có nhiều xu hướng lưu trữ kho từ vựng. Có thể xây dựng kho từ vựng của từng ngôn ngữ riêng hay xây dựng kho từ vựng chung cho tất cả ngôn ngữ. Cách xây dựng đầu tiên cho phép lược bỏ trường ngôn ngữ nhưng gồm các bảng rời rạc. Cách xây dựng thứ hai làm tăng số trường trong kho từ vựng và tạo ra sự dư thừa. Trong kiến trúc này, Pattern là một bảng dữ liệu độc lập: độc lập với ngôn ngữ. Có nghĩa là, kho từ vựng theo kiến trúc này không còn phụ thuộc nó vào ngôn ngữ nào cụ thể. Một từ vựng có thể thuộc bất cứ ngôn ngữ nào. Cách lưu trữ này sẽ tránh được sự dư thừa dữ liệu, đồng thời tách biệt được từ vựng và ngôn ngữ. Do đó, việc bổ sung, chỉnh sửa hay xóa bỏ trong kho từ vựng được tiến hành độc lập mà không cần quan tâm đến ngôn ngữ.
3.5.1.2. Sense-Ngữ nghĩa
Cách tiếp cận theo ngữ nghĩa là hướng tiếp cận mới. Một từ vựng hay Pattern có thể có nhiều nghĩa. Một nghĩa có thể có nhiều từ vựng thể hiện nó ở nhiều dạng từ loại khác nhau. Tập hợp các từ cùng một nghĩa gọi là SynSet. Quan hệ ngữ nghĩa trong ngôn ngữ rất phong phú và đa dạng. Ngữ nghĩa không có bảng dữ liệu riêng, nhưng nó đóng vai trò quan trọng để tra cứu và kết nối các bảng dữ liệu. Các quan hệ ngữ nghĩa được lưu trong một bảng dữ liệu riêng và bảng này sẽ tạo ra sự ràng buộc ngữ nghĩa.
3.5.1.3. Phrase
Phrase là một tập gồm có 3 thông tin: từ vựng, ngôn ngữ và ngữ nghĩa. Bộ 3 thông tin này tạo nên phần tử cơ bản của ngôn ngữ. Từ vựng là thể hiện của ngôn ngữ, ngữ nghĩa là cái trừu tượng của ngôn ngữ, và ngôn ngữ là phạm vi. Tổ chức cơ sở dữ liệu theo Phrase là tổ chức độc lập với ngôn ngữ vì ngôn ngữ là một thành phần của
40
Phrase. Đây chính là cơ sở cho phép xây dựng hệ đa ngữ thực sự. Cấu trúc cơ sở dữ liệu theo kiến trúc này linh hoạt trong việc bổ sung, chỉnh sửa hay hủy bỏ các mục từ. Cấu trúc này cũng dễ dàng tạo nối kết giữa các thành phần trong một ngôn ngữ cũng như giữa các ngôn ngữ khác nhau(vì bản chất của nó là theo ngữ nghĩa).
3.5.2. Thiết kế cơ sở dữ liệu
Wordnet là một từ điển nhưng cũng có thể xem nó là một kho dữ liệu về tiếng Anh với chất lượng tốt. Trong cơ sở dữ liệu của từ điển Wordnet, ta có thể xem trung tâm của nó là các Sense_Offset, tức là tổ chức theo nghĩa. Đặc điểm cơ sở dữ liệu của Wordnet:
Mỗi Pattern có thể thuộc nhiều Synset khác nhau(tức là có nhiều nghĩa).
Mỗi Synset có thể chứa nhiều Pattern(tức là một Synset có nhiều từ đồng nghĩa). Trong một synset của Pattern, có giải thích cho nghĩa đó, các ví dụ cho nghĩa này, tập các từ quan hệ với Pattern theo các quan hệ được định nghĩa(tập này có thể rỗng).
Từ các trường dữ liệu trong các file index.pos và data.pos của từ điển Wordnet, ta có thể phân chia các trường dữ liệu thành các bảng như sau:
Bảng tblPattern:
Chứa các pattern(word hoặc collocation), không phụ thuộc vào ngôn ngữ. Và được tách ra từ các trường của bản ghi trong file index.pos
Tên trường Mô tả Kiểu dữ liệu
PatternId Khóa chính phân biệt các pattern BIGINT Pattern Các word hoặc collocation, ví dụ: hello, hi, … TEXT UserId Khóa chính lấy từ bảng tblUser, chỉ ra người
nhập vảo pattern này
BIGINT
Times Thời điểm nhập vào pattern này BIGINT
Bảng tblReDef:
41
Tên trường Mô tả Kiểu dữ liệu
Id Khóa chính phân biệt các bản ghi BIGINT
RelationId Mã hóa các relation INTEGER
Description Mô tả mối quan hệ TEXT
Bảng tblPos:
Định nghĩa các dạng từ loại
Tên trường Mô tả Kiểu dữ liệu