Performance 如何在保持有效性的同时自动标记文本?

Performance 如何在保持有效性的同时自动标记文本?,performance,tags,tagging,Performance,Tags,Tagging,假设我有一组一百万个标签和一个文本,需要对这些标签和可能的新标签进行解析。这里的标签数量只是一个例子来说明我的思考问题——太多的标签无法以线性方式循环,太多的标签无法保存在内存中等等 不知何故,我想不出一个占地面积小、速度快的解决方案。我知道人们需要权衡,但我认为我忽略了一些概念 这对于智能标记Michael Jackson=Artister等来说尤其有趣,因为应用的标记可能不是文本本身的一部分 除了执行word黑名单、缓存流行标记和大型sql查询之外,最有效的方法是什么 有趣的是,我必须自己给

假设我有一组一百万个标签和一个文本,需要对这些标签和可能的新标签进行解析。这里的标签数量只是一个例子来说明我的思考问题——太多的标签无法以线性方式循环,太多的标签无法保存在内存中等等

不知何故,我想不出一个占地面积小、速度快的解决方案。我知道人们需要权衡,但我认为我忽略了一些概念

这对于智能标记Michael Jackson=Artister等来说尤其有趣,因为应用的标记可能不是文本本身的一部分

除了执行word黑名单、缓存流行标记和大型sql查询之外,最有效的方法是什么

有趣的是,我必须自己给这个问题贴上标签:-

由于我的评论空间有限,让我在这里补充一些想法:

我同意使用整数散列可以提高速度。好主意 当对照标记列表检查单词或单词组合时,哈希不能解决循环遍历每个哈希/标记的迭代问题 要完善这个问题:假设一个像hello world这样的文本。此文本有3个潜在标记hello、world和hello world。标记列表可能只包含hello,但可能会在解析后添加world或hello world,这意味着这些标记不会应用于文本。 问题:

假设文本大小为书本大小,迭代所有组合(如9英寸钉子),但假设组合限制为4个单词,将它们与数据库中的标记进行比较需要很长时间,即使假设使用整数散列。 标记列表可能很长,因此遍历存储的标记可能也很慢。 标签更新意味着对文本进行额外的全文搜索——这取决于文本的数量和长度,这可能是一个数据库杀手,根本没有效率? 如何自动找到相关的新标签?在一篇关于音乐的文章中,九英寸长的指甲再次浮现在脑海中——但发布一首新歌并不能成为一个好标签。不过,这可能是一个问题。
对传入文本中的每个单词进行散列,并使用它匹配要匹配的标记的散列。您可以使用数据库来存储和查找哈希值,这样就不必在内存中执行此操作。

我不知道这对提高效率有什么帮助?我仍然需要使用类似于SELECTX FROM table WHERE hash=?-这实际上与不使用哈希相同,从tag=?而且似乎没有提供任何优势,但哈希的缺点通常比平均关键字长,因此增加了存储需求和查询权重?哈希不比关键字长。根据标记的数量,散列可以是任意长度,但32位数字就可以做到这一点,它相当于一个四个字母的单词。如果您想节省空间,16位可能就可以了。散列将被索引,这样就不会有任何迭代。除非你把它全部存储在内存中,否则这是最有效的。对不起,这当然是真的。不知怎的,我没有那样想散列。感谢您的指导:-关于问题:数据库非常擅长匹配值,这主要是它们除了存储数据之外所做的事情。如果您将所有文本存储为散列词,那么匹配新标记是非常有效的,假设您对散列词进行索引。多个单词的问题并不困难,因为您可以在9英寸的钉子中搜索三个散列单词,然后检查它们是否相邻,以及它们在文本中的顺序是否正确。