使用Ruby解析带有数百个标签的结构化和半结构化文本

时间:2012-11-08 01:25:43

标签: ruby ruby-on-rails-3

我将处理10,000-50,000条记录的批次,每条记录大约有200-400个字符。我预计我可以拥有的搜索条件数量不会超过1500(都与本地企业有关)。

我想创建一个函数,将结构化标签与标记数据的术语列表进行比较。

这些条款基于业务说明。因此,例如,[Jazz Bar][Nightclub][Sports Bar][Wine Bar]都将对应[Bar]的查询。

通常这个数据有某种现有的标签,所以我也可以为第一遍创建一个严格的层次结构,然后如果没有明确的现有标签则再做一次。

实现此功能最敏感的方法是什么?我可以有一个包含所有关键字的表格,并尝试将它们与每个数据相匹配。这在我匹配现有标签的情况下很简单,在处理自由文本时不太直接。

我正在使用Heroku / Postgresql

1 个答案:

答案 0 :(得分:0)

使用Sphinx搜索引擎和ThinkingSphinx Ruby gem是一个非常安全的选择。是的,有一些配置开销,但我还没有找到Sphinx让我失望的场景。 : - )

如果您有30-60分钟的修补时间,请尝试一下。我一直在使用Sphinx在数据库表中搜索600,000条带有复杂查询的记录(3个单独的搜索标准+ 2个单独的字段分组/排序),我得到的结果是0.625秒,这一点都不错,我肯定比使用纯Ruby代码完成任何事情要好得多。