繁体   English   中英

什么数据模型可用于页面或文本的“含义”

[英]What data model can be used for the “meaning” of a page or text

我已经多次在网上读过这个问题:

如何提取页面的含义。

而且我知道我没有足够的经验来尝试提出任何解决方案。 对我而言,这是网络编程的圣杯,甚至可能是整个计算机技术。

但是,通过想象力,让我们假设我已经编写了完全符合这一要求的终极剧本。 例如,我输入以下文字:

想象力使人类度过了黑暗时代,走向了现在的文明状态。 想象力导致哥伦布发现美国。 想象力导致富兰克林发现电力。

我强大的脚本提取了意义,并说:

人类思考的能力使他们发现新事物。

出于本示例的目的,我使用“String”来解释文本的含义。 但是如果我必须将它存储在数据库,数组或任何类型的存储中,那么我将使用的数据类型是什么?

请注意,我可以使用另一个使用不同类比但仍具有相同含义的文本,例如:

想象力有助于人类的进步。

现在我可以输入关于想象力重要性的搜索查询,并显示这两个结果。 但他们将如何匹配? 它会是一个字符串比较吗? 有些整数,浮点数? 也许甚至二进制?

这意味着什么? 我想听听你的意见。

更新:让我简单地重述一下这个问题。

你如何在数据中表示意义?

假设我们的大脑无法访问形而上学的云服务器, 意味着神经元连接,激素水平,电活动 - 甚至是量子波动 - 以及所有这些与外部世界和其他大脑之间的相互作用。 所以这是个好消息:至少我们知道你的问题至少有一个答案(意思是在某处,某种程度上表示)。 坏消息是,我们大多数人都不知道这是如何运作的,那些认为他们理解的人无法说服其他人或彼此。 作为一个无能为力的人,我无法给出你的问题的答案,但提供了一个列表,我已经遇到了大问题的较小和退化版本。

