Wikipedia:Dự án/Phát sinh thể loại bán tự động

Dự án phát sinh thể loại bán tự động dành cho Wikipedia tiếng Việt. Đây là lần đầu tiên tiếng Việt có dự án tại Meta. Thông qua dự án, tôi hi vọng Wikipedia ngày càng phát triển hơn nữa về nội dung cũng như kiến trúc thể loại.  A l p h a m a  Talk 06:37, ngày 4 tháng 2 năm 2016 (UTC)

Thông tin dự ánSửa đổi

Tóm tắtSửa đổi

Phát sinh bán tự động các thể loại tại Wikipedia bằng các tập luật ngữ nghĩa được dịch từ thể loại tiếng Anh và dựa vào cấu trúc thể loại sẵn có ở tiếng Anh kết hợp các tiêu chuẩn về thể loại ở tiếng Việt. Xem thêm tại meta.

Các quá trình thực hiệnSửa đổi

  • Thu thập mẫu ngữ nghĩa thể loại (NLP Patterns)  Y
  • Thảo luận về quy ước đặt tên  Y
  • Thu thập các thể loại có liên kết ngoại ngữ  Y
  • Tái cấu trúc thể loại đã có dựa theo quy ước đặt tên, sửa vấn đề cha con, sửa thể loại đổi hướng
  • Tạo thể loại mới và thêm các thể loại này vào các bài dựa vào các mẫu ngữ nghĩa và quy ước về thể loại  Y
  • Nhận phản hồi, sửa lỗi, tổng hợp

Tiến độSửa đổi

Công cụSửa đổi

  • Translation tool: C# (Regular Expression, StringHelper, List..), Visual Studio 2013, SQL Server 2008 R2, WordNet tiếng Anh, API Wikdata, API English Wikipedia, API Vietnamese Wikipedia.
  • Connect interlinks at Wikidata: Python 3.5.*, DOS
 
Kết nối Interlinks cho các thể loại trên Wikidata của AlphamaBot

Cơ sở dữ liệuSửa đổi

Chương trình sử dụng 1 cơ sở dữ liệu đệm gồm hơn 48000 thể loại và hơn 5000 trang có liên kết ngoại ngữ với tiếng Anh. Mục đích của database này là nhằm tăng tốc độ dịch thay vì phải lấy kết quả qua API ở Wikipedia và Wikidata thông tin Internet. Cơ sở dữ liệu nên được cập nhật liên tục để đồng bộ tên thể loại và tên trang, tuy nhiên sự thay đổi tên thể loại ở Wikipedia được đánh giá là có tần suất rất thấp.

Cơ chế thực hiệnSửa đổi

Đầu tiên dựa vào các mẫu thể loại (NLP Patterns) phân tích được từ tiếng Anh, chúng ta sẽ dịch các mẫu này sang tiếng Việt tương ứng. Sau đó, với mỗi thể loại tiếng Anh, chúng ta xác định xem thể loại thuộc vào mẫu nào, dịch sang tiếng Việt, các cụm từ tương ứng sẽ lấy từ Wikidata. Quá trình dịch sẽ dừng lại bất cứ khi nào không thể tìm được cụm từ tương đương ở Wikidata, khi đó cụm từ đang dịch sẽ mặc định trả về kết quả rỗng.

thể loại đầu vào ---> phân tích mẫu ---> dịch các thành phần con của mẫu từ Wikidata, Wikipedia ---> kết hợp các thành phần kết quả ---> so khớp các mẫu trước, thay thế cụm từ cho phù hợp ---> kết quả cuối cùng

Trong chương trình, các mẫu được phân loại làm 3 mẫu chính: basic pattern, preposition pattern và compoundnoun pattern.

Các mẫu dịchSửa đổi

Basic pattern (mẫu cơ bản)Sửa đổi

