4.1.1.Thu thập dữ liệu
Dữ liệu cho thực nghiệm gồm trên 3500 file được lấy từ website
www.vietnamnet.vn/ trong các mục “kinhte”, “thegioi” bởi vì những mục này sẽ có nhiều
bài viết về các tổ chức. Chương trình chỉ quan tâm tới dữ liệu text bên trong mỗi file, do đó trước khi thực hiện rút trích tên thực thể, file dữ liệu được lọc tách hết các thẻ html cũng như javascript.
4.1.2. Xây dựng PrefixPattern (Initial)
Phương pháp trích chọn ở đây chỉ là học gần không giám sát, nó dựa vào đặc điểm của thực thể cần rút trích là được biểu diễn theo một định dạng nhất định. Sinh được một PrefixPattern tốt cũng đồng nghĩa với việc rút trích được nhiều thực thể chính xác. Ngược lại, từ tập thực thể chính xác sẽ sinh ra được những PrefixPattern mới tốt. Do đó xây dựng PrefixPattern khởi tạo là hết sức quan trọng, nó có ý nghĩa lớn đối với chất lượng, độ chính xác của thực nghiệm. Thực nghiệm sẽ thay đưa ra những PrefixPattern khác nhau, từ kết
quả thu được sẽ rút ra được mẫu nào là tốt nhất. Qua khảo sát, nhận thấy PrefixPattern ban đầu: “phòng|cục|công ty|cty|tập đoàn” là tốt nhất. Mẫu này được lưu trong file “prefixPattern0.txt”. Số 0 thể hiện mẫu ở vòng lặp đầu tiên, với mỗi vòng lặp tiếp theo giá trị sẽ lần lượt là 1, 2…
4.1.3. Xây dựng các Luật (Rule)
Các Rules được dùng trong quá trình “cắt tỉa” tên thực thể như đã được trình bày ở trên.
4.1.3.1. LeftRule
Là tập hợp các “từ, cụm từ” mà nếu chúng xuất hiện trong tên thực thể thì tên thực thể sẽ được “cắt tỉa” và lấy phần ký tự từ đầu đến trước “từ, cụm từ” đó. Tập hợp các “từ, cụm từ” này được lưu trong file “rule\\leftRule.txt”. Có thể liệt kê một số các từ như : “tại, ở, sang, …”.
4.1.3.2. RightRule
Tập các từ, cụm từ “liên kết”. Tên thực thể sẽ được rút trích từ vị trí các từ, cụm từ này đến hết xâu của tên thực thể ban đầu. File “rule\rightRule.txt” dùng để lưu trữ tập các từ, cụm từ “liên kết”.
Ví dụ như các từ : “như, là, gồm …”.
4.1.3.3. DiscardName
File “rule\discardName.txt” chứa tập các tên không thích hợp đối với tên tổ chức. Nếu chương trình đoán nhận được tên nào trùng với một trong các tên trong “rule\discardName.txt” thì xem như không hợp lệ.
Ví dụ liệt kê một số tên Quốc gia hoặc những từ thường đi kèm (bổ sung thông tin) cho tổ chức: ”Việt Nam, Trung Quốc …, TNHH, CP, …”.
4.2. Môi trường thực nghiệm 4.2.1. Phần cứng
Bảng 3 : Môi trường phần cứng Thành phần Chỉ số
CPU Intel Pentium Dual E2180 2.0GHz RAM 1 GB Bộ nhớ ngoài 160GB 4.2.2. Phần mềm Bảng 4: Môi trường phần mềm Thành phần Chỉ số
OS WindowsXP Service Pack 2 IDE eclipse-SDK-3.4.1-win32
4.3. Kết quả thực nghiệm
Kết quả thực nghiệm phụ thuộc rất nhiều vào PreifxPattern ban đầu đưa vào và các luật để cắt tỉa tên. Nếu như lựa chọn được một PrefixPattern ban đầu tốt, thì số lượng cũng như “chất lượng” của các thực thể rút trích được sẽ rất tốt ngay ở vòng lặp đầu tiên . Dẫn đến những kết quả khả quan ở các vòng lặp tiếp theo. Cũng như càng đưa ra nhiều luật cắt tỉa, thì độ chính xác sẽ càng cao, nhưng cũng đồng nghĩa với số lượng các thực thể rút trích được sẽ giảm đi. Và ngược lại, một PrefixPattern không tốt, hay lượng luật cắt tỉa đưa ra không chính xác, số lượng thực thể rút trích được sẽ lớn, nhưng chất lượng càng xấu ở các vòng lặp tiêp theo …
Trong thực nghiệm này, do không biết được chính xác tập R = { tất cả các thực thể tên tổ chức }, do đó không thể tính được giá trị “độ hồi tưởng” (recall). Chỉ dùng một chỉ số duy nhất là độ chính xác (precision) để đánh giá chất lượng của thực nghiệm. Độ chính xác được xác định theo :
Độ chính xác :
R’ = {chọn ngẫu nhiên một số lượng các thực thể từ R – trong thực nghiệm |R’| = 100}
R’’ = {các thực thể trong R’ được kiểm định là chính xác} |R| = số lượng các phần tử trong R.
Để lấy kết quả đưa vào bảng, với mỗi lần kiểm tra độ chính xác, em thực hiện lấy 3 lần. Lấy giá trị trung bình của 3 lần đó làm số liệu cuối cùng.
Em đã thực hiện thực nghiệm nhiều lần, với những thay đổi khác nhau về PrefixPattern ban đầu, quy tắc cắt tỉa, ….và kết quả thu được tương đối khác nhau. Dưới đây em chỉ liệt kê một số thực nghiệm đại diện để mô tả tính chất của bài toán:
- Với lần thực nghiệm đầu tiên cho PrefixPattern là : “công ty|cty|tập đoàn” . Kết quả được cho như bảng bên dưới:
Bảng 5: Kết quả lần 1 Kếtquả Vòng lặp Số thực thể được rút trích Độ chính xác 1 2064 84.67% 2 299 84.33%
- Lần thực nghiệm thứ 2 giống như lần thứ 1, tuy nhiên đã “hạn chế” các luật cắt tỉa, cụ thể là loại đi bước cuối cùng trong quy trình cắt tỉa trình bày ở mục 3.4. Kết quả thu được là : Bảng 6: Kết quả lần 2 Kết quả Vòng lặp Số thực thể được rút trích Độ chính xác 1 2632 71.33% 2 13775 34.33%
- Lần thực nghiệm 3 PrefixPattern là “phòng|cục|công ty|cty|tập đoàn”, chọn ngưỡng là 10 kết quả:
Bảng 7: Kết quả lần 3 Kết quả Vòng lặp Số thực thể được rút trích Độ chính xác 1 2333 81.33% 2 299 84.33% 4.4. Nhận xét
Theo kết quả lần 1 và lần 3 cho thấy, khi tăng số phần tử trong PrefixPattern ban đầu thì số lượng các thực thể rút trích được ở vòng đầu cũng tăng. Tuy nhiên, độ chính xác cũng giảm đi một chút, kết quả đó có thể chấp nhận được. Đến vòng lặp thử 2 thì kết quả thu được giống nhau, là do PrefixPattern ở vòng 2 của 2 lần thực nghiệm giống nhau. Mặc dù thực nghiệm 3 có số thực thể ở vòng 1 nhiều hơn ở thực nghiệm 1, nhưng không “sinh” ra nhiều PrefixPattern mới hơn thực nghiệm 1. Như vậy có thể suy ra thực nghiệm chỉ có kết quả tốt ở 2 vòng đầu.
Kết quả lần 1 và lần 2 cho thấy vai trò của quy tắc cắt tỉa đối với chất lượng toàn bộ kết quả các vòng lặp. Cùng tham số đầu vào với lần thực nghiệm 1, chỉ giảm bớt quy tắc cắt tỉa, nhưng độ chính xác ở vòng 1 của thực nghiệm 2 đã giảm đi đáng kể. Kết quả kém ngay ở vòng thứ nhất càng kéo theo sự sai lệch ở các vòng tiếp theo … dẫn đến độ chính xác của toàn bộ quy trình sẽ rất thấp.
Kết Luận