自然语言中圣人的简单对话系统

目标

开发一个命令行工具,该工具能够接受自然语言中的命令,并由Sage(一个开源软件)执行计算机代数系统 1)

如何使用

建筑物

您需要:

  • 温室气体
  • 卷曲(以便电缆安装卷曲成功)
  • 打电话的方式圣人在终端上(通常圣人命令。它假设它在您的路径中)
  • POSIX系统
  • 当然还有GF

查看数学语法库:

svn公司svn://molto项目.eu/mgl

进入圣人目录并使其:

镉mgl/sage制作

第一次你制作它将失败,要求您在圣人安装。请参阅安装页面.

现在尝试构建g鼠尾草再一次2:

制作

该系统在Mac(OS X 10.7)和Linux(Ubuntu)上进行了测试。

用法

按以下方式运行工具:

./g安全英语

将输入语言作为参数。启动服务器需要几秒钟的时间。之后,它将回复一些服务器信息并显示提示:

鼠尾草>

然后可以输入查询:

sage>计算八进制数12和二进制数100的乘积。(3) 40答案:是40。

为了显示CAS实际上是幕后黑手,让我们尝试一些象征性的东西:

计算x的最大公约数以及x和y的乘积。(4) x个答案:它是x。

并与以下内容进行比较:

计算x的最大公约数以及x和y的和。(5) 1答案:是1。

Sage在这两种情况下都做了正确的事情,x和y是未绑定的数值变量。

sage>计算pi处余弦的二次迭代导数。(6) 1答案:是1。

正在退出

通过发出CRTL+D退出会话:这样服务器就可以干净地退出。

另一个不同语言的例子:

./g西班牙语通过端口9000登录到localhost会话ID为c1ef10dfd49e4fdb3214fa6d3a3b9c92等待。。。清空区块2握手结束。会话是c1ef10dfd49e4fdb3214fa6d3a3b9c92sage>计算一方的想象,推导出一个表达式。(4) 0答案:es 0。

涉及整数文字和积分的最新示例:

sage>计算1、2、3、4和5的总和。(3) 15答案:是15。sage>计算x在1到100范围内的总和。(4) 5050答案:是5050。sage>计算余弦从0到pi和2的商的积分。等待。。。(5) 1答案:是1。sage>计算从1到2的函数x到x平方根的积分。(6) 4/3*平方米(2)-2/3答案:是4乘以2的平方根减去2和3的商。

其他调用选项

使用英语:

g鼠尾草

使用语言:

gfsage语言

一般调用:

gfsage[选项]

哪里选项是:

缩写形式 长形 描述
-小时 --帮助 打印使用情况页
-i语言 --input-lang=语言 在中进行查询语言
-o语言 --output-lang=语言 在中给出答案语言
-V液位 --verbose=级别 设置详细程度液位
-t文件 --测试=文件 测试样品在里面文件
-v[声音] --语音[=voice] 使用语音输出。要列出声音,请使用?作为语音.
-F类 --有反馈 回答时重述查询。

限制

  • 在Darwin(OS X 10.6和10.7)上,Sage部分中的一个错误使系统在一些计算(介于7和10之间)后没有响应
  • 在某些机器上,Sage服务器需要时间进行响应。

此情况由以下消息发出信号:

gfsage:连接CurlCouldntConnect

我使用一台Linux虚拟机重现了这种情况,发现有时服务器需要重试大约10次才能捕获,但随后它会在数小时内保持正常运行。我猜这与一些超时服务器中的限制。从以前的重试中终止孤立的python进程可能也会有所帮助(killall蟒蛇).


  1. 事实上,Sage更多的是以统一的方式呈现的计算机代数包的集合。 

  2. 所有这些建筑操作都会要求圣人“重建”自身。请注意,第一次重建需要一些时间。 

评论

安装瓶颈

乔迪,

在遵循安装程序的同时,我设法让Sage启动并运行,包括笔记本电脑。然而我得到了