Basic pattern hay còn gọi là mẫu cơ bản, mẫu hạt nhân, tức là mẫu này được dịch trực tiếp từ cụm từ của tên bài viết chính. Độ dài mẫu này có thể tùy ý, với chiều dài tối thiểu là 1 ký tự. Thông thường mẫu này là 1 từ hoặc cụm từ ngắn.

Ký hiệu mẫu này:

Ví dụ

Preposition pattern (mẫu giới từ)Sửa đổi

Đây là mẫu có chứa giới từ như in, on, of, from, about, at, ... bắt buộc phải ở vị trí giữa. Độ ngắn dài của mẫu này không quan trọng. Số lượng giới từ có thể tùy ý, nhưng bắt buộc phải ở vị trí ở giữa. Dựa vào vị trí giới từ mà chương trình nhận diện để tách làm các mẫu con nhỏ hơn như: mẫu giới từ con, mẫu cơ bản con hay mẫu cụm danh từ con.

Ký hiệu:

Ví dụ

Compound noun patternSửa đổi

Mẫu cụm danh từ không chứa bất kỳ giới từ nào cũng như không thể diễn dịch từ tên của bất kỳ bài viết chính nào ở Wikipedia. Mẫu này thường được ký hiệu:

Ở tiếng Việt, mẫu này sẽ được đảo ngược cho với tiếng Anh do để phù hợp với ngữ pháp và cách hành văn.

Ví dụ

Mẫu này có chứa 1 số trường hợp dị biệt khác, đôi khi không phải là đảo ngữ mà dịch thẳng theo thứ tự giống tiếng Anh, đôi khi phải thêm giới từ do trường hợp sở hữu cách hoặc đôi khi không thể dịch được do cụm danh từ có chứa tính từ ở đằng trước.

Ví dụ
  • en:Category:John Cale albums là cụm danh từ với 2 cụm: John Cale và albums. Khi dịch sang tiếng Việt, 2 cụm này tương ứng là John Calealbum. Dùng đảo vị trí, ở tiếng Việt trở thành Thể loại:Album John Cale, tuy nhiên đây là thể loại chưa chính xác, vì trong trường hợp này John Cale được xác định là cụm danh từ riêng chỉ người (person -> musician -> singer) vì vậy thể loại chính xác phải là Thể loại:Album của John Cale.

Year/Decade patternSửa đổi

Các mẫu chứa năm hoặc thập niên được gọi là mẫu năm/thập niên. Mẫu này được ký hiệu:

Trong chương trình dịch, X chỉ từ 1000 đến 3000 để tránh các thể loại do các năm về trước rất ít có thể loại con.

Ví dụ

Các mẫu kết hợp và các mẫu đa dạng khácSửa đổi

Thể loại có thể phân tích thành rất nhiều mẫu phức tạp khác nhau, chương trình chỉ liệt kê 1 vài mẫu chính để tăng độ chính xác khi dịch tên thể loại từ tiếng Anh sang tiếng Việt. Các mẫu này đôi khi là sự kết hợp của nhiều mẫu (mẫu kết hợp, mẫu phức) đã trình bày ở trên. Thứ tự ưu tiên dịch mẫu là: mẫu năm > mẫu giới từ > mẫu danh từ > mẫu cơ bản. Kết quả của mẫu kết hợp chứa năm đôi khi được đảo ngược để mang tính dễ đọc trong tiếng Việt.

Ví dụ
  • en:1984 in LGBT rights được xem là mẫu kết hợp. Như vậy chúng ta ưu tiên năm trước do đó "1984" dịch thành "năm 1984". Ngoài ra, vì có giới từ cho nên cụm "1984 in LGBT rights" tách thành 3 cụm con: 1984 (đã dịch là năm 1984), in và LGBT rights. Giới từ "in" mặc định là "ở". Cụm "LGBT rights" được xác định là cụm danh từ vì vậy tách thành 2 cụm con nữa là: "LGBT" và "rights" tương ứng "LGBT" và "quyền" trong tiếng Việt. Vì cụm "LGBT rights" là cụm danh từ nên trong tiếng Việt đảo ngữ thành "quyền LGBT". Ghép với các mẫu trên được kết quả "năm 1984 ở quyền LGBT", tuy nhiên cụm từ không phù hợp với tiếng Việt, vì vậy cụm được đảo thành Quyền LGBT năm 1984 là kết quả cuối cùng.

