这看起来像是在寻找有价值的资产,但由于我们在很多事情上都有免费的替代品,所以我对此持乐观态度。
存储两个键值对的数据库,例如
核心价值
或者
键-上下文-值
对于收集数据并希望对其进行标记或搜索相关记录的 Web 开发人员来说,这将非常有用。
像这样的数据表甚至可以是他们想要存储的规范化形式。
如果您听说过这样的免费复制数据表,请分享。谢谢你。
You could use WordNet: it contains general relationships between (English) words (divided into noun, verb, adjective and adverb). The relationships are among synsets (synonym sets) and describe such relations as "bus" is-a "vehicle", "wheel" is-part-of "car".
Note: To look up words in the WordNet dictionary you need to use lemmas (the base form of the word), so if you want to look words up from a free text (such as a website), you will have to calculate the lemmas of the words first. You could do this by applying some Natural Language Processing (NLP) techniques, or creating your own heuristics.
Besides the synset relationships, WordNet also contains short defintions (gloss) of the synsets, which you could use to gain more context. Also, Sense Disambiguation techniques can help you decide which sense of a multi-sense word to use, which is also a form of providing context.
If you need more context than what WordNet provides (general relationships between general meanings of English words), you should find a suitable ontology that describes semantic relationships between concepts. You will have to map the text to the concepts it is about (again, NLP techniques can help in this)
您可以使用Lucene(或任何文本搜索引擎)来存储您的文档,并结合自定义词干分析器根据含义(而不是单词变体)索引您的文档文本。
通常,词干分析器用于将单词的所有变体转换为基本词干。例如,虽然文档按原样存储和检索文本,但任何单词“sing,singing,sang,sung”都会被索引为“sing”,因此当使用搜索词“sing”进行搜索时,您会在所有包含 sing、singing、sang 或 sung 的文档上获得成功。
类似地,也可以对搜索词进行词干化,因此搜索“sing、singing、sang or sung”中的任何一个都会像“sing”是搜索词一样进行搜索。
标准词干分析器处理单词的常见英语变体,但您可以创建一个基于含义的词干分析器。例如,您可以为您想要“链接”的所有单词创建一个词干分析器,将“问题、问题或投诉”中的任何一个词干到“问题”等。
使用词干分析器的优点是所有与搜索相关的繁重工作都由文本搜索引擎为您完成(此外,文本搜索引擎速度非常快!)。
在实现时,您可以使链接数据驱动,或者根据数据库中的数据生成词干分析器的代码,或者使其动态并在搜索/索引操作完成时查找数据库,或者在某个地方between - 缓存值并定期刷新它们。
这听起来很像你在谈论一个本体。请参阅什么是本体(数据库?)?
在我看来,本体提供了一种非常强大的方式,可以以自然和有机的方式构建现实世界实体和关系的复杂模型。可以在模型中捕获实体/概念之间的关系,并且随着关系类型数量的增加,可以编码越来越复杂的规则来利用这一知识体系。
根据您的要求,您可以寻找不同的map-reduce
范例实现。最著名的是 Hadoop,特别是 Hadoop MapReduce。尽管这是一个框架而不是数据库,但它确实可以满足您的要求 - 以key=value
配对方式存储和处理数据。这是用于构建大型、可扩展系统的产品。如果您需要更简单的东西,则存在一些较小的实现,例如基于 PHP(在 MySQL 之上),甚至是“简单”的 MySQL 聚合,在大多数情况下可以模仿 MapReduce,您不需要分布式系统大量数据。