我为Android创建了一个词汇表应用程序,其中包含存储在本地数据库(SQLite)中的~5000个单词的列表,我想找出哪些单词比其他单词更难。
为了找到答案,我正在考虑添加一个非常简单的功能,在屏幕上放置两个随机单词,要求用户选择更难的单词。然后将显示另一对随机单词,并且只要用户想要,就可以重复该过程。参与这个“更难的单词”的用户越多,理论上该应用程序就能够将难以理解的单词与简单的单词区分开来。
由于困难将基于所有用户的输入,我知道我需要在线跟踪它,以便每个应用程序可以从我的网站(即MySQL)上的数据库中获取它们。我不确定什么是最有效的方法来跟踪难度,但我想出了两个可能的解决方案:
1)添加一个包含整数值的difficulty
列到单词表。然后,对于用户查看和排名的每一对单词,他/她选择更难的单词将难以增加1,而未选择的单词将难以减少1。我可以简单地order by
整数值来获得最难的值。
2)创建一个difficulty
表,其中包含两列more
和less
,根据结果保存单词(或ID's
单词以节省空间)用户所做的每个选择。我仍然不确定如何获得最难的词 - group by
和order by
的某种组合?
我的第二个解决方案的好处是我可以知道每个单词被看到多少次(more
列中包含less
列中的单词+#行的行数#包含这个词)。这有助于统计数据,例如我想知道哪个词的more
/ less
比率最高。但它也会比我的第一个建议的解决方案占用更多的空间,并且不知道它可以如何扩展。
您认为哪种解决方案更好,或者我应该考虑哪些其他解决方案?
答案 0 :(得分:0)
你为此尝试过狮身人面像吗?猜猜像sphinx这样的全文搜索引擎可以很好地解决这个问题。