Chương trình hạn chế dịch các mẫu kết hợp, vì việc dịch có thể phức tạp, mang tính đặc trưng từng trường hợp. Hơn nữa, mẫu kết quả có thể không chính xác như việc dịch các mẫu khác.

NameAnalysis và Similar CategoriesSửa đổi

Mỗi thể loại được phân tích thành các mẫu, mỗi thành phần của mẫu được dịch và lưu trữ ở trường NameAnalysis để các thể loại sau tương tự dựa vào đó để dịch nhằm tăng độ chính xác. Theo đó mỗi thể loại cũng đi kèm các thể loại tương tự tạo thành 1 nhóm các thể loại tương tự, nhóm này đóng vai trò điều tiết cách dịch và giữ sự đồng bộ các cụm từ khi dịch.

Ví dụ
 
Các thể loại tương tự của thể loại "Vùng đô thị Pakistan" được sắp xếp theo điểm từ cao đến thấp (1-0)

Replacement và BlackListSửa đổi

Replacement là sự thay thế cụm từ để có kết quả dịch cuối cùng mang tính hoàn hảo hơn. Đôi khi chúng ta không thể nào xử lý từng trường hợp riêng biệt mà xử lý trên diện rộng để mang lại hiệu quả cao nhất. Ví dụ giả sử en:Category:Science in 1900 dịch thành Thể loại:Khoa học ở năm 1900 theo đúng thứ tự dịch, ở đây chúng ta có thể thay " ở năm " thành " năm " để thể loại trở thành tên là "Khoa học năm 1900" mang tính dễ đọc.

Một số thể loại được dịch thành rất nhiều cách trong tiếng Việt và phụ thuộc quá nhiều vào trình độ của người dịch, do đó chương trình không nhận diện được sự khác biệt này, vì vậy tốt nhất là bỏ qua các thể loại này bằng cách thêm vào danh sách đen (BlackList).

Tái cấu trúc thể loại (Restructure category taxonomy)Sửa đổi

Theo thảo luận về quy ước tên thể loại ở Wikipedia thì cộng đồng đã thống nhất 2 điểm chính về cách đặt tên ở Wikipedia đó là:

Dựa theo các quy ước tên thể loại, quá trình này sẽ tái cấu trúc tên và thể loại ở Wikipedia tiếng Việt. Theo đó thực hiện các bước chính sau đây.

Bước 1. Chỉnh tên thể loại theo quy ướcSửa đổi

  • Chỉnh thể loại về năm: bất cứ thể loại nào có số năm thường là 4 con số, thì thêm chữ "năm" ở đầu. Ví dụ: Thể loại:Khoa học 1990 thì đổi thành Thể loại:Khoa học năm 1990. Trong chương trình, có thể chỉnh tên thể loại tự động hoặc bằng tay, giá trị thể loại mới được ghi vào trường FixedVietnameseTitle. FixedVietnameseTitle là tên của 1 thể loại được sửa chữa trong quá trình tái cấu trúc thể loại nếu tên loại này không đúng chuẩn.
 
Sửa thể loại "Sinh 1900" thành "Sinh năm 1900" để đúng theo chuẩn, sau đó thể loại này được tái cấu trúc danh mục, sửa tên ở Wikipedia, liên kết ngoại ngữ Wikidata bằng Bot

Bước 2. Tạo thể loại theo tên mới, đổi hướng thể loại cũ sang thể loại mớiSửa đổi

Quá trình này sẽ được thực hiện bởi bot

