download VietType - Bộ gõ tiếng Việt Open Source

  • Người tạo chủ đề Người tạo chủ đề nghiabros
  • Ngày bắt đầu Ngày bắt đầu
Lướt qua thì có vẻ bộ gõ này vận hành tương tự như bộ gõ telex mặc định của windows. Mà bộ gõ này sẽ không hoạt động tốt lắm khi sử dụng các ứng dụng cần suggestion, ví dụ khi tìm kiếm, sử dụng hàm excel, lệnh autocad,... và khi chơi game.
Có vẻ hiện nay vẫn phải trung thành với unikey vậy. Khi nào viet type có thể hoạt động mượt trong các trường hợp trên thì mới có người chuyển sang dùng.
 
Vốn dĩ cách này rất phổ biến trong tiếng Trung. Ko ai đi gõ Pinyin có dấu cả, họ chỉ gõ không dấu viết liền và bộ gõ sẽ trả về câu hoàn chỉnh. Và theo thói quen dùng chữ của từng người bộ gõ có thể cải thiện theo thói quen từ của người đó.

Có thể cải thiện thêm việc dùng dấu cách để ngắt câu, từ trong chuỗi dự đoán.

Pinyin nó đồng âm nhiều vậy còn dự đoán được ra hẳn chữ Hán. Gõ Pinyin không dấu -> đoán câu pinyin có dấu -> đoán ra chữ hán cần dùng (1 từ Pinyin có dấu có rất nhiều chữ Hán, 1 từ pinuin không dấu còn có nhiều chữ hán hơn). Thì dự đoán tiếng Việt dễ hơn rất nhiều. Chỉ đoán từ Tiếng việt không dấu -> tiếng việt có dấu.

Cách làm này cải thiện tốc độ và lỗi chính tả rất nhiều.
Nghe hay nhỉ, nhưng logic dự đoán như thế nào bác, có giải pháp nào cho vụ này không ?
 
Nghe hay nhỉ, nhưng logic dự đoán như thế nào bác, có giải pháp nào cho vụ này không ?
Tôi không biết thuật toán thế nào. Có lẽ dự đán dụa trên xác xuất nhiều điều kiện dựa trên các ký tự (chữ đã xuất hiện của loại ngôn ngữ đó) tương tự như cách AI tạo văn bản trả lời câu hỏi nhưng ở cấp đơn giản hơn.

Về logic ngôn ngữ thì vốn dĩ đâu phải từ nào ghép được với nhau thành có nghĩa đâu. Thử gõ không dấu trên Gooogle translate thì thấy, nó sẽ trả về từ có dấu đó, câu không dấu càng dài thì nó trả về càng đúng. Hoặc có thể hỏi ChatGPT, hỏi không dấu nó cũng sẽ convert sang có dấu để "hiểu" câu hỏi trước khi phản hồi đó. Nếu biết tiếng Trung thì thử bộ gõ Pinyin tích hợp trên Andorid, windows, iDevices sẽ thấy.

Còn thuật toán cụ thể thì ai hứng thú làm cái này thì kiểm tra xem bọn công cụ ngôn ngữ như AI, Google translate có cung cấp API không. Ko có thì phải tự build từ điển, tự train thuật toán thôi. Cho nó học vài văn bản tiếng việt là nó giỏi thôi. Haham
 
Tôi không biết thuật toán thế nào. Có lẽ dự đán dụa trên xác xuất nhiều điều kiện dựa trên các ký tự (chữ đã xuất hiện của loại ngôn ngữ đó) tương tự như cách AI tạo văn bản trả lời câu hỏi nhưng ở cấp đơn giản hơn.

Về logic ngôn ngữ thì vốn dĩ đâu phải từ nào ghép được với nhau thành có nghĩa đâu. Thử gõ không dấu trên Gooogle translate thì thấy, nó sẽ trả về từ có dấu đó, câu không dấu càng dài thì nó trả về càng đúng. Hoặc có thể hỏi ChatGPT, hỏi không dấu nó cũng sẽ convert sang có dấu để "hiểu" câu hỏi trước khi phản hồi đó. Nếu biết tiếng Trung thì thử bộ gõ Pinyin tích hợp trên Andorid, windows, iDevices sẽ thấy.

