小编aco*_*tis的帖子

了解具体化-“ x和y之间保持什么关系?”

我正在阅读Pereira和Shieber 撰写的“序言和自然语言分析”(pdf)一书,在问题2.7中有一段评论:

在语义网络表示中,我们经常想问“福特与公司类别之间保持什么关系?”

修改语义网络的表示形式,以允许这种新类型的问题和上一个问题中的类型。提示:将语义网络关系视为Prolog个人。这是一项重要的Prolog编程技术,有时在哲学界称为“具体化”。

我不熟悉这种reification技术。

好,让我们假设这个事实和规则数据库:

isa('Ole Black', 'Mustangs').
isa('Lizzy', 'Automobiles').
isa('Ford','Companies').
isa('GM','Companies').
isa('1968','Dates').

ako('Model T', 'Automobiles').
ako('Mustangs', 'Automobiles').
ako('Companies', 'Legal Persons').
ako('Humans', 'Legal Persons').
ako('Humans', 'Physical Objects').
ako('Automobiles', 'Physical Objects').
ako('Legal Persons', 'Universal').
ako('Dates', 'Universal').
ako('Physical Objects', 'Universal').

have_mass('Physical Objects').
self_propelled('Automobiles').

company(X) :- isa(X,'Companies').
legal_persons(X) :- ako(X,'Legal Persons').
Run Code Online (Sandbox Code Playgroud)

如何编写一个查询,在上面找到的代码之间的关系'Ford',并'Companies'isa?当然,我总是可以这样写

fact(isa, 'Ford','Companies').
Run Code Online (Sandbox Code Playgroud)

和查询,?- fact(X, 'Ford','Companies').但以某种方式我认为这不是正确的方法。

有人可以解释一下如何正确执行吗?

prolog

9
推荐指数
2
解决办法
168
查看次数

将 python ast 转换为 json 并返回

我知道如何通过库将 python 转换astjsonast2json

import ast
from ast2json import ast2json
node = ast.parse("2+3", mode='eval')
e = eval(compile(node,'<string>','eval')) # equals 
node_j = ast2json(node)
Run Code Online (Sandbox Code Playgroud)

这给了我这个对象

{'_type': 'Expression',
'body': {'_type': 'BinOp',
'col_offset': 0,
'left': {'_type': 'Num', 'col_offset': 0, 'lineno': 1, 'n': 2},
'lineno': 1,
'op': {'_type': 'Add'},
'right': {'_type': 'Num', 'col_offset': 2, 'lineno': 1, 'n': 3}}}
Run Code Online (Sandbox Code Playgroud)

但如何将node_j对象转换回ast对象呢?

python json

6
推荐指数
1
解决办法
1828
查看次数

如何在表达式中用理性替换浮点数?

我有一个来自同情计算的表达式:

sqrt(pi)*(0.333333333333333*a + 0.333333333333333*b - 2.66666666666667*c**2)
Run Code Online (Sandbox Code Playgroud)

其中a,b,c是符号,并且想要解析它以便浮点数被替换为像in中的有理数

sqrt(pi)*(1/3*a + 1/3*b - 8/3*c**2)
Run Code Online (Sandbox Code Playgroud)

我知道如何手工完成,

In[24] Rational(str(0.333333333333333)).limit_denominator(1000)

Out[24]: 1/3
Run Code Online (Sandbox Code Playgroud)

但是我不太清楚如何解析原子并只挑选那些浮子,然后用有理数近似代替.

在表达式中进行这些替换的最明智的方法是什么?

python sympy

5
推荐指数
1
解决办法
1557
查看次数

是否有超对偶数的 numpy 实现?

我想问是否存在对偶数numpy的实现,或者目前正在制定任何计划,或者是否有任何维护良好的 python 包来实现这个代数。我发现了一些软件包,但它们要么没有维护,要么写得不好。到目前为止,我见过的最好的包是一个包。pypiMathematica

python numpy

5
推荐指数
0
解决办法
310
查看次数

标签 统计

python ×3

json ×1

numpy ×1

prolog ×1

sympy ×1