零编辑距离的基于字典的命名实体识别:LingPipe,Lucene还是什么?

我正在尝试在某些文档上执行基于字典的NER。 无论数据类型如何,我的字典都包含字符串的键值对。 我想搜索文档中的所有键,并在匹配发生时返回该键的相应值。

问题是,我的字典相当大:约700万个键值 – 键的平均长度:8和平均值的长度:20个字符。

我已经尝试使用MapDictionary进行LingPipe,但是在我想要的环境设置中,插入200,000行后内存耗尽。 我不清楚为什么LingPipe在他们的算法中使用地图而不是散列图。

所以问题是,我之前没有任何Lucene的经验,我想知道它是否能以更简单的方式使这样的数字成为可能。

PS。 我已经尝试将数据分块成几个字典并将它们写在磁盘上,但速度相对较慢。

谢谢你的帮助。

干杯帕萨

我想如果您想重用LingPipe的ExactDictionaryChunker来执行NER,您可以覆盖它们的MapDictionary来存储和检索您选择的键/值数据库而不是它们的ObjectToSet (顺便说一下,它扩展了HashMap)。

Lucene / solr可以用作键/值存储,但如果你不需要额外的搜索function,只需要一个纯粹的查找,其他选项可能更适合你正在做的事情。