Còn thuật toán cụ thể thì ai hứng thú làm cái này thì kiểm tra xem bọn công cụ ngôn ngữ như AI, Google translate có cung cấp API không. Ko có thì phải tự build từ điển, tự train thuật toán thôi. Cho nó học vài văn bản tiếng việt là nó giỏi thôi. Haham
Ý tưởng của bác hay thật. Giống như 1 bộ gõ tắt được quy định sẵn ấy nhỉ.
 
Hóng tác giả làm bộ gõ mới siêu cấp vũ trụ. Đang xài gõ tắt của unikey nên chưa dùng của tác giả được
 
2 page ko có dc 1 hình demo, trang github cũng ko có demo thì ai mà muốn tải, tác giả có nghiêm túc không vậy
bYR9z4p.gif
 
Sửa lần cuối:
Z
Ý tưởng của bác hay thật. Giống như 1 bộ gõ tắt được quy định sẵn ấy nhỉ.
Nếu là bộ gõ tắt thì nó lại không linh hoạt lắm. Và chỉ trong phạm vi dựng sẵn. Nên dùng kiểu mô hình dự đoán hay hơn. Mô hình này nó đơn giản hơn nhiều.

Case: nó dự đoán từ xuất hiện dựa trên các từ đã xuất hiện trước đó.

Nhập ký tự A cho vị trí A1,
xác suất có điều kiện A1 cho vị trí A2 là chữ B xuất nhiện cao nhất 50%, chữ C cao thứ 2 48%,....​
chọn gợi ý B cho vị trí A2,​
và hiển thị tùy chọn (gõ tiếp số tương ứng là chọn câu gợi ý)​
1. AB​
2.AC​
3. ......​
Hoặc tự nhập tiếp ký tự thủ công thành AD chẳng hạn...​
Khi vị trí A1A2 đã được điền (ví dụ là AD) thì vị trí A3 được dự đoán tiếp dựa trên xác suất có 2 điều kiện A1 và A2 đồng thời sẽ là E cao nhất 40%, F cao thứ 2 là 38%,
Gợi ý tiếp cho câu A1A2A3 là​
1. ADE​
2.ADF​
3....​
Tiếp tục cho các vị trí sau A4 dựa trên xác suất 3 điều kiện (A1, A2, A3...) để tra về dự đoán. Dừng khi gõ enter hoặc dấu cách...​
Dùng vài văn bản tiến việt để train và sau học thêm thói quen người dùng là nuột ngay mà.​
Case:
Bộ gõ thì đơn giản và nhanh hơn. Vì nó như kiểu công cụ chuyển câu không dấu (có viết liền hoặc cách thì tùy) thành câu có dấu. Vì có thêm từ không dấu nên dự đoán từ có dấu sẽ xoay quanh từ không dấu này và các từ đã xuất hiện trước đó để tra về câu có dấu. Nên kết quả trả về sẽ chính xác hơn.
 
2 page ko có dc 1 hình demo, trang github cũng ko có demo thì ai mà muốn tải, tác giả có nghiêm túc không vậy
bYR9z4p.gif
Gửi thím cái hình demo :D
1746634614599.png

Vì lý do gì đấy mà thím ấy ngại tạo, mình đã gợi ý rồi.
Z

Nếu là bộ gõ tắt thì nó lại không linh hoạt lắm. Và chỉ trong phạm vi dựng sẵn. Nên dùng kiểu mô hình dự đoán hay hơn. Mô hình này nó đơn giản hơn nhiều.

Case: nó dự đoán từ xuất hiện dựa trên các từ đã xuất hiện trước đó.

