1

ローカル データベース (SQLite) に保存されている ~ 5000 の単語のリストを持つ Android 用の語彙アプリを作成しました。他の単語よりも難しい単語を見つけたいと考えています。

それを調べるために、2 つのランダムな単語を画面に表示し、ユーザーに難しい単語を選択させるという非常に単純な機能を追加することを考えています。次に、ランダムな単語の別のペアが表示されます。このプロセスは、ユーザーが望む限り繰り返すことができます。この「より難しい単語」に参加するユーザーが増えるほど、アプリは理論上、難しい単語と簡単な単語を区別できるようになります。

難易度はすべてのユーザーからの入力に基づいているため、すべてのアプリが私の Web サイト (MySQL) のデータベースから取得できるように、オンラインで追跡する必要があることはわかっています。難易度を追跡するための最も効率的な方法が何であるかはわかりませんが、2 つの可能な解決策を思いつきました。

difficulty1)整数値を保持する列を単語テーブルに追加します。次に、ユーザーが見てランク付けする単語のペアごとに、より難しい単語を選択した単語の難易度を 1 上げ、選択しなかった単語の難易度を 1 下げます。その整数値を単純化order byして、最も難しいものを取得できます。

2)ユーザーが行った各選択の結果に基づいて単語 (またはスペースを節約するための単語) を保持するdifficulty2 つの列 と を含むテーブルをmore作成します。どうすれば最も難しい単語を取得できるかはまだわかりません。と?の組み合わせです。lessID'sgroup byorder by

2 番目のソリューションの利点は、各単語が何回表示されたかを知ることができることです (more単語を含む列の行数 + 単語を含む列の行数less)。moreこれは、 /の比率が最も高い単語を見つけたい場合など、統計に役立ちますless。しかし、最初に提案したソリューションよりもはるかに多くのスペースを占有し、どのように拡張できるかわかりません。

どちらがより良い解決策だと思いますか、または他にどのような解決策を検討する必要がありますか?

4

1 に答える 1

0

このためにスフィンクスを試しましたか?sphinx のような全文検索エンジンが優れたパフォーマンスで解決すると思います。

于 2013-10-25T02:20:35.590 に答える