文章插图
丰色 发自 凹非寺
量子位 报道 | 公众号 QbitAI用自然语言生成代码不算稀奇,但现在,这项技术涉及的业务范围真是越来越广了 。
就有一个叫做Text2App的“AI”,你“喂”给它一串文字需求,它就能直接给你“消化”成安卓应用!
不信你看 。
这是输入的文字:
创建一个APP,上面有一个视频、一个按钮,一个文本转语音的功能以及一个手机加速传感器 。点击按钮,播放视频;摇晃手机,念出文字“happy Text2App” 。整个过程除了等编译花上几分钟,无需别的代码操作,就能直接生成下面这样一个安卓应用:
视频加载中...不知广大程序员们尤其是安卓开发,看完感觉如何?
介于文字描述和源码之间的“中间语言”Text2App这个框架出自加州大学洛杉矶分校和孟加拉国工程技术大学 。
它不是直接将自然语言生成源码,而是先生成中间语言,再由编译器生成源码 。
为什么要先生成中间语言呢?
因为此前大多数根据文字描述生成程序的研究都是基于端到端的神经机器翻译 (NMT) 模型,类似于Google 翻译,将自然语言直接翻译成源码 。
虽然其中一些效果还不错,但大多数无法生成大一点的、上百行代码的程序 。
为了克服这个限制,研究人员就在这个过程发明了一个新的形式语言 (formal language)做“桥梁” 。
它能“搞懂”复杂的源码,并将用户给定的自然语言转换出一小部分tokens(标记),再形成一个简单的程序表示代码 。
最后用研究人员开发的一个编译器,就能把这个中间语言转换成源码 。
最理解编程语言的还是编译器,完全让AI来生成复杂的程序还不行,所以离不开编译器的大力支持 。
当然,生成中间语言还是靠的神经机器翻译模型 。
下面是“文字描述转换成APP”的具体流程:
文字描述:
Create an app with a textbox, a button named “Speak”, and a text2speech. When the button is clicked, speak the text in the text box.上面这段自然语言首先被格式化(例如将“Speak”转为“ ‘STRING0’:’Speak’ ”),然后交给一个有编码器和解码器的Seq2Seq神经网络翻译成简单的应用程序表示(SAR)——这就是上面说的中间语言:
再通过SAR编译器将中间语言转换成MIT App Inventor源码文件(.scm/.bky),由MIT打包成最终可用的安卓端应用程序即可 。
下面是自然语言和中间语言(SAR)自动合成的示意图,很直观:
功能还比较初级正如大家所料,这个框架还是比较初级,目前描述文字需要被限定在一个固定范围:
只能描述11种组件:文本框、按钮、标签、播放器、时间选择器……
能实现的事件、操作等倒是没有明确限制,感兴趣的可以具体测测能实现多少 。
目前的功能也很单一,广大安卓开发程序员们还远远不用担心AI“抢饭碗” 。
不过研究人员说了,最终目的是使Text2App 成为一个成熟的基于自然语言的APP开发平台 。
需要多久呢?还未可知 。
论文地址:https://arxiv.org/abs/2104.08301
完整视频及试玩链接:https://text2app.github.io/
参考链接:
https://techxplore.com/news/2021-06-text2app-framework-android-apps-text.html
— 完 —
量子位 QbitAI · 头条号签约
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 已婚女人对男人有哪些需求
- word文档表格0不显示解决方法 excel表格中0不显示怎么办
- 狗狗总是乱咬怎么办?教你给狗狗挑选玩具
- word文档怎么生成网页链接 word文档怎么生成网页?
- word文档中如何删除分节符 word文档怎样删除分节符,如何删除分节符
- 怎么在word文档添加水印 怎样给Word文档添加水印?
- 怎么在word文档添加水印 怎么给Word文档添加水印
- 如何给word文档加水印 怎么给word文档加水印
- 怎样给文档添加水印 如何快速给文档添加水印?
- 怎样给word文档加水印 如何给文档加水印-给word文档加水印