Nhập ký tự A cho vị trí A1,
xác suất có điều kiện A1 cho vị trí A2 là chữ B xuất nhiện cao nhất 50%, chữ C cao thứ 2 48%,....​
chọn gợi ý B cho vị trí A2,​
và hiển thị tùy chọn (gõ tiếp số tương ứng là chọn câu gợi ý)​
1. AB​
2.AC​
3. ......​
Hoặc tự nhập tiếp ký tự thủ công thành AD chẳng hạn...​
Khi vị trí A1A2 đã được điền (ví dụ là AD) thì vị trí A3 được dự đoán tiếp dựa trên xác suất có 2 điều kiện A1 và A2 đồng thời sẽ là E cao nhất 40%, F cao thứ 2 là 38%,
Gợi ý tiếp cho câu A1A2A3 là​
1. ADE​
2.ADF​
3....​
Tiếp tục cho các vị trí sau A4 dựa trên xác suất 3 điều kiện (A1, A2, A3...) để tra về dự đoán. Dừng khi gõ enter hoặc dấu cách...​
Dùng vài văn bản tiến việt để train và sau học thêm thói quen người dùng là nuột ngay mà.​
Case:
Bộ gõ thì đơn giản và nhanh hơn. Vì nó như kiểu công cụ chuyển câu không dấu (có viết liền hoặc cách thì tùy) thành câu có dấu. Vì có thêm từ không dấu nên dự đoán từ có dấu sẽ xoay quanh từ không dấu này và các từ đã xuất hiện trước đó để tra về câu có dấu. Nên kết quả trả về sẽ chính xác hơn.
Em thấy trong windows cũng có tính năng suggest này, thím xem có đúng ý thím không?
E cũng chưa thử để biết MS họ có hỗ trợ tiếng Việt không nữa. Mới thử bật lên thì không thấy hỗ trợ Tiếng Anh.
1746634806107.png
 
Gửi thím cái hình demo :D
Xem tệp đính kèm 3037824

Vì lý do gì đấy mà thím ấy ngại tạo, mình đã gợi ý rồi.

Em thấy trong windows cũng có tính năng suggest này, thím xem có đúng ý thím không?
E cũng chưa thử để biết MS họ có hỗ trợ tiếng Việt không nữa. Mới thử bật lên thì không thấy hỗ trợ Tiếng Anh.
Xem tệp đính kèm 3037831
Cái này là hình thức dự đoán từ đơn, cái này thì chỉ là dạng tra từ điển đơn giản thôi. Tôi không có gì đặc biệt. Vì bản chất cách gõ này là phải gõ đầy đủ từ đúng chính tả.
 
Cái này là hình thức dự đoán từ đơn, cái này thì chỉ là dạng tra từ điển đơn giản thôi. Tôi không có gì đặc biệt. Vì bản chất cách gõ này là phải gõ đầy đủ từ đúng chính tả.
Thím có acc Github thì tạo luôn giúp e cái issue cho tác giả nghiên cứu phát triển với. Vì thím rành về ý tưởng này hơn nên đi sâu được vào vấn đề để xử lý.
 
Gửi thím cái hình demo :D
Xem tệp đính kèm 3037824

Vì lý do gì đấy mà thím ấy ngại tạo, mình đã gợi ý rồi.

Em thấy trong windows cũng có tính năng suggest này, thím xem có đúng ý thím không?
E cũng chưa thử để biết MS họ có hỗ trợ tiếng Việt không nữa. Mới thử bật lên thì không thấy hỗ trợ Tiếng Anh.
Xem tệp đính kèm 3037831
Bộ gõ tiếng Việt thì đa phần do người Việt sử dụng, ngay từ giao diện toàn tiếng Anh đã ăn điểm trừ rồi, nhìn qua thì vẫn còn sơ khai chưa có gì đặc biệt
 
Thím có acc Github thì tạo luôn giúp e cái issue cho tác giả nghiên cứu phát triển với. Vì thím rành về ý tưởng này hơn nên đi sâu được vào vấn đề để xử lý.
Tôi có thời gian thì đã ngồi làm rồi. Tôi chán lên voz chém gió tý thôi.

Cơ bản là mục tiêu: gõ từ không dấu và chuyển nó được thành từ có dấu đúng nhất. Tôi thì dựa trên tính toán xác suất xoay quanh từ không dấu và các từ đã nhập trước đó làm điều tính xác suất (xác suất này dựa trên train bằng ngôn ngữ tiếng việt và tự hiểu chỉnh bằng thói quen người dùng)

Còn tính năng dự đoán từ như bên trên để đưa ra gợi ý từ kế tiếp (chưa gõ) thì chỉ là tính năng thêm vào (nhưng lại ngốn tài nguyên nhất haha),
 
Đợt này mới biết cái "bộ gõ" tích hợp AI các kiểu. Chưa dùng thử nhưng thấy bảo paper của bộ gõ được accepted ở hội thảo IJCAI là cũng kinh của nó đấy.


