自动建议短语/句子完成

时间:2012-11-27 06:09:18

标签: android

我正在构建一个应用程序,我希望将我的应用程序的功能包括在读取用户输入文本框时输入的内容,并基于到目前为止的句子用户有两件事。

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

2)根据句子结构或仅仅根据输入的最后一个单词,在句子中接下来最可能的单词列表。

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

2 个答案:

答案 0 :(得分:1)

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

他们使用的代码:

 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的应用程序,用于预测句子后可能出现的一些单词。也许你可以谷歌,看看是否有源代码可能会告诉你如何实现该功能。

答案 1 :(得分:1)

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

对于当前单词预测,您过滤的加权字典可能是最佳的。然后可以基于语法类似地完成下一个单词预测(这将需要你的字典中的一些语义结构,即哪些单词是主语,动词可以采用的动词是什么,如短语,模态等等)。 p>

您的研究的一些链接:

任何数据库应该可以让你附加并快速搜索这些带标记的数据,实际上很难建立它 - 非常雄心勃勃的项目,祝你好运!