Bước 3. Chỉnh tên thể loại cũ thành tên thể loại mới các thể loại/trang cha, con của thể loại cũSửa đổi

Quá trình này sẽ được thực hiện bởi bot

Các phần phụSửa đổi

PreferedNameSửa đổi

PreferedName là tên ưa thích của 1 thể loại, trang khi dịch. Ví dụ: Thể loại:Địa lý học có tên ưa thích là địa lý chứ không dùng địa lý học cho quá trình dịch.

ScoreSửa đổi

Score là trường ghi nhận điểm số khớp dựa vào tên 2 thể loại bằng tiếng Anh lẫn tiếng Việt bằng các thuật toán ngữ nghĩa dựa vào WordNet. Giá trị của Score từ 0 đến 1. Với Score=1 thì tức là tên thể loại chính là tên bài viết chính.

Chương trình chỉ lấy những mẫu dịch có Score > 0.5 tức là khớp quá bán. Lý do là với mỗi tên thể loại thì nó là duy nhất ở Wikipedia, vì vậy những thể loại khác chỉ có thể khớp với thể loại đã có theo từng phần của mẫu thể loại.

Ví dụ: A = Thể loại:Tại nạn ở Việt Nam thì sẽ khớp quá bán (0.5) với B = Thể loại:Tại nạn ở Lào. Hai thể loại này đều được phân tích thành thành phần con: A = Tại nạn; ở; Việt NamB = Tại nạn; ở; Lào như vậy nếu so khớp thông thường thì khớp 2/3 với 2 thành phần đầu tiên giống, dùng các thuật toán thì ra được chỉ số khớp 0.87 vì tính theo chiều dài chuỗi, khoảng cách, số từ, cụm từ tương ứng (Việt Nam tương ứng Lào nếu xét ở phạm vi danh từ riêng, ...).

Kết quả đạt đượcSửa đổi

  • Tìm hiểu quy ước tên thể loại, cách tổ chức cấu trúc thể loại ở Wikipedia Tiếng Việt
  • Tổ chức các cuộc thảo luận trong dự án và tăng cường sự chú ý của các biên tập viên, kết nối cộng đồng với nhau
  • Công cụ Alphama Tool hỗ trợ dịch tên thể loại
  • Tác giả đã học hỏi được nhiều phương pháp, kỹ thuật xây dựng chương trình, tổ chức cơ sở dữ liệu, triển khai thu thập thông tin và nhập liệu vào Wikipedia, Wikidata. Ngoài ra, tác giả cũng sử dụng kết hợp nhiều kiến thức về các công nghệ, ngôn ngữ lập trình công cụ liên quan
  • Hiện tại, 5000 thể loại mới hoặc nhiều hơn được tạo mới ở Wikipedia tiếng Việt kèm theo hàng chục nghìn các triple

Các khó khăn trong dự ánSửa đổi

Wikipedia Tiếng Việt vẫn còn thiếu các biên tập viên có năng lực chuyện sâu ở nhiều lĩnh vực, khiến quá trình thống nhất về quy ước tên thể loại khá lâu. Sự thiếu kinh nghiệm của tác giả trong quá trình thực hiện, tổ chức dự án. Số lượng thành viên tham gia góp cho thể loại chỉ ở mức chấp nhận được, tuy nhiên dự án cần có nhiều ý kiến đóng góp hơn nữa để nâng cao chất lượng đầu ra.

Chương trình dịch thể loại chủ yếu lấy và cập nhật dữ liệu thông qua các API ở WikidataWikipedia, do đó việc có đường truyền Internet mạnh và ổn định sẽ giúp ích rất nhiều trong việc tải dữ liệu và thiết lập dữ liệu ban đầu cho dự án.

Nhận xét, đánh giá của các thành viên ở Wikipedia Tiếng ViệtSửa đổi

  • Xin ghi nhận xét, đánh giá về dự án, thảo luận về tên thể loại, cấu trúc thể loại và các vấn đề liên quan ở bên dưới.