如果要表示词法实体的含义(例如,概念,动作),可以使用分布式模型,例如向量空间模型 在这些模型中,通常意义具有几何分量。 每个概念都表示为一个向量,您可以将概念放在一个空间中,使类似的概念彼此更接近。 构造这样一个空间的一种非常常见的方法是选择一组常用词(基础词)作为空间的维度,并简单地计算目标概念在语音/文本中与这些基础词一起被观察的次数。 类似的概念将用于类似的背景; 因此,他们的向量将指向相似的方向。 最重要的是可以进行一堆加权,归一化,降维和重组技术(例如,顶部TF-IDFhttp://en.wikipedia.org/wiki/Pointwise_mutual_informationSVD )。 一个略微相关,但概率 - 而不是几何 - 的方法是潜在的Dirichlet分配和其他生成/贝叶斯模型已经在另一个答案中提到。

向量空间模型方法有利于辨别目的。 您可以决定两个给定短语是否在语义上相关(例如,将查询与文档匹配或查找类似的搜索查询对以帮助用户扩展其查询)。 但是在这些模型中合并语法并不是非常简单。 我无法清楚地看到你如何通过向量来表示句子的含义。

语法形式可以帮助整合语法并将结构带入意义和概念之间的关系(例如, 头部驱动的短语结构语法 )。 如果您构建两个共享词汇和语法的代理并通过这些机制进行通信(即,将信息从一个传递到另一个),您可以说它们代表了含义。 当一个机器人告诉另一个人通过内置或出现的语法和词汇选择“黑盒子上面的红色圆圈”而另一个人成功地挑选出预期的物体时,这意味着在何处以及如何表示意义。(见这个非常有趣的实验基础词汇:会说话的头脑

捕获意义的另一种方法是使用网络。 例如,通过将每个概念表示为图中的节点以及概念之间的关系作为节点之间的边缘,可以提出实际的意义表示。 Concept Net是一个旨在表达常识的项目,可以将其视为常识概念的语义网络。 在某种程度上,某个概念的含义通过其相对于网络中其他概念的位置来表示。

说到常识, Cyc是一个试图捕捉常识知识的项目的另一个雄心勃勃的例子,但它以与Concept Net截然不同的方式实现。 Cyc使用定义明确的符号语言以非模糊的方式表示对象的属性和对象之间的关系。 通过使用一套非常大的规则和概念以及推理引擎,人们可以得出关于世界的推论,回答诸如“马可生病吗?”,“给我一张悲伤的人的照片”等问题。

我曾在一家试图在以前的公司做过这个的系统上工作过。 我们更关注“非结构化文档与此非结构化文档最相似的内容”,但相关部分是我们如何确定文档的“含义”。

我们使用了两种不同的算法,即PLSA(概率潜在语义分析)和PSVM(概率支持向量机)。 两者都提取的主题在被分析的文档中比在集合中的其他文档中更为普遍。

主题本身具有数字ID,并且从文档到主题有一个外部参照表。 为了确定两个文档的接近程度,我们将查看文档共有的主题百分比。

假设您的超级脚本可以根据输入的查询生成主题,您可以使用类似的结构。 它具有仅包含整数的外部参照表的附加优点,因此您只查看整数而不是字符串操作。

语义是一个广泛而深入的领域,并且有很多模型,从AI实现的角度来看,它们都具有优势和问题。 有了这么少的背景,人们很难提出建议,除了“研究文献,选择一个与你的直觉产生共鸣的理论(如果你在这方面取得了成功,用你自己更好的理论取代它,并获得学分)“。 话虽如此,我可以模糊地回忆起的新生课程材料过去常常有一个关于称为“框架”的递归结构的好话,但这必定是在15年前。

意义通常是抽象概念,其是取决于所选算法的内部黑匣子数据结构。 但这不是有趣的部分。 如果您进行一些语义分析,则一般性问题涉及意义的差异,例如,如果两个文档谈论相同的主题,或者某些文档有多么不同,或者对具有相似含义的文档进行分组。

如果使用向量空间模型,则意义/语义可以由表示特定主题的向量集合表示。 提取此类模式的一种方法是http://en.wikipedia.org/wiki/Latent_semantic_analysishttp://en.wikipedia.org/wiki/Nonnegative_matrix_factorization 但是有更复杂的统计模型,它们通过某些概率分布的参数来表示语义。 最近的方法是http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation

我将讨论语义Web,因为我认为它提供了关于该主题的最先进的研究和语言实现。

资源描述框架是可用于描述信息的语义Web固有的众多数据模型之一。

RDF是一种具有多种序列化格式(即文件格式)的抽象模型,因此编码资源或三元组的特定方式因格式而异

但是,在实践中,RDF数据通常持久存储在关系数据库或本地表示(也称为Triplestores)或Quad存储中,如果上下文(即命名图)也为每个RDF三元组保留。

可以使用RDF查询检索RDF内容。


主题映射另一种知识数据存储和表示模型。

主题地图是知识表示和交换的标准,强调信息的可查找性。

在2000年,Topic Maps是用XML语法XTM定义的。 现在这通常被称为“XTM 1.0”,并且仍然相当普遍。

从官方主题地图数据模型

ISO / IEC13250(4.3中)的这一部分中定义的唯一原子基本类型是字符串和null。 通过数据类型的概念,可以在此模型中表示任何类型的数据。 使用的所有数据类型都应具有其值空间的字符串表示形式,并且此字符串表示形式存储在主题图中。 有关该值所属的数据类型的信息将以标识数据类型的定位符的形式单独存储。

提出了许多其他格式,您可以查看本文以获取更多信息。

我还想链接你最近的一个回答,我写了一个类似的话题,有很多有用的链接。


在阅读各篇文章之后,我认为每种方法都采用的共同方向是将数据存储为文本格式 相关信息可以直接作为文本存储在数据库中。

以可理解的文本格式提供数据有几个好处,可能不仅仅是缺点。

其他语义方法,如符号3(N3)或Turtle语法使用略有不同的格式,但仍然是纯文本。

一个N3的例子

@prefix dc: <http://purl.org/dc/elements/1.1/>.

<http://en.wikipedia.org/wiki/Tony_Benn>
  dc:title "Tony Benn";
  dc:publisher "Wikipedia".

最后,我想向您链接一篇您应该阅读的有用文章: 将非结构化文本数据标准化为语义Web格式

让我们假设您已经找到了可以提供文本含义的终极算法。 特别是您选择了一个字符串表示,但考虑到您的算法正确找到了含义,那么它可以由算法唯一标识。 对?

因此,为简单起见,我们假设该特定文本只有一个含义。 在这种情况下,在算法输出描述它的短语之前,它是唯一标识的。

所以,基本上,为了存储意义,我们首先需要一个唯一的标识符。

意义只能存在于与主题的关系中。 这是一个主题的意义。 为了使该主题具有意义,我们必须对其有所了解。 为了使主体具有独特的意义,必须明确地向观察者表示(即算法)。 例如,由于数学符号的标准化,语句“2 = 3”将具有假的含义。 但用外语写的文字对我们没有任何意义。 没有任何我们无法理解的东西。 例如“生命的意义是什么?”

总之,为了构建一个可以从任何随机文本中提取绝对意义的算法,我们作为人类必须首先知道任何事物的绝对意义。 :)

实际上,您只能以已知格式提取已知语言的已知文本的含义。 为此,在神经网络,自然语言处理等领域有工具和研究......

尝试将其变成char *(字符串c风格)它很容易存储在数据库中并且易于使用,使其长度为50(10个字)或75个(15个字)

编辑:将两者放在同一个单词(想象力)上,然后检查相似的索引并将它们分配给相同的单词

使用

SELECT * FROM Dictionary WHERE Index = "Imagination"

抱歉,我对SQL不太熟悉

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM