在下载并培训了SyntaxNet之后,我正在尝试编写一个程序,该程序可以打开新的/现有的文件,例如AutoCAD文件,并通过分析文本:打开LibreOffice file X将文件保存在特定目录中。综合考虑SyntaxNet的产量为:
echo "save AUTOCAD file X in directory Y" | ./test.sh > output.txt
Input: save AUTOCAD file X in directory Y
Parse:
save VB ROOT
+-- X NNP dobj
| +-- file NN compound
| +-- AUTOCAD CD nummod
+-- directory NN nmod
+-- in IN case
+-- Y CD nummod
首先,我考虑将已解析的文本更改为XML格式,然后使用语义分析(如SPARQL
)解析XML文件,以找到ROOT=save、dobj=X和nummode=Y,然后编写一个python程序来执行文本中所述的相同操作
我不知道如果我将已解析的文本更改为XML,然后使用语义分析来使用查询将ROOT
与保存{nummode
我有一些想法用subprocess
包将python连接到终端,但是我没有找到任何可以帮助我保存的东西,例如从终端保存的AUTOCAD文件或任何其他文件,或者我需要在python的帮助下编写一个脚本.sh
?
我对文本的句法和语义分析做了大量的研究,比如Christian Chiarcos, 2011,Hunter and Cohen, 2006和{a4},还研究了Microsoft Cortana,Sirius,google now但他们中没有一个人详细介绍如何将解析文本更改为执行命令,这让我得出这样的结论:这项工作太容易谈论了,但由于我不是计算机科学专业的学生,因此我不知道我能做些什么。在
我是计算机科学世界和综合网络的初学者。我写了一个简单的SyntaxNet Python算法,使用SyntaxNet分析用户插入的文本命令,“用LibreOffice writer打开我用laboratory writer编写的文件本”,然后用Python算法分析SyntaxNet的输出,将其转换为执行命令,在本例中打开一个文件,任何支持的格式,Linux下的LibreOffice,ubuntu14.04)环境。您可以看到hereLibreOffice定义的不同命令行,以便在此包中使用不同的应用程序。在
安装并运行SyntaxNet(解释了here中的安装过程)之后,将在}函数(
~/models/syntaxnet/suntaxnet/
目录中打开shell脚本demo.sh,并删除{line 54 to 56
),以便从SyntaxNet获得tab delimited
输出,而不是树格式的输出。在终端窗口中键入以下命令:
echo‘打开我和实验室作家一起写的档案书,还有图书馆作家’| syntaxnet/演示.sh>;输出.txt
output.txt
文档保存在demo.sh
所在的目录中,它将以某种方式类似于下图:output.txt
作为输入文件,并使用下面的python算法分析SyntaxNet输出,并从LibreOffice包中标识目标应用程序所需的文件名和用户要使用的命令。在#!/bin/sh
我再次说我是一个初学者,代码可能看起来不那么整洁或专业,但我只是试图利用我所有的知识,这是迷人的
SyntaxNet
到一个实用的算法。 这个简单的算法可以打开文件:使用
LibreOffice
支持的任何格式,例如.odt,.odf,.ods,.html,.odp
。它可以理解
LibreOffice
中不同应用程序的隐式引用,例如:“用libreoffice打开文本文件本”而不是“用libreoffice writer打开文件本”可以克服SyntaxNet解释作为形容词的文件名的问题。
相关问题 更多 >
编程相关推荐