Bộ gõ Tiếng Việt​

Dự án này phân tích tiếng Việt để phát triển một phương pháp gõ nhanh hơn bằng cách dự đoán từ dựa trên một phần từ muốn nhập. Ví dụ, chỉ cần nhập x0ch2 sẽ có thể dự đoán ra xin chào.

Độ toàn diện: Nói ngắn gọn, v7 có thể xem như là một VNI phiên bản nhanh hơn, vì vậy bạn hoàn toàn có thể nhập tất cả mọi từ tiếng Việt có thể nhập.

Chạy các lệnh ở phần dưới để sử dụng v7.

Introduction to v7: Toward a Faster Vietnamese Typing Toolkit

Động Lực Phát Triển​

  • Tiếng Việt là ngôn ngữ có nhiều dấu và thanh điệu, để nhập tất cả các dấu rất tốn thời gian.
  • v7 là giải pháp để đơn giản hóa việc nhập bằng cách chỉ sử dụng phụ âm đầu và thanh điệu để dự đoán từ muốn nhập. Ví dụ: Để có chữ tưởng tượng cần phải nhập tuong73 tuong75 (VNI) hoặc tuongwr tuongwj (Telex), nhưng với v7 ta chỉ cần t3t5!
  • Nhưng tất nhiên, ta nhận ra vấn đề là tiểu tiện cũng thỏa t3t5, với 3 là dấu hỏi và 5 là dấu nặng nặng.
  • Dự án này phân tích và giải quyết các vấn đề của ý tưởng trên, để phát triển thành công v7, một bộ gõ tối ưu trải nghiệm khi nhập.

Tổng Quan​

Cách Nhập​

v7 lấy cảm hứng từ cả VNI và Telex!

  • Phụ âm đặc biệt:
    • g cho cả g và gh.
    • ng cho cả ng và ngh.
    • z cho gi. (z6 → giúp, giết, giáp, ...)
    • dd cho đ. (dd4 → đã, đãi, đỗ, ...) (giống Telex)
  • Thanh điệu (giống VNI):
    • 0 cho không dấu (thanh "phù bình"): tuân, câm, tân...
    • 1 cho dấu sắc (thanh "phù khứ"): cấm, tiếng, tấn, thính... (xem thanh 6 để thấy sự khác biệt)
    • 2 cho dấu huyền (thanh "trầm bình"): tuần, cầm, tần...
    • 3 cho dấu hỏi (thanh "phù thượng"): tẩn, cẩm, hỉ...
    • 4 cho dấu ngã (thanh "trầm thượng"): mãi, rã, phũ...
    • 5 cho dấu nặng (thanh "trầm khứ"): nhậm, phụng, độn, mạnh... (xem thanh 7 để thấy sự khác biệt)
    • 6 cho thanh "phù nhập": cấp, tiếc, tất, thích... (các từ có dấu sắc và kết thúc bằng p, c, t, ch sẽ là thanh 6)
    • 7 cho thanh "trầm nhập": nhập, phục, đột, mạch... (các từ có dấu nặng và kết thúc bằng p, c, t, ch sẽ là thanh 7)
  • Nguyên âm đặc biệt:
    • Chả cần quan tâm ă, â, ê, ô, ơ, ư. Vì chỉ cần nhập a, e, o, u là v7 có thể hiểu được và đưa ra dự đoán đúng ý nhất! Tính năng này giúp giảm đáng kể thời gian nhập.
Thanh điệu được mở rộng so với 6 dấu của VNI. Xem Hệ 8 thanh điệu trong tiếng Việt để hiểu rõ hơn về 8 thanh điệu.

Lưu ý: Nếu không quen với hệ 8 thanh điệu, ta hoàn toàn có thể chọn dùng 6 dấu như VNI thông thường. Nhưng sử dụng hệ 8 thanh điệu sẽ có kết quả dự đoán tốt hơn rất nhiều!

Tương thích​

Hệ điều hành:

  • ✅ macOS – Chuyển sang bàn phím tiếng Anh khi dùng
  • ✅ Windows – Chuyển sang bàn phím tiếng Anh khi dùng
  • ⛔ Linux – Chưa được hỗ trợ
