Từ điển tiếng Việt của VLSP được xây dựng dưới dạng XML. 1 vài thao tác bằng Python để xử lý định dạng XML, qua đó sẽ dễ dàng chuyển sang định dạng mình mong muốn. """ Convert Vietnamese Dic from XML format to CSV format """ import os, os.path from xml.etree.ElementTree import * Từ điển từ VLSP được chia thành các file nhỏ hơn, theo kí tự đầu tiên. Tổng cộng có 22 file nhỏ hơn. Sử dụng Python để lấy tên tất cả các file nhỏ : dir_path = "" # Đường dẫn đến thư mục chứa các file từ điển print os.listdir(dir_path) fjoin = os.path.join # Nên dùng hàm này thay vì sử dụng cộng 2 chuỗi filenames = [fjoin(dir_path, f) for f in os.listdir(dir_path)] XML của từ điển có dạng : <Document> <Entry> <HeadWord>a</HeadWord> <Morphology> <WordType>symbol</WordType> </Morphology> <Syntactic> <Category>N</Category> <SubCategory>Nt</SubCategory> </Syntactic> <Semantic> <def>con chữ thứ nhất của bảng chữ cái chữ quốc ngữ</def> </Semantic> </Entry> Thẻ <HeadWord> miêu tả "từ". Thẻ <Morphology> miêu tả "chủng loại" của từ : từ đơn, từ ghép, từ láy,... Thẻ <Syntactic> miêu tả "từ loại" : danh từ, tính từ, ... Gồm 2 loại : <Category>+<SubCategory>. Các thẻ khác không quá quan trọng. for filename in filenames : fo = open("VietnameseDic.csv","a") tree = parse(filename) elem = tree.getroot() for entry in elem.getiterator("Entry"): headword = entry.findtext("HeadWord") label = entry[2].findtext("Category") sublable = entry[2].findtext("SubCategory") 1 vấn đề đáng tiếc là không có sự thống nhất về nhãn từ loại giữa corpus và từ điển. Corpus sử dụng bộ nhãn gồm 18 nhãn, trong khi từ điển sử dụng bộ nhãn gồm 28 nhãn (tính cả các nhãn phụ). Biến label và sublabel, bạn nên thay đổi sao cho phù hợp. Với từ điển label (Category) có tổng cộng 13 loại, sublabel (SubCategory) có tổng cộng 28 loại. |