Phát sinh trong triển khai

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải quyết vấn đề nhận dạng tiếng Việt bằng phân tích cú pháp (Trang 91 - 94)

Trong triển khai, có một số vấn đề phát sinh mà chúng tôi bỏ qua trong phần lý thuyết nhằm đảm bảo tính đơn giản của mô hình. Phát sinh triển khai sẽ bù đắp những thiếu sót để có thể triển khai một hệ thống hoàn chỉnh dựa trên lý thuyết.

5.2.1. Cơ sở tri thức của quá trình nhận dạng

Trong các bản nhận dạng chạy trên môi trường dòng lệnh, chúng tôi không thiết kế các phép ghi và đọc cơ sở tri thức mà chúng tôi gọi thủ tục huấn luyện ngay ở đầu chương trình. Do đó tri thức sẽ được cập nhật mỗi khi thư mục dữ liệu có dữ liệu huấn luyện mới. Các phiên bản này do đó chỉ phục vụ cho mục đích nghiên cứu.

Trong các phiên bản giao diện đồ hoạ, chúng tôi tải hoặc tạo cơ sở tri thức ở đầu chương trình và ghi lại cơ sở tri thức mỗi khi chương trình kết thúc. Người sử dụng cũng có quyền tải một cơ sở tri thức tại đường dẫn mà anh hay chị ta chỉ ra sau khi chương trình khởi động xong. Người sử dụng cũng có thể ghi cơ sở tri thức xuống tập tin bất kỳ lúc nào để đề phòng mất điện hoặc lỗi hệ thống mà chương trình không kịp kết thúc đúng cách đề ghi cơ sở tri thức.

5.2.2. Nhận dạng trực tuyến

Trong phần lý thuyết, chúng ta nhận dạng dựa trên tập tin. Nhưng thực tế chúng ta cần xử lý dữ liệu vào từ thiết bị thu thanh và nhận dạng trực tuyến. Để làm được việc này chúng tôi dùng một hàng đợi tín hiệu. Mỗi khi chương trình nhận được tín hiệu có dữ liệu ghi âm báo về, chương trình sẽ cập nhật vào một đầu của hàng đợi. Thủ tục nhận dạng hoạt động trên nền thời gian. Mỗi khi trên đầu còn lại của hàng đợi có dữ liệu, thủ tục nhận dạng biến đổi dữ liệu đó thành từ và đưa ra thiết bị đầu ra.

Cách giải quyết như vậy để đảm bảo mô hình lý thuyết không bị phá vỡ, nghĩa là vùng đệm âm thanh cũng sẽ được coi như tập tin, được trừu tượng hoá thành tập tin. Nhưng đồng thời nó cũng phản ánh cách giải quyết đã tồn tại với các thiết bị

vào khác như bàn phím và con chuột. Bàn phím có một vùng đệm có đủ sức chứa 16 phím ấn và con chuột có biến đếm nội tại chứa số lần ấn phím.

class CWaveBufferQueue { protected: ULONG m_BufferLength; ULONG m_NumberOfBuffer; CWaveBuffer *m_FreeList; UCHAR m_FreeListDenial; CWaveBuffer *m_UsedList; UCHAR m_UsedListDenial; ULONG m_UsedPos; public:

CWaveBufferQueue(DWORD dwNumberOfBuffer=32, DWORD dwBufferLength=44100, int nFormat=1); virtual ~CWaveBufferQueue();

double ConsumeSample(); int ListTo(LPCTSTR lpFileName);

public: ULONG GetFreeBufferNumber(); ULONG GetDataBufferNumber(); CWaveBuffer *GetFreeBuffer(); CWaveBuffer *GetFreeBufferList(); CWaveBuffer *GetDataBuffer(); CWaveBuffer *GetDataBufferList();

void EnqueueFreeBuffer(CWaveBuffer *pBuffer); void EnqueueDataBuffer(CWaveBuffer *pBuffer); public:

void EnterCriticalSection() {

while(m_FreeListDenial); m_FreeListDenial = 1; while(m_UsedListDenial); m_UsedListDenial = 1; }

void EnterFreeListSection() { while(m_FreeListDenial); m_FreeListDenial = 1; } void LeaveFreeListSection() { m_FreeListDenial = 0; }

void EnterUsedListSection() { while(m_UsedListDenial); m_UsedListDenial = 1; } void LeaveUsedListSection() { m_UsedListDenial = 0; }

};

Bảng 5-5. Lớp CWaveBufferQueue

Vùng đệm mà chúng tôi thiết kế có số khối dữ liệu cố định và độ dài của mỗi khối cũng cố định. Các thông số này có thể được thay đổi khi không có quá trình nhận dạng, nhưng giữ cố định khi công việc nhận dạng đang tiến hành. Phát sinh triển khai này không nằm ngoài những gì mà các nhà lập trình hệ thống đã đưa ra. Chúng tôi chỉ sử dụng lại giải pháp của họ.

5.2.3. Chuyển đổi trạng thái trực tuyến

Trong phân tích cú pháp, trạng thái được chuyển thông qua việc đưa từ vào sơ đồ chuyển trạng thái đẩy xuống. Mỗi khi có từ được nhận dạng, từ điển mẫu để nhận dạng từ tiếp theo sẽ được thay đổi. Việc thay đổi từ điển dựa vào trạng thái hiện tại và từ vừa mới nhận.

Trong nhận dạng trực tuyến, cụ thể hơn là trường hợp soạn thảo bằng giọng nói, chúng tôi chuyển trạng thái hiện tại, cũng là từ điển mẫu hiện tại, bằng cách gửi một thông điệp cho khung làm việc của hệ nhận dạng. Khung làm việc sẽ chịu tránh nhiệm phản ứng lại và thay đổi trạng thái. Cách làm như vậy không những đơn giản hoá công việc chuyển trạng thái mà còn không làm thay đổi thủ tục nhận dạng.

5.2.4. Huấn luyện trực tuyến và huấn luyện hàng loạt

Trong hầu hết các nghiên cứu về lĩnh vực học máy, việc huấn luyện thường được thực hiện trên một cơ sở dữ liệu hoặc một bảng dữ liệu đã được lưu trữ sẵn trong máy. Do đó bộ huấn luyện thường hoạt động độc lập với bộ nhận dạng, nên bộ nhận dạng có kích thước nhỏ. Và bộ huấn luyện có vai trò chuyển từ dữ liệu thô thành cơ sở tri thức. Bộ nhận dạng hoạt động trên cơ sở tri thức đã được chuyển đổi đó. Cách này được áp dụng trong giai đoạn đầu nghiên cứu của chúng tôi. Mặc dù cách này có ưu điểm là dễ dàng triển khai (không cần giao diện) và có thể huấn

luyện được hàng loạt (nhiều tập tin cùng một lượt huấn luyện). Nhưng cách này tỏ ra không thân thiện với người sử dụng. Chính vì vậy chúng tôi áp dụng phương pháp huấn luyện trực tuyến.

Phương pháp huấn luyện trực tuyến cho phép người dùng ghi âm và thêm vào cơ sở tri thức ngay trên hộp thoại. Mặc dù phương pháp huấn luyện trực tuyến không cho phép chúng ta huấn luyện nhiều tập tin một lúc, nhưng nó có rất nhiều lợi điểm. Thứ nhất, nó rất gần gũi với người dùng do mọi người dùng máy tính đều rất quen với hộp thoại. Thứ hai, nó cho thấy kết quả ngay do chúng ta có thể huấn luyện rồi nhận dạng trên cơ sở tri thức mới. Thứ ba, nó không cần lưu một lượng dữ liệu trung gian như âm thanh và nhãn, đây là lượng dữ liệu không nhỏ do bản thân mỗi tập tin đa phương tiện là rất lớn. Và thứ tư, chúng ta không cần nhiều các công cụ trung gian và các thao tác trung gian như đánh nhãn, ghi âm, huấn luyện. Tất cả được tích hợp trong một chương trình, cụ thể hơn là trong một tập tin thi hành.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải quyết vấn đề nhận dạng tiếng Việt bằng phân tích cú pháp (Trang 91 - 94)

Tải bản đầy đủ (PDF)

(107 trang)