我正在尝试对一些文档执行基于字典的NER。不管数据类型如何,我的字典都是由字符串的键值对组成的。我希望搜索文档中的所有键,并在出现匹配时返回该键的相应值。
问题是,我的字典相当大:大约700万个键值-键的平均长度:8,值的平均长度: 20个字符。
我已经在MapDictionary中尝试过LingPipe,但是在我想要的环境设置中,在插入200,000行之后,它就会耗尽内存。我不清楚为什么LingPipe在他们的算法中使用map而不是hashmap。
所以问题是,我之前没有任何使用Lucene的经验,我想知道它是否以一种更容易的方式使这样的数字成为可能。
ps。我已经尝试将数据分块到几个字典中,并将它们写到磁盘上,但速度相对较慢。
谢谢你的帮助。
干杯Parsa
发布于 2010-09-29 03:06:17
我想如果你想重用LingPipe的ExactDictionaryChunker来做NER,你可以重写他们的MapDictionary来存储和检索你选择的key/value database,而不是他们的ObjectToSet (顺便说一句,这确实扩展了HashMap )。
Lucene/solr可以用作键/值存储,但如果您不需要额外的搜索功能,只需要一个纯粹的查找,那么对于您正在做的事情,其他选择可能更好。
https://stackoverflow.com/questions/3810367
复制相似问题