4

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

你如何提取页面的含义。

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

但是通过想象力的力量,让我们假设我已经编写了完全可以做到这一点的终极脚本。例如,我输入以下文本:

想象力将人类从黑暗时代带到了现在的文明状态。想象力使哥伦布发现了美洲。想象力使富兰克林发现了电。

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

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

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

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

想象力有助于人类进步。

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

保存在什么意义下?我想听听你的意见。

更新:让我简单地重申这个问题。

您如何在数据中表示含义?

4

7 回答 7

6

假设我们的大脑无法访问形而上学的云服务器,意义被表示为神经元连接的配置、荷尔蒙水平、电活动——甚至可能是量子波动——以及所有这些与外部世界和其他大脑之间的相互作用。所以这是个好消息:至少我们知道——至少——你的问题有一个答案(含义以某种方式在某处表示)。坏消息是,我们大多数人都不知道这是如何运作的,而那些认为自己理解的人无法说服其他人或彼此。作为一个无能的人,我无法回答你的问题,但提供一份我遇到的关于大问题的较小和退化版本的答案列表。

如果您想表示词汇实体(例如概念、动作)的含义,您可以使用分布式模型,例如向量空间模型. 在这些模型中,意义通常具有几何成分。每个概念都表示为一个向量,您将这些概念放置在一个空间中,使相似的概念彼此更接近。构建这样一个空间的一个非常常见的方法是选择一组常用词(基础词)作为空间的维度,并简单地计算一个目标概念在语音/文本中与这些基础词一起被观察到的次数。相似的概念将在相似的上下文中使用;因此,它们的向量将指向相似的方向。最重要的是,您可以执行一系列加权、归一化、降维和重组技术(例如,tf-idfhttp : //en.wikipedia.org/wiki/Pointwise_mutual_information、SVD)。一种稍微相关但概率性的——而不是几何的——方法是潜在的狄利克雷分配和其他生成/贝叶斯模型,这些模型已经在另一个答案中提到。

向量空间模型方法有利于区分目的。您可以决定两个给定的短语在语义上是否相关(例如将查询匹配到文档或查找相似的搜索查询对以帮助用户扩展他的查询)。但是在这些模型中加入语法并不是很简单。我不能很清楚地看到你如何用向量表示句子的含义。

语法形式可以帮助整合句法,并为意义和概念之间的关系带来结构(例如,头脑驱动的短语结构语法)。如果你构建了两个共享词汇和语法的代理,并通过这些机制让它们进行交流(即,将信息从一个传递到另一个),你可以说它们代表了意义。这是一个哲学问题,当一个机器人通过内置或出现的语法和词汇告诉另一个机器人选择“黑盒子上方的红色圆圈”,而另一个机器人成功地选择了预期的对象(参见这个非常有趣的基础词汇实验:Talking Heads)。

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

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

于 2011-09-14T18:14:25.850 回答
1

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

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

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

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

于 2011-09-15T16:08:19.330 回答
0

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

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

因此,基本上,为了存储含义,我们首先需要一个唯一标识符。

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

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

在实践中,您只能以已知格式提取以已知语言编写的已知文本的含义。而为此,在神经网络、自然语言处理等领域都有工具和研究……

于 2011-09-15T15:14:07.867 回答
0

I will talk about Semantic Web because I think it offers the most advanced studies and language implementations about the subject.

Resource Description Framework is one of the many data models inherent to Semantic Web available to describe informations.

RDF is an abstract model with several serialization formats (i.e., file formats), and so the particular way in which a resource or triple is encoded varies from format to format

and

However, in practice, RDF data is often persisted in relational database or native representations also called Triplestores, or Quad stores if context (i.e. the named graph) is also persisted for each RDF triple.

RDF content can be retrieved using RDF Queries.


Topic Maps another model of knowledge data storing and representation.

Topic Maps is a standard for the representation and interchange of knowledge, with an emphasis on the findability of information.

and

In the year 2000 Topic Maps was defined in an XML syntax XTM. This is now commonly known as "XTM 1.0" and is still in fairly common use.

From the official Topic Maps Data Model:

The only atomic fundamental types defined in this part of ISO/IEC13250 (in 4.3) are strings and null. Through the concept of datatypes, data of any type can be represented in this model. All datatypes used shall have a string representation of their value space and this string representation is what is stored in the topic map. The information about which datatype the value belongs to is stored separately, in the form of a locator identifying the datatype.

There are many other formats proposed, you can take a look at this article for more informations.

I also want to link you a recent answer I wrote about a similar topic with a lot of useful links.


After reading various articles, I think a common direction every method is taking is storing data as a text format. The relative information can be stored in a database directly as text.

Having the data in an understandable text format has several benefits, perhaps more than the disadvantages.

Other Semantic methods such as Notation 3 (N3) or Turtle Syntax use slight different formats, but still plain text.

A N3 example

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

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

Finally, I would like to link you an useful article you should read: Standardization of Unstructured Textual Data into Semantic Web Format.

于 2011-09-14T10:44:01.703 回答
0

语义学是一个广泛而深入的领域,有很多模型,从人工智能实现的角度来看,它们都具有优势和问题。在如此稀缺的背景下,除了“研究文献,选择一个与你的直觉产生共鸣的理论(如果你在这方面取得成功,用你自己的更好的理论代替它,并获得学分)”。话虽如此,我依稀记得的大一课程材料曾经有关于称为“框架”的递归结构的好话,但这一定是 15 年前的事了。

于 2011-09-03T08:47:23.980 回答
0

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

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

于 2011-09-08T07:40:05.637 回答
-2

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

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

利用

SELECT * FROM Dictionary WHERE Index = "Imagination"

抱歉,我对 SQL 不太熟悉

于 2011-09-03T08:28:18.863 回答