我是人工智能领域的新手。
我想知道如何在数学上/逻辑上表示句子的含义,例如:
- 猫喝牛奶。
- 太阳是黄色的。
- 我昨天在上班。
因此,它可以转换为计算机可理解的形式并进行算法分析。
有什么线索吗?
我是人工智能领域的新手。
我想知道如何在数学上/逻辑上表示句子的含义,例如:
因此,它可以转换为计算机可理解的形式并进行算法分析。
有什么线索吗?
让我们首先对您提出的短语进行分类:
1)最简单的总是描述性和不可变的(在上下文中)短语,如“太阳是黄色的。”。一些常见的表示:
颜色('太阳',黄色)。
或者简单地说:
黄色(“太阳”)。
Sun.color=黄色
2)当事实与“我昨天上班”中的时间相关时,我们将描述分为时间指示器和不可变事实:
什么时候(昨天,在(我,工作场所))。
注意 when 有两个部分,时间标识和不可变事实。
另一个序言变体是:
在(我,工作场所,[何时(昨天)])。
其中列表中的内容(括号)表示“可选的相关事实”。
I.at = {
职位=工作场所;
什么时候=昨天
}
3)“猫喝牛奶”的动作。还有一些更难的:
饮料(猫,牛奶)。
或者
行动(猫,饮料,牛奶)。
cat.drinks=[牛奶]
或者
cat.action = {
行动=饮料
对象=牛奶
}
显然,这些只是主要思想,不同的程序有很多表示,但大多数处理相同类型的结构。
(注意:术语“计算机可理解”是模棱两可的。当前的计算机什么都不理解。我们说这些表达式是可以理解的,因为它的编译器/解释器接受它们,并描述了短语的内容,程序可以转换他们到其他结果)。
人们通常将这样的句子表示为特定长度的向量,通常长度约为 2500。可以做到这一点的算法是sentence2vec。它基本上是 word2vec 的派生词。它允许您训练一个模型,该模型可以将句子转换为向量,然后您可以将其输入神经网络或其他算法。您可以查看论文,您应该可以在 google 学者上找到该论文。如果你需要链接,我可以得到它。另一种可能性是词嵌入,我还没有找到一篇好的论文,但是 cortical.io 有一个免费的 API,可以让你搞乱它们的实现。根据我们目前的研究,词嵌入更好地模仿了真实的人脑,但在实践中更经常使用 sentence2vec/word2vec。