2016-02-04 19 views
8

Tôi hiện đang phát triển một ứng dụng Android mà là một từ điển, nơi tôi đang lấy ý nghĩa trực tuyến với Wiktionary tiếng Việt API với điều này: [http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=overflow&rvprop=content&format=jsonfmCách nhúng Wiktionary để truy cập ngoại tuyến trong Ứng dụng Android?

Nhưng tôi muốn tải về cơ sở dữ liệu ẩn Wiktionary tiếng Việt và nhúng nó trong App Android của tôi.

Đây là Wiktionary tiếng Việt Cơ sở dữ liệu Tải Page:
1. Wiktionary
2. Wikimedia Downloads

Theo nghiên cứu của tôi, tôi phát hiện ra rằng Wiktionary tiếng Việt ngoại tuyến Cơ sở dữ liệu là trong XML và SQL. Nhưng những tệp này quá lớn. Việc nhúng các tệp này sẽ làm cho kích thước APK rất lớn.
Vì vậy, có bất kỳ giải pháp để nhúng này một cách dễ dàng trong ứng dụng của tôi?

+0

kích thước của tài nguyên đó là bao nhiêu? – GvSharma

+0

Wiktionary Offline Uncompressed là 700MB và 7zip nén là 100 MBs – zackygaurav

+0

Có phiên bản nào có từ thông dụng hơn không? – Carlos

Trả lời

2

Nhà phát triển [của English Dictionary - Offline] tuyên bố rằng họ đang sử dụng Wiktionary tiếng Việt. Tôi vẫn còn tự hỏi họ đã lấy một tệp Wiktionary Dump ở đâu> 22 MB

Tôi không được trả đủ để nói với bạn rằng .. (đùa). Thing là bạn cần trích xuất các mục từ điển từ các tệp XML và một khi bạn nhận được chỉ những tệp thì tệp nội dung cuối cùng (văn bản) trở nên nhỏ hơn.

Ngoài ra ...

Bạn có thể thử này TSV file (lịch sự của: semisignal.com) mà là một bản chụp của tháng mười một năm 2012 định nghĩa. Điều này chứa hầu hết các từ mà người dùng cuối của bạn kiểm tra tiếng Anh sẽ cần. TSV là 54MB và được xử lý như một tệp văn bản.

Hãy thử một định nghĩa: brushable - TSV có dưới đây: (So sánh với mục Wiktionary tiếng Việt cho Brushable).

tiếng Anh brushable Tính từ # Có thể được [[chải]]
tiếng Anh brushable Tính từ # Có thể được điều khiển bởi [[đánh]]


TIPS: Đối với việc giảm kích cỡ , bạn có thể cắt bỏ bắt đầu "tiếng Anh" vì bạn đã biết tất cả các định nghĩa tiếng Anh của nó. Mỗi lần cắt sẽ giúp bạn tiết kiệm 7 byte (nhân với tổng số định nghĩa).

  • Sử dụng một String.replace vào "tiếng Anh" (với không gian đó) để xóa nó.

  • Cũng thay thế "Tính từ" "Động từ" "Danh từ" với mã ngắn mà App của bạn biết ý nghĩa của và cho thấy entry loại trong User Interface . Mã có thể là mục nhập danh sách có nghĩa là Tính từ.

Tệp văn bản đã cắt của bạn có thể giống như ví dụ bên dưới. Mỗi fullstop đôi chỉ có nghĩa là "phần tiếp theo của entry", do đó về cơ bản entry..type..definition nơi <xyz> là một liên kết đến một mục trong từ điển. 54 byte mục TSV bây giờ sẽ trở thành 35 byte cho một dòng đó.

brushable..1..Able to be <brushed>. 

Lưu tệp văn bản đã chỉnh sửa (giảm) cuối cùng. Nhúng vào APK của bạn.

+1

Cảm ơn một tấn cho tệp TSV đó. – zackygaurav

3

Tôi khuyên bạn nên triển khai quyền truy cập API trực tuyến, vì vậy, bạn có thể tải xuống và sử dụng ứng dụng nhỏ, đồng thời thêm nút ở đâu đó để tải xuống phần ngoại tuyến. Ngoài ra, hãy kiểm tra kết nối mạng và nếu không phải là wi-fi, hãy cảnh báo người dùng để gói dữ liệu di động sẽ không bị lạm dụng khi tải xuống từ điển 100 MB.

Các vấn đề liên quan