丰色 发自 凹非寺
量子位 报道 | 公众号 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)——这就是上面说的中间语言:

<complist> <textbox> <button> string0 </button> <text2speech> </complist><code> <button1clicked> <text2speech1> <textboxtext1> </text2speech1></button1clicked> </code>

再通过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

你给需求文档,AI就能帮你开发安卓App相关推荐

  1. 【产品】PRD需求文档:云迹扶教(公益支教APP)

    记录学习旅程~ 欢迎各位道友指教与交流~ 简介:借助CSDN平台发布自己编写的需求文档.参考了前辈们的经验,编写如下(持续更新): PRD:云迹扶教APP产品需求文档 一.文档综述 1.1 版本历史 ...

  2. 快易需求文档编辑系统(二期)第一次迭代开发总结

    设想和目标 1.目的: 项目为"快易需求文档智能生成系统".软件需求文档是软件开发与维护的重要基础,本项目希望通过建立一个专业的需求文档编辑系统,为软件开发人员提供一个便捷的协作文 ...

  3. 需求分析中适应性怎么写_需求文档,怎么写才不会被打?

    说起需求文档,作为产品经理的必备技能之一,恐怕没有一个产品经理不知道的吧.虽说需求文档是产品经理必备技能之一,但是要写一份开发看了不想打人的需求文档还是需要花点功夫的. 什么是需求文档 需求文档,就是 ...

  4. 客户需求文档 MRD 和项目需求分析文档

    2008/07/23, 12:00 上午 客户需求文档 MRD Marketing Requirement Doc 和项目需求分析文档是项目开始时最重要的文档.是项目实施的依据,MRD 是来自客户和市 ...

  5. 智慧社区综合管理平台——需求文档(第九组)

    目录 1.引言  1.1 项目简介 1.2 目的 1.3 文档的范围 1.4 预期的读者和阅读建议 1.5 产品的范围 1.6 参考文献 2.总体描述 2.1 产品视角 2.2 用户特征 2.3 系统 ...

  6. 产品需求文档:英语流利说,教你流利说英语

    编辑导语:英语作为一种国际化语言,一直以来都是各国学习的重点.然而在学习基础的理论之外,能够真正地与外国人进行交流也是很重要的,于是出现了越来越多的能够提高口语能力的英语APP.其中,就包括英语流利说 ...

  7. 社区智能管理平台 需求文档【第八周】

    //本文档为北京理工大学21级软件需求工程课程11组的项目需求文档 目录 a.引言 a.1目的 a.2文档约定 a.3预期的读者和阅读建议 a.4产品的范围 a.5参考文献 b.综合描述 b.1产品的 ...

  8. [转]产品需求文档(PRD)的写作

    产品需求对产品研发而言非常重要,写不好需求,后面的一切工作流程与活动都会受到影响.转载一篇文章,关于产品需求文档写作方面的,如下: 本文摘自(一个挺棒的医学方面专家):http://www.cnblo ...

  9. 【敏捷开发】从需求文档出发聊敏捷

    做这项调研的初心是什么? 需求文档解析成本太高,还存在高风险. RD解析一遍,QA解析一遍.而且还存在风险 让产品开发过程更加和谐,而不是紧张和对峙 需求的用户视角,非PM,RD视角 当自问心中的用户 ...

最新文章

  1. 金山员工被离职后拿到高薪工作:感谢公司辞退我,还给我赔偿金
  2. Mila唐建团队新作:可迁移、可解释的单细胞RNA测序模型
  3. 汇编中的.section命令及汇编语言程序都至少声明的3个段
  4. linux pppd源码下载_pppd源代码分析
  5. java与java ee_CapeDwarf – Java EE上的Google App Engine
  6. 我打败了妈妈 - 张朔
  7. easyUI不同版本的combotree控件clear方法的区别
  8. XAF框架简介-C#语言
  9. 书单丨成为全栈工程师的5种硬实力
  10. android编译make错误——javalib.jar invalid header field”、classes-full-debug.jar 错误 41 ...
  11. jmeter安装配置教程
  12. java web缓存技术
  13. php工业物联网实现,利用工业物联网网关巧妙实现远程控制
  14. hdu 5234 Happy birthday 背包 dp
  15. php acs解密,RSA 加密及php实现
  16. Android Q USB Tethering 端口切换分析
  17. 方舟建立服务器显示cmd,家庭电脑建方舟服务器
  18. 网易云音乐实时计算平台设计及实践
  19. 大数据学习路线思维导图
  20. python import和from xx import xx的理解

热门文章

  1. SQL Server转义下划线
  2. MySQL错误代码:MySQL Workbench中UPDATE期间的1175错误代码
  3. 一分钟经理“游戏图”提要
  4. storm从入门到放弃(一),storm介绍
  5. 双系统删除分区后Grub启动失败
  6. checkboxlist 数据库连接代码
  7. 子主题function php,wordpress子主题怎么添加
  8. php 防止按住f5不松,WordPress如何防御(频繁F5刷新)的解决方法
  9. maven 强制更新_Android App内部更新Library的方法
  10. Xamarin XAML语言教程XAML文件结构与解析XAML