我的函数解析文本并删除短文,例如“a”,“the”,“in”,“on”,“at”等。
将来可能会修改这些单词的列表。此外,在不同列表之间切换(即,针对不同语言)也可能是一种选择。
那么,我应该在哪里存储这样的清单?
我心中有这些选择:
我正在使用Ruby on Rails(如果这有任何区别)。
答案 0 :(得分:2)
由于停止词的查找需要很快,我会将停用词存储在哈希表中。这样,验证单词是否为停用词已经摊销了O(1)复杂度。
现在,由于停用词列表可能会发生变化,因此在文本文件中持久列表是有意义的,并在程序启动时(或每隔几分钟/文件修改时读取该文件)如果你的程序连续运行。)
答案 1 :(得分:2)
如果它只有大约50-200个单词,我会将它存储在支持快速查找的数据结构的内存中,例如哈希映射(我不知道在Ruby中调用了这样的结构)。 / p>
您可以使用选项2或3(将数据保存在文件或数据库表中,具体取决于您更容易),然后在应用程序启动时将数据读入内存。存储读取数据的时间,如果请求进入并且数据在X分钟内未更新,则从持久存储中重新读取数据。
这基本上是缓存。 Ruby on Rails可能已经提供了这样一种机制,但我对它的回答太少了。