Bước 1: Từ kho dữ liệu gồm các file .seg, ta tạo ra:
Từ điển Dict, file từ điển này có cấu trúc như sau:
(key_word + <tab> + ':' + word_total + <tab> + list_of_docs)
Trong đó key_word dùng làm khóa, cặp ký tự <tab> + ':' là dấu hiệu ngăn cách giữa khóa và value, các thành phần còn lại (sau dấu ':') là value.
Từ điển này được thể hiện bằng một danh sách gồm các cặp (key, value): Key: danh sách các từ khóa (key_word).
Value: Gồm số lần xuất hiện của từ đó và danh sách các file .seg có chứa từ đó (cách nhau bằng dấu chấm phảy). Lấy các thành phần này ra thì cần qua thao tác bóc tách.
Hình 4: Một phần của từ điển Dict
Như vậy sau mỗi từ khóa sẽ đến một dấu tab, đến dấu hai chấm rồi đến tổng số lần xuất hiện của từ đó trong tất cả các file tài liệu, tiếp đến lại là một dấu tab và cuối cùng là danh sách các file tài liệu có chứa từ đó.
Danh sách các file đã xử lý (lưu vào tệp processed_files.txt). Mục đích tạo ra file này là để lấy tổng số các tài liệu mà dữ liệu đã được phân tích xử lý để đưa vào từ điển Dict, phục vụ cho việc tính độ tương tự trong phần sau. Lưu lại danh sách này cũng để xác định xem nếu có một file mới đưa vào để phân tích thì kiểm tra xem file đó đã được xử lý hay chưa.
Bước 2: Dựa vào từ điển Dict.txt, ta trích xuất ra tất cả các từ ghép và lưu vào từ điển CompoundWords, theo đó CompoundWords là bao gồm tất cả các từ ghép xuất hiện trong kho dữ liệu .seg.
Hình 6: Một phần của từ điển các từ ghép
Bước 3: Kết hợp từ điển CompoundWords và SameMeaning ta được từ điển CompoundDict (dùng để tách văn bản thành các từ độc lập). Từ điển này có cấu trúc gồm 2 phần:
Key: danh sách các từ khóa
Value: các số nguyên, giá trị này dùng để xác định các từ đồng nghĩa. Các từ có cùng giá trị Value thì tương tự nhau về nghĩa.
Một phần của từ điển CompoundDict như sau: