Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Đối phó với tên cột dữ liệu tiếng Nhật

Cong
November 23, 2021

Đối phó với tên cột dữ liệu tiếng Nhật

Dữ liệu dự án có nhiều tên cột tiếng Nhật. Làm thế nào để các thành viên biết và không biết tiếng Nhật cùng làm việc hiệu quả trên dữ liệu này?

Cong

November 23, 2021
Tweet

Other Decks in Programming

Transcript

  1. Đối phó với tên cột tiếng Nhật Dữ liệu dự

    án có nhiều tên cột tiếng Nhật. Làm thế nào để các thành viên biết và không biết tiếng Nhật cùng làm việc hiệu quả trên dữ liệu này? Cùng làm việc hiệu quả có nghĩa là có thể đọc được source code do người khác viết, và có thể hội thoại một cách trơn tru. Ở đây chúng ta đề cập về tiếng Nhật như là một tượng trưng cho một ngôn ngũ mà toàn thể đội dự án, đặc biệt là chuyên gia lập trình, phân tích dữ liệu và học máy không thông thạo. Tokyo 23/11/2021, Võ Chí Công
  2. Table of Contents Đối phó với tên cột tiếng Nhật

    Vấn đề khi sử dụng tên tiếng Nhật Chuẩn hoá bằng tên tiếng Anh Báo cáo dùng tên cột tiếng Nhật Tóm lại
  3. Hơn nữa, mỗi lần khách hàng cung cấp dữ liệu

    cập nhật, các tên cột thỉnh thoảng lại bị thay đổi. Làm thế nào để đối phó một cách linh động với sự thay đổi tên cột ở bước tiền xử lý, để không cần phải thay đổi source code trong các công đoạn phân tích, học và dự đoán dữ liệu? Cuối cùng làm thế nào để có thể làm báo cáo với tên cột là các thuật ngữ tiếng Nhật chuẩn? Thuật ngữ chuẩn ở đây có nghĩa là tuân theo quy định mới nhất trong dự án về cách gọi tên cột, vì trong quá trình xúc tiến dự án, tên cột có thể bị thay đổi nhiều lần.
  4. Vấn đề khi sử dụng tên tiếng Nhật Chúng ta

    cùng nhìn nhận những vấn đề cụ thể sẽ gặp phải khi xử lý dữ liệu một cách trực tiếp đối với các tên cột tiếng Nhật. Lấy ví dụ đơn giản, giả sử chúng ta có một bảng dữ liệu cá nhân (danh sách đội hình thỉnh kinh Tây Du Ký) df_in chỉ có hai cột là tên và tuổi. df_in "孫 悟空" 22 "猪 八戒" 19 "沙 悟浄" 18 "玄奘 三蔵" 30 = 1 2 3 4 名 歳
  5. Chúng ta háo hức muốn bắt tay vào phân tích

    dữ liệu ngay. Rất nhanh chóng, nhiều đoạn code viết 名 và 歳 sinh sôi nảy nở. Tôi đã đọc nhiều Jupyter notebooks do người Nhật hoặc người Việt viết mà trong đó có rất nhiều tên biến (hay cột dữ liệu, features, index) là tiếng Nhật. Những vấn đề phát sinh: 1. Trong source code có tiếng Nhật vào nhìn rối rắm. Những người không biết tiếng Nhật nhìn vào code có tiếng Nhật có lẽ sẽ cảm thấy như bị mù. 2. Những lập trình viên chuyên nghiệp thích gõ phím nhanh mà không cần chuyển bàn phím Nhật/Anh chỉ để gọi tên biến. Chức năng code completion của editor cũng chỉ hỗ trợ cho tiếng Anh. 3. Nhiều khi tên tiếng Nhật gốc hoặc có ý nghĩa không rõ ràng, hoặc quá ngắn gọn, hoặc quá chi tiết, nói chung là tên gọi không được tốt.
  6. Chuẩn hoá bằng tên tiếng Anh Để tránh những vấn

    đề trên, chúng ta nên có một bước tiền xử lý, sử dụng thống nhất một mapping names_j2e để chuyển đổi các tên cột từ tiếng Nhật sang tiếng Anh. Trong bước này chú ý: 1. Chuẩn hoá các tên cột tiếng Anh. Các tên cột này sẽ là xương sống xuyên suốt các bước phân tích, học và dự đoán dữ liệu. Về nguyên tắc chỉ thay đổi tên cột tiếng Anh khi bản chất của cột dữ liệu tương ứng đã thay đổi. 2. Cho phép mapping nhiều tên cột tiếng Nhật khác nhau lên cùng một tên cột tiếng Anh duy nhất. Trong quá trình xúc tiến dự án, tên tiếng Nhật có thể thay đổi và được bổ sung vào danh sách mapping. names_j2e OrderedCollections.OrderedDict{Symbol, Symbol}( :フルネーム => :full_name :名 => :full_name :氏名 => :full_name :歳 => :age :年齢 => :age ) =
  7. Sau bước tiền xử lý, chúng ta có bảng dữ

    liệu df_work chỉ sử dụng các tên cột tiếng Anh đã chuẩn hóa. Bảng này dùng cho các bước phân tích, học và dự đoán dữ liệu, thuận tiện cho hội thoại giữa các team members, tốc độ viết code cũng nhanh hơn. Sự thay đổi tên cột tiếng Nhật được hấp thu ở bước tiền xử lý, không ảnh hưởng đến code ở những bước quan trọng sau đó. df_work "孫 悟空" 22 "猪 八戒" 19 "沙 悟浄" 18 "玄奘 三蔵" 30 = 1 2 3 4 full_name age
  8. Báo cáo dùng tên cột tiếng Nhật Khi làm báo

    cáo cho khách hàng, đương nhiên các tên cột dữ liệu phải là tiếng Nhật. Hơn nữa, phải là tiếng Nhật chuẩn theo qui định mới nhất của dự án, bất kể tên cột đó ở đầu vào đã có thể thay đổi nhiều lần, hoặc thậm chí có thể vẫn đang ở tình trạng không chuẩn (chưa được cập nhật). df_out "孫 悟空" 22 "猪 八戒" 19 "沙 悟浄" 18 "玄奘 三蔵" 30 = 1 2 3 4 氏名 年齢
  9. Để đưa các tên cột tiếng Anh mà đội dự

    án sử dụng về tên cột tiếng Nhật chuẩn, chúng ta cần duy trì một mapping names_e2j chuẩn. Mapping này được tính ra từ mapping names_j2e ở trên, nhưng không cần chứa thông tin về các trường hợp không chuẩn. names_e2j OrderedCollections.OrderedDict{Symbol, Symbol}( :full_name => :氏名 :age => :年齢 ) =
  10. Tóm lại Nguyên tắc xử lý tên cột dữ liệu

    tiếng Nhật 1. Tiền xử lý: chuyển đối tên cột tiếng Nhật về tên tiếng Anh chuẩn. 2. Phân tích, học, dự đoán dữ liệu: chỉ sử dụng tên cột tiếng Anh chuẩn. 3. Xuất báo cáo: chuyển tên cột về tên tiếng Nhật chuẩn. Links: Tên biến tiếng Nhật trong phân tích dữ liệu và học máy Julia sample code Pandas/Python sample code: TBA
  11. rename_j2e (generic function with 1 method) rename_e2j (generic function with

    1 method) page_break (generic function with 1 method)