9

私は現在、辞書である Android アプリを開発しています。ここでは、ウィクショナリー API を使用してオンラインで意味を取得しています。 =jsonfm

しかし、Wiktionary データベースをオフラインでダウンロードして、Android アプリ内に埋め込みたいと考えています。

ウィクショナリー データベースのダウンロード ページは次のとおり
です。 1.ウィクショナリー
2.ウィキメディアのダウンロード

私の調査によると、Wiktionary Offline Database は XML と SQL であることがわかりました。しかし、これらのファイルは大きすぎます。これらのファイルを埋め込むと、APK のサイズが巨大になります。
これを私のアプリに簡単に埋め込む解決策はありますか?

4

2 に答える 2

4

[ English Dictionary - Offlineの] 開発者は、Wiktionary を使用していると主張しています。22 MB を超えるウィクショナリー ダンプ ファイルをどこで入手したのか、まだ疑問に思っています。

私はあなたにそれを言うのに十分な支払いを受けていません.. (冗談)。XML ファイルからディクショナリ エントリを抽出する必要があり、それらだけを取得すると、最終的なコンテンツ (テキスト) ファイルは小さくなります。

あるいは...

2012 年 11 月の定義のスナップショットであるこのTSV ファイル(提供: semisignal.com ) を試すことができます。これには、英語をチェックするエンドユーザーが必要とするほとんどの単語が含まれています。TSV は54MBで、テキスト ファイルのように扱われます。

定義を試してください: brushable -- TSV には以下があります:( Wiktionary のBrushableのエントリと比較してください)。

英語のbrushable 形容詞 # [[brushed]]
にできる


ヒント:ファイルサイズを小さくするために、最初の「英語」を切り取ることができます。これは、すべての英語の定義が既にわかっているためです。トリムごとに 7 バイト節約できます (合計定義数を掛けます)。

  • String.replace「英語」(そのスペースを含む)を使用してクリアします。

  • また、「形容詞」「動詞」「名詞」を、アプリが意味を認識し、ユーザー インターフェースに入力タイプを表示する短いコードに置き換えます。Code は、形容詞としてリスト エントリを意味する1である可能性があります。

トリミングされたテキスト ファイルは、次の例のようになります。それぞれのダブルフルストップは単に「エントリの次のセクション」を意味するため、基本的に.. ..は辞書内の別のエントリへのリンクです。TSV エントリの 54 バイトは、その 1 行で 35 バイトになります。entrytypedefinition<xyz>

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

最終的に編集 (縮小) されたテキスト ファイルを保存します。それを APK に埋め込みます。

于 2016-02-14T20:11:51.313 に答える
3

小さなアプリをダウンロードして使用できるように、オンライン API アクセスを実装することをお勧めします。さらに、オフライン部分をダウンロードするボタンをどこかに追加します。また、ネットワーク接続を確認し、Wi-Fi でない場合は、100 MB の辞書をダウンロードするためにモバイル データ プランが乱用されないように、ユーザーに警告します。

于 2016-02-07T10:46:13.343 に答える