2

我正在构建一个应用程序,我希望我的应用程序能够读取用户在输入文本框中输入的内容,并根据到目前为止的句子向用户提供两个事物。

1)他们正在输入的可能短语列表以允许轻松自动完成,我猜我会使用我可以搜索的预设短语列表来获得这些建议。

2)根据句子结构或仅基于最后输入的单词,列出最有可能出现在句子中的单词。

我的问题是,还有其他类似的东西吗?搜索可能数千个字符串以尽可能快速有效地找到匹配项的最佳方法是什么?字符串应该存储在 sd 卡上的文本文件中还是直接存储在代码中或某种数据库或 xml 文件甚至 cvs 文件中?任何想法都会很棒

4

2 回答 2

1

我自己正在研究这个,我认为你应该看看这个

他们使用的代码:

 public class CountriesActivity extends Activity {
 protected void onCreate(Bundle icicle) {
     super.onCreate(icicle);
     setContentView(R.layout.countries);

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
             android.R.layout.simple_dropdown_item_1line, COUNTRIES);
     AutoCompleteTextView textView = (AutoCompleteTextView)
             findViewById(R.id.countries_list);
     textView.setAdapter(adapter);
 }

 private static final String[] COUNTRIES = new String[] {
     "Belgium", "France", "Italy", "Germany", "Spain"
 };

}

您可以将预设短语声明为静态最终字符串,并在上面的示例中使用它来代替“COUNTRIES”。

现在,如果您尝试“预测”下一个单词类型的事情,那就是另一回事了。有一个名为 Swiffkey 的应用程序可以预测句子后面可能出现的一些单词。也许你可以用谷歌搜索一下,看看是否有源代码可以告诉你如何实现该功能。

于 2012-11-27T06:23:22.463 回答
1

您可以查看 Google Scribe - 它与您所说的差不多。该链接曾经是http://scribe.googlelabs.com,但现在似乎消失了 :(。此外,许多键盘(如 swiftkey)甚至标准的 Android 键盘都具有基本的“下一个单词”预测功能。

对于当前的单词预测,您过滤的加权字典可能是最好的。然后可以基于句法类似地进行下一个单词预测(这将需要字典中的一些语义结构,即哪些单词是主语,哪些是动词,动词可以采用哪些不同形式,例如短语,情态等)

您的研究的一些链接:

任何允许您附加并快速搜索此类标记数据的数据库都应该工作,困难实际上在于构建它 - 非常雄心勃勃的项目,祝您好运!

于 2012-11-27T06:31:21.443 回答