Hạn chế hiện tại:

  • 🚫 CapsLock: Chưa được hỗ trợ. Vui lòng tắt CapsLock khi gõ.
  • ⚠️ Quyền truy cập hệ thống: Một số nền tảng (ví dụ macOS) có thể yêu cầu cấp quyền truy cập bàn phím để công cụ hoạt động chính xác.
  • Đang trong quá trình phát triển phiên bản ổn định...

Các Chế Độ​

v7 dự đoán các từ/cụm từ mà người dùng muốn gõ bằng cách kiểm tra và xếp hạng các từ/cụm từ có thể có.

Chế Độ AI​

Chế độ này sử dụng v7gpt - một mô hình tựa GPT với bộ tokenizer của riêng v7, được huấn luyện trên kho ngữ liệu tiếng Việt, dựa trên nanoGPT của Andrej Karpathy.

  • Ưu Điểm:
    • Hoạt động tốt trong mọi ngữ cảnh.
    • Hiểu ngữ cảnh mà người dùng đang viết để dự đoán từ tiếp theo phù hợp nhất.
    • Có thể dự đoán hiệu quả toàn bộ câu.

Sử dụng​

v7 chạy trên Python 3.12.

Sử Dụng Chế Độ AI​

  1. Cài đặt các thư viện cần thiết cho chế độ AI (yêu cầu Torch):
    pip install -r requirements_ai.txt

  2. Tải về mô hình đã được huấn luyện:
    gdown 1dDP0jIJ79syE6vt6QnVl05_4fYpuwrqd -O checkpoints/v7gpt-1.3.pth
    # Hoặc tải file model v7gpt-1.3.pth (https://drive.google.com/file/d/12ZBG5IBOKmgmv7mh32uFdDUqr-K0SzPS/view?usp=drive_link) về checkpoints/v7gpt-1.3.pth

  3. Khởi động ứng dụng:
    python main.py
 
Đợt này mới biết cái "bộ gõ" tích hợp AI các kiểu. Chưa dùng thử nhưng thấy bảo paper của bộ gõ được accepted ở hội thảo IJCAI là cũng kinh của nó đấy.

Bộ gõ nhập dùng hàng số nhập (khác số chọn gợi ý) là thấy chậm rồi. Bàn tay người Việt không phù hợp typing 4 hàng phím. Tập chung chữ sẽ hợp lý hơn.

Hay nhất tô vẫn thấy gõ không dấu trả về câu từ có dấu như kiểu Pinyin mới cho tốc độ gõ cao và hạn chế lỗi chính tả. Khắc phục được cả nhược điểm khi gõ song ngữ Anh, Viet nữa.
 
Sao vẫn tập chung làm những thứ mà những cái khác đã làm quá tốt và vốn có sẵn rồi nhỉ? Hoặc phải chắc chắn lộ trình tính năng gì đó tốt hơn. Thay vì đó, sao không thử startup ý tưởng nhập liệu mới giúp tăng tốc nhập liệu. Có khi tạo cách mạng.

Bộ gõ hiện nay có nhiều nhược điểm trong môi trường quốc tế đa ngôn ngữ đan xen liên tục. Xung đột giữa nhập liệu tiếng anh và telex. Cách nhập liệu tiếng việt có dấu cũng có thể cải thiện tốc độ và lỗi chính tả bằng cách gõ liền không dấu và đưa ra dự doán từ có dấu based tên thói dữ liệu ngôn ngữ đó kết hợp thói quen dùng từ của người dùng mà.
Hay.
 
đẻ thêm bộ gõ làm gì nhỉ? trong khi có unikey và evkey rồi, đang dùng evkey khá ngon và ổn định, gõ lên thanh địa chỉ không bị lỗi như unikey
 
Evkey người sáng lập thông báo không cập nhật nữa rồi
hiện tại dùng cũng ổn rồi mà, nếu mà có bộ gõ mới mang tính cách mạng thì nó phải là bộ gõ giúp cho người Việt gõ nhanh hơn thấy rõ. ví dụ như là user gõ không dấu và bộ gõ tự thêm dấu vào, tự sửa lỗi chính tả, gợi ý từ,.....
 

Thống kê chủ đề

Ngày tạo
nghiabros,
Người trả lời cuối
nghiabros,
Trả lời
92
Lượt xem
15.621
Quay lại
Lên đầu trang