超灵魂斗士:圣人奥尔加卡普洛蒂$makeghc-cpp-DDARWIN--make GfSage.hs-optl“-Wl,-read_only_relocs,suppress”-package gf-package curl-package-json-o GfSage:无法满足-包卷曲(使用-v获取更多信息)make:***[gfsage]错误1

你为什么需要卷发?你在取什么?我在/usr/bin/curl中安装了curl-我在这里编译什么?

阴谋集团安装

乔迪,

我阅读了代码并看到了curl网络库函数的调用位置,所以我通过运行

超级灵魂斗士:sage olgacaprotti$sudo阴谋集团安装curl

但后来

超灵魂斗士:圣人奥尔加卡普洛蒂$makeghc-cpp-DDARWIN--make GfSage.hs-optl“-Wl,-read_only_relocs,suppress”-package gf-package curl-package-json-o GfSage[1 of 6]编译语音(Voice.hs,Voice.o)[2]编译命令(Commands.hs、Commands.o)[3/6]编译SageSide(SageSide.hs,SageSides.o)[4/6]编译传输(Transfer.hs,Transfer.o)[5/6]编译GfSide(GfSide.hs,GfSider.o)[6/6]编译主程序(GfSage.hs,GfSage.o)正在链接gfsage。。。ld:警告:-read_only_relocs不能与x86_64一起使用ld:警告:无法为_ffi_call_unix64创建压缩展开:未使用基于RBP或RSP的帧ld:警告:PIE已禁用。代码签名PIE中不允许使用绝对寻址(可能是-mdynamic-no-pic),但可以在/Library/Frameworks/GHC.framework/Versions/7.0.3-x86_64/usr/lib/GHC-7.0.3/integer-gmp-0.2.0.3/libHSinteger-gmp-0-2.0.3.a(mode1o.o)中使用。要修复此警告,请不要使用-mdynamic-no-pic进行编译,也不要使用-Wl、-no_pie进行链接make-C nlgf基本grep-q“sage.nlgf”/Applications/sage/devel/sage/setup.py||请将“sage.nlgf”添加到/Applications/sage/devel/sage/setup.py。make[1]:***[基本]错误1make:***[gfsage]错误2

在我看来设置.py是自动生成的,但从何而来?

sage.py是自动生成的

sage.py是第一次编译sage时自动生成的。只是你必须加上圣人.lgfsetup.py中导入的模块列表,以便Sage查找我们的文件。

--乔迪·萨卢德斯

蟒蛇.py

到底是哪一行?它怎么知道在哪里可以找到sage.nlgf?

对不起,我以前从未使用过python。

鼠尾草模块树

假设SAGEROOT公司是您的sage安装的根源(您可以通过书写获得鼠尾草根)设置.py应该在里面SAGEROOT/devel/sage公司它指向内部的模块SAGEROOT/devel/sage/sage.

如果一切顺利的话SAGEROOT/devel/sage/sage/nlgf公司目录,其中至少包含,前奏曲属性.py.

设置.py查找类似以下内容的行:

包=[

它将Sage要导入的包的列表定义为用逗号分隔的字符串。只需插入'鼠尾草.nlgf'其中之一。

--乔迪·萨卢德斯

语音输入?

你认为我们可以有语音输入吗?我们在Android上使用了谷歌工具包来编写旅行习语手册,所以我很好奇。那太好了。我用数学表达式尝试了MAC shell命令“say”,也许我也可以用你的示例试试:)

事实上,Jordi,语音界面将与Trondheim中显示的Java小程序密切相关,并允许指定LaTeX,您还记得吗?这是由戈登·亨特小组在金斯顿学院完成的。

语音输入

我在语音输入方面有过非常令人失望的经历,我计划在本书的另一页中描述。但也许我拿错了工具箱,或者我的英语口音真的很糟糕。

你介意给我指一下这个Java小程序吗?

--乔迪·萨卢德斯

数学讲座