CN112789591A - 自动内容编辑器 - Google Patents

自动内容编辑器 Download PDF

Info

Publication number
CN112789591A
CN112789591A CN201980064197.6A CN201980064197A CN112789591A CN 112789591 A CN112789591 A CN 112789591A CN 201980064197 A CN201980064197 A CN 201980064197A CN 112789591 A CN112789591 A CN 112789591A
Authority
CN
China
Prior art keywords
content item
version
representation
neural network
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980064197.6A
Other languages
English (en)
Inventor
M·M·J·布罗克施密特
M·阿拉玛尼斯
A·L·冈特
殷鹏程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112789591A publication Critical patent/CN112789591A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computer Security & Cryptography (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述了一种编辑工具,该编辑工具具有存储神经网络的存储器,该神经网络已经被训练以从各对计算变化表示,每对包括内容项的第一版本和内容项的第二版本的表示,并且对于每个变化表示,神经网络已经被训练以根据变化表示和内容项的第一版本来预测更新内容项。编辑工具具有处理器,该处理器被配置为接收输入内容项并且使用神经网络根据变化表示来计算输入内容项的更新版本。

Description

自动内容编辑器
背景技术
编辑诸如音频文件、图像、文本文档、电子邮件、博客文章、代码片段和其他内容项等内容项是耗时的并且对于最终用户而言难以使用计算机技术来实现。终端用户通常不熟悉如何向计算机输入命令以编辑内容项,或者由于键盘输入错误、语音命令输入错误或手势输入错误而发现难以执行这个操作。在资源受限设备上空间和处理能力的限制也导致了在尝试使用这种资源受限设备编辑内容时很困难。
以下描述的实施例不限于解决已知内容编辑方法和装置的任何或所有缺点的实现。
发明内容
以下呈现本公开的简化概述,以便向读者提供基本理解。本概述既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。其唯一目的是以简化的形式呈现本文中公开的概念的选择,作为稍后呈现的更详细描述的序言。
在各种示例中,存在一种编辑工具,该编辑工具包括存储器,该存储器存储神经网络,该神经网络已经被训练以从多个对计算变化表示,每对包括内容项的第一版本和内容项的第二版本的表示,并且对于每个变化表示,神经网络已经被训练以根据变化表示和内容项的第一版本来预测更新内容项。该编辑工具具有处理器,该处理器被配置为接收输入内容项并且使用神经网络根据变化表示来计算输入内容项的更新版本。
很多附带特征将变得更好理解,因为它们在通过参考以下结合附图考虑的详细描述时将能够更好理解。
附图说明
根据以下结合附图阅读的详细描述,将能够更好地理解本说明书,在附图中:
图1是通过通信网络与各种最终用户设备进行通信的内容编辑器的示意图;
图2A是用于编辑内容项的内容编辑器的示意图;
图2B是用于从各对的语料库计算变化表示的内容编辑器的示意图,其示出了变化表示的聚类;
图2C是根据变化表示和表示内容项的第一版本的图形来生成表示内容项的树的示意图;
图3是示出内容编辑器的更多细节的示意图;
图4是两个变化表示的示意图;
图5是训练内容编辑器的神经网络的方法的流程图;
图6是由具有已经被训练的神经网络的内容编辑器执行的方法的流程图;
图7是表示内容项的第一版本的树和表示内容项的预测的第二版本的第二树的示意图;
图8是由生成器执行的方法的流程图;以及
图9示出了在其中实现内容编辑器的实施例的示例性的基于计算的设备。
在附图中,相似的附图标记用于指示相似的部分。
具体实施方式
以下结合附图提供的详细描述旨在作为对本示例的描述,而并非旨在表示构建或利用本示例的唯一形式。该描述阐述了示例的功能以及用于构造和操作示例的操作序列。然而,相同或等同的功能和序列可以通过不同的示例来实现。
文档的电子存储的一大优点是能够编辑它们。随着版本控制系统的广泛部署,这些编辑是可以在机器学习中利用的数据源,例如,如本文档的各个实施例中所述。在各种示例中,用于修复语法、敏捷性和样式的规则从常规编辑被自动提取到文档。同样,程序源代码也经常改变,以实现新特征,遵循最佳实践并且修复错误。在各种示例中,规则从常见编辑被自动提取到源代码。以类似的方式,通常使用图像编辑工具对图像进行编辑,诸如裁剪、对比度增强和其他编辑。在各种示例中,描述了自动编辑图像以实现常见样式变化的方式。
本文中描述的技术改善了计算设备的功能,因为对内容项的编辑被预测并且用户能够将所预测的编辑输入到计算设备,这节省了用户输入的负担并且提供了改进的人机交互。该技术使用经过训练的神经网络来预测对内容项的编辑,并且结果是一种以非常规方式进行操作的计算设备。
一般而言,本文中描述的示例使用与对内容项的较小编辑有关的数据,这些内容项是内容项的第一版本和内容项的第二版本大部分相同的编辑。
图1是经由诸如互联网、内联网或任何通信网络等通信网络104与一个或多个最终用户计算设备106、108、110通信的内容编辑器100的示意图。内容编辑器100是计算机实现的,并且用于部署内容编辑器100的基于计算的设备的示例在稍后关于图9给出。内容编辑器100可选地连接到或者能够访问变化表示的存储器102。变化表示是数字的,诸如向量,并且它指定对内容项的可能变化的多维空间中的点。多维空间中彼此接近的点表示语义上相似的内容项的变化。变化表示将在本文档的后面部分详细说明。
内容编辑器100从最终用户设备或通信网络104中的其他实体接收内容项112。内容项是数据,并且用于与本技术一起使用的内容项的示例的非穷举列表是:图像、视频、文本、电子邮件、博客文章、社交媒体文章、音频文件、代码片段、百科全书条目。内容编辑器使用已训练神经网络计算其接收的内容项的预测的第二版本。预测的第二版本被存储和/或发送给始发最终用户设备。假定存在要编辑的内容项112。已训练神经网络将内容项112的表示作为输入,该表示包括内容项的数据和关于内容项的元数据。神经网络还将变化表示作为输入,该变化表示在高层指示希望如何编辑输入内容项112。输入到神经网络的变化表示是从以下中的一项或多项计算的:用户输入、规则、变化表示的集群、变化表示的存储器102。有关如何训练神经网络的更多详细信息将在本文档的后面部分给出。在这一点上,应当注意,通过在内容项的表示中包括元数据,可以训练神经网络使得多维空间中接近的点在语义上指示对内容项的相似变化。
因为内容编辑器是完全自动化的,所以它大大减轻了最终用户计算设备106、108、110处的用户输入的负担。假定智能电话的用户正在尝试编辑文本文档以将文本文档置于散文风格。他或她能够实现期望编辑,而无需在智能电话中手动键入命令,也不必发出复杂的语音命令或手势命令。智能电话的用户指示期望进行编辑,或者智能电话预测期望进行编辑,并且智能电话处的客户端软件经由通信网络104访问内容编辑器100服务。指示期望变化的变化表示可以从最终用户设备发送到内容编辑器,也可以从变化表示存储器102中获取。内容编辑器100通过将文本文档的第一版本和变化表示输入到神经网络中来计算文本文档的更新版本。文本文档的第一版的表示包括文本文档中的数据和元数据,诸如段落长度、形容词与名词的比率、分号的数目或其他元数据。文本文档的更新版本被存储,被建议给用户,或者用于替换文本文档的第一版本。在一个示例中,文本文档的更新版本在用户界面处被呈现给用户,并且用户能够做出选择以将文本文档的更新版本输入到最终用户计算设备或其他计算设备。结果,最终用户具有较低复杂度,并且无需人工输入即可编辑文本文档。
尝试编写软件的膝上型计算机的用户能够显著减少在键盘上手动键入代码的负担,因为编辑工具能够根据变化表示自动编辑代码。当程序员编写代码片段时,内容编辑器根据有关代码片段的执行流程的元数据来计算代码片段的表示,诸如语法树或由语法树形成的图形。代码片段的表示具有来自代码片段的数据和有关代码片段的元数据(也称为语义信息)。编辑工具能够找到经过训练的相似代码片段的集群,并且查找与该集群相关联的一个或多个变化表示。向程序员建议查找到的变化表示,和/或选择查找到的变化表示之一并且将其与代码片段的表示一起输入到已训练神经网络中。然后,在应用变化表示的变化之后,神经网络计算预测的代码片段,该预测的代码片段是代码片段的预测的第二版本。然后,将预测的代码片段在图形用户界面或其他用户界面处被呈现给用户,使得程序员可以将预测的代码片段输入到计算设备。以这种方式,程序员可以编辑代码片段,而不必在用户界面处进行复杂的键入或其他命令。
增强现实计算设备的用户能够编辑他或她正在增强现实环境中观看的图像,并且能够在大大减少用户输入负担的情况下来进行这个操作。如果没有内容编辑器,增强现实计算设备的用户必须给出手势命令和/或语音命令,并且难以获取使用手势或语音命令来编辑图像所需要的精细指令粒度。使用内容编辑器,由神经网络根据变化表示来自动编辑图像。神经网络接收图像作为输入,并且计算或选择要应用于图像的变化的变化表示。变化表示是从以下中的一项或多项计算的:用户输入、变化表示的集群、变化表示的数据库。神经网络计算预测,该预测是图像的第二版本,其中变化表示已经应用于输入图像。图像的第二版本被存储或显示给用户。以这种方式,用户可以使用简单或最少的用户界面命令来对图像进行编辑。
在图1的示例中,内容编辑器具有被配置为执行以下中的一项或多项的处理器:保存内容项的更新版本,用更新版本替换输入内容项,使用更新版本校正输入内容项,使用更新版本完成输入内容项。
在图1的示例中,内容编辑器功能被部署为云服务。在其他示例中,内容编辑器功能分布在最终用户设备与远程实体之间,或者部署在最终用户设备处。
在图2A的示例中,内容项112被输入到内容编辑器100。内容编辑器计算内容项的表示,并且选择变化表示。在一个示例中,通过从存储器102中选择变化表示来计算变化表示。内容编辑器100处的神经网络接收内容项的表示和变化表示作为输入,并且计算预测。该预测用于计算内容项114的编辑版本。
在图2B的示例中,成对的内容项版本的数据库200是可用的。每对内容项版本具有内容项的第一版本和在内容项的第一版本的编辑之后已经观察到的内容项的“真值(ground truth)”第二版本。例如,在内容项是电子邮件的情况下,第一版本是由计算机自动生成的电子邮件,而第二版本是由特定人员编辑之后的同一电子邮件。例如,在内容项是代码片段的情况下,第一版本是个人编写的代码片段,而第二版本是在被编辑以符合一组特定代码设计要求之后的同一代码片段。例如,在内容项是图像的情况下,第一版本是由摄影记者捕获的图像,而第二版本是在由报纸图形艺术家编辑之后的同一图像。
内容编辑器100中的神经网络将来自数据库200的一对个体内容项作为输入,并且计算作为变化表示的预测。神经网络为数据库200中的每对计算变化表示,并且这给出了多个变化表示202。变化表示由无监督聚类过程204(诸如k均值或任何其他聚类过程)聚类。因此,计算多个集群206,每个集群包括在多维变化表示空间中彼此靠近的变化表示。
集群206由内容编辑器100以各种方式使用。在一个示例中,诸如图2A的情况,内容编辑器100使用集群来计算要应用于内容项112的变化表示。基于内容项112和集群206的属性来选择集群(例如,内容编辑器可以被设计为选择最常见变化集群)。然后,内容编辑器100向用户建议应用所选择的集群的变化表示。在另一示例中,计算集群中的各对的特征,并且自动生成规则,例如,如果内容项呈现出指定集群的特征,则自动应用指定集群的变化表示。在另一示例中,标识与集群的变化表示相对应的变化类型,并且将变化类型在由内容编辑器提供的编辑选项的菜单中提供给用户或者用于自动提取规则。
在另一示例中,作者能够查看内容编辑器定期做出的变化(标识为常见变化集群),以避免将来出现这样的问题。在另一示例中,软件开发团队能够查看通常所做的变化,以修复由集群说明的错误,从而改善其工程实践或开发技术来自动避免这样的问题。
图2C示出了诸如包括标记(token)T1...Tμ序列的代码片段等内容项的第一版本b的图形表示210。在图2C中也示出了示意性变化表示212,该变化表示212是被示出为矩形的向量,其中该向量在表示为RT的T维实数值空间中。图形表示210和向量212被输入到神经网络,该神经网络生成在这种情况下是树的预测214(表示为A)。该树是代码片段的语法树,该语法树是该代码片段的第一版本的预测的第二版本。语法树被转换为代码片段,该代码片段作为建议被提供给程序员或者用于替换或校正原始代码片段。
图形表示由最终用户设备或由内容编辑器或任何其他实体计算。代码片段的图形表示是通过计算代码片段的语法树并且根据有关代码片段的元数据向语法树添加边来计算的。代码片段包括标记序列,这些标记是变量、运算符、方法名称。标记序列被解析以生成语法树。额外边被添加到树以产生图形。额外边指示有关代码片段的可变流或其他元数据。
在一个示例中,两种不同类型的额外边被添加到语法树。第一种类型的额外边是语法边,第二种类型的额外边是语义边。语法边包括下一标记边和子边,这些标记边和子边用于表示代码片段的抽象语法树。语法边还包括将标记与标记在代码片段中出现的最后时间连接起来的最后的词法使用边。语义边包括将变量连接到在程序执行中可能使用变量的最后时间的最后使用边、将变量连接到在程序执行中写入变量的最后时间的最后写入边,以及将变量连接到在程序执行中从其计算变量的值的从其计算的边。其他类型的语义边也是可能的,它们可以捕获有关程序执行的更多信息,例如,不同程序变量之间的混叠、数据依赖性等。
图3是内容编辑器100的更详细的示意图。内容编辑器100包括神经网络编码器300和具有相关联的生成器304的神经网络解码器306。神经网络解码器计算内容项的预测的第二版本308。内容编辑器100使用成对的“真值(ground truth)”内容项版本200来训练。成对的内容项版本200如关于图2B所述。训练算法310用于训练诸如神经网络反向传播或神经网络反向传播的变化等内容编辑器100。由训练算法310使用的目标函数312表示为:
给定包括一对内容项版本(b,a)的观察到的变化,对生成器函数进行训练使得:
g(b,f(b,a))=a
其用语言表示为,生成器函数以内容项的第一版本以及用于从内容项的第一版本到内容项的第二版本的变化的变化表示的向量作为变元来计算内容项的第二版本。符号g是由图3的神经网络解码器306实现的函数。符号f是由图3的神经网络编码器300实现的函数。
在内容项是文本的情况下,在一些示例中,神经网络编码器是递归神经网络,而神经网络解码器是递归神经网络。
在内容项是图像的情况下,在一些示例中,神经网络编码器是卷积神经网络,而神经网络解码器是解卷积神经网络。
在内容项是包括代码片段的软件并且输入到编码器的内容项的表示是语法树的情况下,在一些示例中,神经网络编码器是适合于将树作为输入并且预测树作为输出的类型的递归神经网络。
在内容项是包括代码片段的软件并且输入到编码器的内容项的表示是图形的情况下,在一个示例中,神经网络编码器是适合于将图形作为输入并且预测树作为输出的类型的图形神经网络。
图4是具有两个维度(表示为K=2)的变化表示空间400的示意图。从B到A的变化由点402表示,从B1到A1的变化由点404表示。点402、404之间的距离是变化(B,A)和(B1,A1)的语义相似性的量度。在实践中,变化表示空间具有很多尺寸,尽管在图4中为了便于说明而示出了两个。
现在参考图3和5描述训练内容编辑器的方法。神经网络编码器300将内容项对的表示作为输入500,并且计算502变化表示,该变化表示是多维空间中的向量。来自内容项对的内容项的第一版本和变化表示被输入504到神经网络解码器306。神经网络解码器306与生成器304一起计算内容项的预测506的第二版本308。由训练算法310将内容项的预测的第二版本308与来自数据库200的内容项的实际第二版本进行比较508。训练算法根据比较和目标函数312来更新(使用反向传播510或另一更新过程)神经网络编码器300和神经网络解码器306。如果达到收敛512,则训练过程结束,并且神经网络参数被存储514。如果未达到收敛,则过程从操作500重复。
现在参考图6描述由训练之后的内容编辑器执行的方法。接收600内容项。内容项是文本或代码片段或图像或另一种类型的内容项。可选地,计算602内容项的表示。在内容项是文本或代码片段的一个示例中,计算语法树或图形作为表示。
内容编辑器选择604变化表示。它使用以下中的一项或多项来进行这个操作:先前内容项版本对、用户输入、规则的变化表示的集群616。内容编辑器将所选择的变化表示和内容项的表示(或内容项本身)输入606已训练神经网络(图3的编码器和解码器)。神经网络编码器预测608已编辑内容项并且保存预测610,或者向用户612建议预测的内容项,或者将所接收的内容项替换614为预测的内容项。
图7示出了表示内容项的第一版本的树700和表示内容项的预测的第二版本的第二树704的示意图。内容项是代码片段“y=x+z”,并且树700针对每个标记y、=、x、+、z具有一个叶子。标记y和=直接连接到树700的根节点,而标记x、+、z经由中间节点连接到根节点,以反映在代码片段中表达的加法运算。与每个叶节点相关联的是数值,诸如向量,该数值由v表示,该v由节点号的索引来索引。来自叶节点数值的信息被传播回树,并且存储在树的高级节点处。以这种方式,父节点具有关于从其延伸的树的子分支的信息。尚不知道表示代码片段的第二版本的相似树702,因为它需要由内容编辑器来预测。
图6的过程在操作602处的表示是诸如树700等树的情况下使用。操作608处的结果是由神经网络解码器输出的预测树704。在该示例中,预测树704具有标记为U1至U8的八个节点。如现在参考图8所述,诸如生成器304等生成器从预测树704生成代码片段。图8的示例使得生成器能够在适当的情况下将表示内容项的第一版本的树700的子分支复制到预测树704中。结果,改善了内容项的预测的第二版本的质量。
生成器可以访问第一内容项的树表示800,其中在树中的父节点处捕获有关树的个体子分支的信息。内容编辑器计算802内容项的预测的第二版本的树表示。
从内容项的预测的第二版本的树表示的根节点开始,生成器选择804:产生已知标记或节点;或者复制树的表示第一内容的项目。稍后将提供有关如何进行选择的更多详细信息。
如果生成器选择复制,则其复制808第一内容版本的树中的对应节点的子分支。如果生成器选择生成,则其通过随机地或以任何其他方式从指定的多个可能标记中选择标记来生成806已知标记。
生成器检查810在内容项的预测的第二版本的树中是否存在尚未处理的节点。如果是,则它按照深度第一顺序将812移动到下一节点,并且从操作804开始重复图8的过程。如果没有更多节点,则该过程结束814,并且所生成的标记序列被存储并且输出作为内容项的预测的第二版本。
现在给出使用数学符号的详细示例。
正式地,假定某个输入的原始版本χ-和该输入的编辑版本χ+,其中χ-和χ+大部分相同。给定编辑数据集
Figure BDA0002996807550000101
目标是学习表示函数fΔ,该函数fΔ将从χ-到χ+的编辑操作映射到实值变化表示
Figure BDA0002996807550000102
fΔ的期望质量是为了使所计算的变化表示具有以下属性:即,语义上相似的编辑在
Figure BDA0002996807550000103
中具有近距离表示。
良好的变化表示函数fΔ计算变化表示,该变化表示然后用于以单次方式将相同的语义编辑fΔ(·,·)应用于新输入。这是通过学习内容编辑器的神经网络来实现的,该神经网络称为神经编辑器α,该神经编辑器α接受变化表示和新输入并且将编辑应用于该新输入。例如,给定变化表示fΔ(x-,x+)和新输入χ′-,可以将语义上相似的编辑应用为χ′+=α(x′-,fΔ(x-,x+))。
本文中描述的技术将变化表示问题投射为类似于自动编码的任务,目的是在给定变化表示fΔ(x-,x+)和原始版本x-的情况下,使已编辑版本x+的α的重构误差最小化。通过限制fΔ的输出的容量,该技术引入了“瓶颈”,从而迫使整个框架不能简单地将fΔ(·,x+)视为传统自动编码器设置中的编码器并且将α视为传统自动编码器设置中的解码器;相反,针对目标进行优化需要α以从其输入x-获取关于x+的尽可能多的信息。
形式上,给定概率编辑器函数Pα(诸如神经网络)和数据集
Figure BDA0002996807550000111
该技术旨在使最大可能性损失最小化:
Figure BDA0002996807550000112
其用语言表示为,最大似然损失等于训练对的数目的倒数的负数乘以由神经网络在给定训练对和变化表示的情况下计算的预测的对数在训练对上的总和。
如现在通过非限制性示例描述的,神经网络用于实现Pα和fΔ
编辑器函数神经网络Pα以初始版本x-和变化表示fΔ(x-,x+)作为输入,并且学习将x-变换为x+。因此,具有从输入中进行复制的能力的编码器解码器架构是合适的。在一个示例中,序列到序列神经网络模型用于文本,图到树模型用于源代码,其已知语义在编码器和解码器侧均得到利用。如本文档前面所述,卷积模型可以更好地满足其他类别的编辑(例如,图像处理)的需求。
序列到序列神经编辑器
在一个示例中,使用具有关注的序列到序列神经网络模型(在x-的标记上)。该架构在编码器中使用双向长期短期存储器(LSTM),并且使用标记级复制机制将标记直接复制到解码序列中。与先前的序列到序列模型相比,该解码器将变化表示fΔ(·,·)作为附加输入。具体地,解码器LSTM接收先前标记的表示和变化表示的级联作为输入。这允许LSTM解码器在生成已编辑序列时考虑变化表示。
图到树神经编辑器
在一个示例中,使用图到树神经网络,该网络能够利用x-和x+的附加结构。为此,将基于图的编码器与基于树的解码器相结合。首先,令T(x)表示元素的树表示,例如,源代码的片段的语法树。通过对附加关系进行编码(例如,终端节点之间的“下一标记”关系、在若干位置出现同一标记等),将树扩展为图形。这产生了x-的基于图形的表示,表示为G(x)。为了将G(x-)编码为向量表示,该技术使用门控图形神经网络(GGNN)。类似于序列的递归神经网络,GGNN为图形中的每个节点计算表示。这些在解码器内的一组注意机制中使用,下面将进行说明。此外,图形中的每个节点的表示用于通过以下方式计算它们的加权平均来获取完整输入x-的表示:计算每个节点的得分,使用softmax来对得分进行归一化,并且使用结果值作为权重。
具体地,树T的生成被表示为动作序列
Figure BDA0002996807550000121
动作有两种可能的类型,如下:ApplyRule动作,其使用语法规则来扩展当前非终止语;以及terminal动作,其从词汇表生成终止标记。采取行动的概率建模为p(αt<t,x-),其中x-是输入的原始版本,α<t是到目前为止在生成过程中已经生成的部分树。在实践中,对部分树α<t的依赖性是通过LSTM单元以及“父母喂养”技巧来建模的,该LSTM单元用于在动作序列生成期间维持状态,在该“父母喂养”技巧中,在生成父节点时LSTM的状态用作附加输入。此外,该模型使用关注机制,该关注机制允许解码器参与输入序列。解码器以为G(x-)而计算的图形级别表示为条件,并且将该图形中的节点表示用作关注机制的存储器。变化表示fΔ(·)用作附加输入。
基于以下观察:对源代码进行的编辑经常通过在周围移动表达式来操纵语法树,该技术的一些但不是全部实施例增加了从输入复制整个子树的便利。为此,添加解码器动作SubTreeCopy。这个操作复制所指向的整个子树。
添加SubTreeCopy动作表示目标树现在有很多正确的生成序列。这个问题不能通过在每个生成步骤将所有正确的选择边缘化、通过对允许动作的概率分布进行归一化以总结具有相同效果的动作来轻易地解决。原因是,表示不同选择的动作序列的长度也可能不同。这个问题可以通过选择一个正确的生成序列(在可能的情况下贪婪地选择SubTreeCopy)并且通过改变训练目标以使正确的解码器动作选择不受惩罚来解决。为了实现这一点,使用正确选择的“多热(many-hot)”编码。在测试时,使用光束搜索,并且合并光束会得到相同的结果。
变化表示
为了计算有用的变化表示,模型需要关注x-与x+之间的差异。风险是,fΔ退化为x+的编码器,从而将α转换为解码器。为了避免这种情况,通过将变化表示生成到充当瓶颈的低维空间
Figure BDA0002996807550000131
中来限制fΔ的结果的能力,并且仅对从x-重构x+所需要的信息进行编码。
编辑的序列编码
给定x-(resp.x+)作为标记序列
Figure BDA0002996807550000132
使用差异算法计算两个序列中的标记的对准。额外符号
Figure BDA0002996807550000133
用于填充,+用于添加,-用于删除,
Figure BDA0002996807550000134
用于替换,=用于不变标记,以生成表示x-和x+的单个序列,诸如以下序列。
Figure BDA0002996807550000135
这里,标记
Figure BDA0002996807550000141
在编辑中被删除,
Figure BDA0002996807550000142
Figure BDA0002996807550000143
来替换,之后添加
Figure BDA0002996807550000144
等等。在序列中的每个元素中分别嵌入三个条目并且将它们的表示串联起来,可以将其馈送到序列编码器中,该序列编码器的最终状态是期望的变化表示。
编辑的图形编码
对于图形到树神经编辑器,将x-和x+表示为语法树T(x-)和T(x+)。通过使用“Child”和“NextToken”边将两棵树合并为一个图形来将这些树合并为图形表示G(x-→x+)。为了连接两棵树,计算与序列情况中相同的对准,将相同的叶子连接在一起,并且将每个替换的叶子连接到其替换。将该信息在树中传播,即,如果两个内部节点的所有后代均通过“=”边连接,则两个内部节点通过“=”边连接。
使用相同的“+”/“-”/
Figure BDA0002996807550000145
/“=”标签用于初始节点表示,将其计算为字符串标签(即,标记或非终端名称)和标签的嵌入的串联。为了获取变化表示,使用针对固定数目的时间步而展开的图形神经网络(GNN),并且再次使用上述加权平均策略。
图9示出了示例性的基于计算的设备918的各种组件,这些组件被实现为任何形式的计算和/或电子设备并且在一些示例中内容编辑器的实施例在这些组件中被实现。
基于计算的设备918包括一个或多个处理器900,该处理器900是微处理器、控制器或任何其他合适类型的处理器,该处理器900用于处理计算机可执行指令以控制设备的操作以便编辑内容和/或根据内容项的第一版本来预测内容项的第二版本。在一些示例中,例如在使用片上系统架构的情况下,处理器900包括一个或多个固定功能块(也称为加速器),该固定功能块实现训练内容编辑器的方法的一部分和/或使用已训练内容编辑器用硬件(而不是软件或固件)实现。在基于计算的设备处设置有包括操作系统922或任何其他合适的平台软件在内的平台软件,以使得应用软件924能够在该设备上执行。神经网络926以及用于训练神经网络的可选训练逻辑921存储在基于计算的设备918处。数据存储器928保存内容项、训练参数、所预测的内容项和其他数据。
计算机可执行指令使用由基于计算的设备900可访问的任何计算机可读介质来提供。计算机可读介质包括例如诸如存储器912等计算机存储介质、和通信介质。诸如存储器912等计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块等信息的任何方法或技术实现的易失性和非易失性的可移动和不可移动介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪存或其他存储技术、光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)或其他光学存储、磁带、卡带、磁带、磁盘存储或其他磁性存储设备、或者用于存储供计算设备访问的信息的任何其他非传输介质。相反,通信介质在诸如载波或其他传输机制等调制数据信号中体现计算机可读指令、数据结构、程序模块等。如本文中定义,计算机存储介质不包括通信介质。因此,计算机存储介质不应当被解释为传播信号本身。尽管计算机存储介质(存储器912)被示出为在基于计算的设备918内,但是应当理解,在一些示例中,该存储是远程分布或定位的并且可以经由网络或其他通信链路(例如,使用通信接口913)来访问。
基于计算的设备918还包括输出接口910,该输出接口910被布置为将显示信息输出到显示设备920,该显示设备920可以与基于计算的设备918分离或集成到基于计算的设备918。显示信息可以提供图形用户界面。输入接口902被布置为接收和处理来自一个或多个设备(诸如游戏控制器904、键盘906或鼠标908或其他用户输入设备)的输入。在一些示例中,用户输入设备检测语音输入、用户手势或其他用户动作,并且提供自然用户界面(NUI)。该用户输入可以用于选择变化表示,查看集群,选择所建议的内容项版本。在一个实施例中,如果显示设备920是触敏显示设备,则它也充当用户输入设备。在一些示例中,输出接口910将数据输出到除显示设备之外的其他设备。
输入接口902、输出接口910、显示设备920和用户输入设备中的任何一个可以包括NUI技术,该NUI技术使得用户能够以自然的方式与基于计算的设备交互,而不受由诸如鼠标、键盘、遥控器等输入设备施加的人为约束。在一些示例中提供的NUI技术的示例包括但不限于依赖于声音和/或语音识别、触摸和/或手写笔识别(触敏显示器)、屏幕上以及与屏幕相邻的手势识别、空气手势、头部和眼睛跟踪、声音和语音、视觉、触摸、手势和机器智能的技术。在某些示例中使用的NUI技术的其他示例包括意图和目标理解系统、使用深度相机的运动手势检测系统(诸如立体相机系统、红外相机系统、红绿蓝(rgb)相机系统及其组合)、使用加速度计/陀螺仪进行的运动手势检测、面部识别、三维(3D)显示器、头部、眼睛和凝视跟踪、沉浸式增强现实和虚拟现实系统、以及用于使用电场感测电极来感测大脑活动的技术(脑电图(EEG)和相关方法)。
作为本文中描述的其他示例的替代或补充,示例包括以下各项的任何组合:
条款1.一种编辑工具,包括:
存储器,存储神经网络,所述神经网络已经被训练以从各对计算变化表示,每对包括内容项的第一版本和所述内容项的第二版本的表示,并且对于所述变化表示中的每个变化表示,所述神经网络已经被训练以根据所述变化表示和所述内容项的所述第一版本来预测更新内容项;
处理器,被配置为接收输入内容项并且使用所述神经网络根据变化表示来计算所述输入内容项的更新版本。
2.根据条款1所述的编辑工具,其中所述处理器被配置为向用户输出建议,所述建议包括所述输入内容项的所述更新版本,并且其中所述处理器被配置为执行以下中的一项或多项:保存所述更新版本,用所述更新版本替换所述输入内容项,使用所述更新版本校正所述输入内容项,使用所述更新版本完成所述输入内容项。
3.根据任一前述条款所述的编辑工具,其中所述变化表示是表示多维空间中的点的向量,在所述多维空间中,语义上相似的变化彼此靠近。
4.根据任一前述条款所述的编辑工具,其中所述处理器被配置为计算在计算所述输入内容项的所述更新版本时要使用的变化表示。
5.根据条款4所述的编辑工具,其中所述处理器被配置为根据以下中的一项或多项来计算要使用的所述变化表示:规则、用户输入、包括内容项的第一版本和所述内容项的第二版本的每对内容项。
6.根据任一前述条款所述的编辑工具,其中所述内容项是文本或软件,并且所述神经网络被配置为接收所述内容项的、作为树或图形的表示以作为输入。
7.根据任一前述条款所述的编辑工具,其中所述处理器被配置为使用所述神经网络为多个所述对中的每对计算变化表示,聚类所述变化表示,以及使用所述聚类以用于以下中的一项或多项:向用户提出建议,创建规则,标识要应用于内容项的变化表示。
8.根据任一前述条款所述的编辑工具,其中所述内容项是软件,并且所述神经网络被配置为接收所述内容项的表示作为输入,所述内容项的表示是通过解析所述软件的标记序列以形成树并且基于对所述软件的程序分析向所述树添加边而形成的图形。
9.根据任一前述条款所述的编辑工具,其中所述内容项是软件,并且其中所述处理器被配置为通过解析所述软件的标记以形成树并且根据所述软件的程序分析结果向所述树添加边来计算内容项的图形表示。
10.根据条款9所述的编辑工具,其中所述处理器被配置为根据以下中的一项或多项来向所述树添加边:将变量连接到所述变量在所述软件的程序执行中被使用的最后时间,将变量连接到所述变量在所述软件的程序执行中被写入的最后时间,将变量连接到所述变量在所述软件的程序执行中从其被计算的值,在所述软件的程序执行中的混叠,在所述软件的程序执行中的指向分析,在所述软件的程序分析中的路径条件。
11.根据任一前述条款所述的编辑工具,其中所述神经网络包括递归神经网络,并且所述内容项是文本或软件。
12.根据任一前述条款所述的编辑工具,其中所述神经网络包括卷积神经网络和解卷积神经网络,并且所述内容项是图像。
13.根据任一前述条款所述的编辑工具,其中所述内容项是文本或软件,并且所述神经网络包括树到树神经网络或图形到树神经网络。
14.根据任一前述条款所述的编辑工具,其中所述编辑工具包括生成器,所述生成器被配置为:通过选择是否将表示内容项的第一版本的树的子分支复制到所述内容项的所生成的第二版本中来从所述内容项的所述第一版本生成所述内容项的所述第二版本。
15.一种编辑内容项的计算机实现的方法,包括:
在存储器中存储神经网络,所述神经网络已经被训练以从多个对计算变化表示,每对包括内容项的第一版本和所述内容项的第二版本的表示,并且对于所述变化表示中的每个变化表示,所述神经网络已经被训练以根据所述变化表示和所述内容项的所述第一版本来预测更新内容项;
在处理器处接收输入内容项;
使用所述处理器,以使用所述神经网络根据变化表示来计算所述输入内容项的更新版本。
条款16.根据条款15所述的方法,包括计算在计算所述输入内容项的所述更新版本时要使用的变化表示。
条款17.根据条款14所述的方法,包括根据以下中的一项或多项来计算要使用的所述变化表示:规则、用户输入、所述输入内容项与各对内容项的多个集群中的一个集群的相似性、包括内容项的第一版本和所述内容项的第二版本的每对内容项。
条款18:根据权利要求15所述的方法,包括接收所述内容项的表示作为输入,所述内容项的表示是通过解析所述软件的标记序列以形成树并且基于对所述软件的程序分析向所述树添加边而形成的图形。
条款19.根据权利要求15所述的方法,包括通过选择是否将表示内容项的第一版本的树的子分支复制到所述内容项的所生成的第二版本中来从所述内容项的所述第一版本生成所述内容项的第二版本。
条款20.一种编辑工具,包括:
存储器,存储神经网络,所述神经网络已经被训练以从多个对计算变化表示,每对包括代码片段的第一版本和所述代码片段的第二版本的表示,并且对于所述变化表示中的每个变化表示,所述神经网络已经被训练以根据所述变化表示和所述代码片段的所述第一版本来预测更新代码片段;
处理器,被配置为接收输入代码片段并且使用所述神经网络根据变化表示来计算所述输入代码片段的更新版本;
其中所述处理器计算所述输入代码片段的图形表示以输入到所述神经网络。
术语“计算机”或“基于计算的设备”在本文中用于指代具有处理能力使得其能够执行指令的任何设备。本领域技术人员将意识到,这种处理能力合并到很多不同的设备中,因此术语“计算机”和“基于计算的设备”分别包括个人计算机(PC)、服务器、移动电话(包括智能电话)、平板电脑计算机、机顶盒、媒体播放器、游戏机、个人数字助理、可穿戴计算机和很多其他设备。
在一些示例中,本文中描述的方法通过有形存储介质上的机器可读形式的软件来执行,该软件例如是包括计算机程序代码装置的计算机程序的形式,当该程序在计算机上运行时,该计算机程序代码装置适于执行本文中描述的一种或多种方法的所有操作,并且其中该计算机程序可以体现在计算机可读介质上。该软件适合于在并行处理器或串行处理器上执行,使得方法操作可以以任何合适的顺序或同时执行。
这承认软件是有价值的可单独交易的商品。旨在涵盖用于执行期望功能的在“虚拟”或标准硬件上运行或控制“虚拟”或标准硬件的软件。还旨在涵盖“描述”或定义硬件配置的软件,诸如HDL(硬件描述语言)软件,该软件用于设计硅芯片或用于配置通用可编程芯片以执行期望功能。
本领域技术人员将认识到,用于存储程序指令的存储设备可选地分布在整个网络上。例如,远程计算机能够存储被描述为软件的过程的示例。本地或终端计算机能够访问远程计算机并且下载部分或全部软件以运行该程序。替代地,本地计算机可以根据需要下载软件片段,或者在本地终端处执行一些软件指令并且在远程计算机(或计算机网络)处执行一些软件指令。本领域技术人员还将认识到,通过利用本领域技术人员已知的常规技术,全部或部分软件指令可以由诸如数字信号处理器(DSP)、可编程逻辑阵列等专用电路来执行。
如本领域技术人员将很清楚的,可以在不丧失所寻求的效果的情况下扩展或改变本文中给出的任何范围或设备值。
尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。而是,以上描述的特定特征和动作被公开作为实现权利要求的示例形式。
应当理解,上述益处和优点可以涉及一个实施例,或者可以涉及若干实施例。实施例不限于解决任何或所有所述问题的实施例,也不限于具有任何或所有所述优点和益处的实施例。还应当理解,对“一个(an)”项目的引用是指这些项目中的一个或多个。
本文中描述的方法的操作可以以任何合适的顺序执行,或者在适当的情况下同时执行。另外,在不脱离本文中描述的主题的范围的情况下,可以从任何方法中删除个体框。可以将上述任何示例的方面与所描述的任何其他示例的方面相结合以形成其他示例,而不会失去所寻求的效果。
术语“包括(comprising)”在本文中用来表示包括所标识的方法框或元素,但是这样的框或元素不包括排他性列表,并且方法或装置可以包含附加框或元素。
应当理解,以上描述仅是通过示例的方式给出的,并且本领域技术人员可以做出各种修改。上面的说明书、示例和数据提供了示例性实施例的结构和使用的完整描述。尽管上面已经以某种程度的特殊性或者参考一个或多个个体实施例描述了各种实施例,但是本领域技术人员可以在不脱离本说明书的范围的情况下对所公开的实施例进行多种改变。

Claims (15)

1.一种编辑工具,包括:
存储器,存储神经网络,所述神经网络已经被训练以从多个对计算变化表示,每对包括内容项的第一版本和所述内容项的第二版本的表示,并且对于所述变化表示中的每个变化表示,所述神经网络已经被训练以根据所述变化表示和所述内容项的所述第一版本来预测更新内容项;以及
处理器,被配置为接收输入内容项并且使用所述神经网络根据变化表示来计算所述输入内容项的更新版本。
2.根据权利要求1所述的编辑工具,其中所述处理器被配置为向用户输出建议,所述建议包括所述输入内容项的所述更新版本,并且其中所述处理器被配置为执行以下中的一项或多项:保存所述更新版本,用所述更新版本替换所述输入内容项,使用所述更新版本校正所述输入内容项,使用所述更新版本完成所述输入内容项。
3.根据权利要求1或权利要求2所述的编辑工具,其中所述变化表示是表示多维空间中的点的向量,在所述多维空间中,语义上相似的变化彼此靠近。
4.根据任一前述权利要求所述的编辑工具,其中所述处理器被配置为:计算在计算所述输入内容项的所述更新版本时要使用的变化表示。
5.根据权利要求4所述的编辑工具,其中所述处理器被配置为根据以下中的一项或多项来计算要使用的所述变化表示:规则、用户输入、包括内容项的第一版本和所述内容项的第二版本的每对内容项。
6.根据任一前述权利要求所述的编辑工具,其中所述内容项是文本或软件,并且所述神经网络被配置为接收所述内容项的、作为树或图形的表示以作为输入。
7.根据任一前述权利要求所述的编辑工具,其中所述处理器被配置为:使用所述神经网络为多个所述对中的每对计算变化表示,聚类所述变化表示,以及使用所述聚类以用于以下中的一项或多项:向用户提出建议,创建规则,标识要应用于内容项的变化表示。
8.根据任一前述权利要求所述的编辑工具,其中所述内容项是软件,并且所述神经网络被配置为接收所述内容项的表示作为输入,所述内容项的表示是通过解析所述软件的标记序列以形成树并且基于对所述软件的程序分析向所述树添加边而形成的图形。
9.根据任一前述权利要求所述的编辑工具,其中所述内容项是软件,并且其中所述处理器被配置为通过解析所述软件的标记以形成树并且根据所述软件的程序分析结果向所述树添加边来计算内容项的图形表示。
10.根据权利要求9所述的编辑工具,其中所述处理器被配置为根据以下中的一项或多项来向所述树添加边:将变量连接到所述变量在所述软件的程序执行中被使用的最后时间,将变量连接到所述变量在所述软件的程序执行中被写入的最后时间,将变量连接到所述变量在所述软件的程序执行中从其被计算的值,在所述软件的程序执行中的混叠,在所述软件的程序执行中的指向分析,在所述软件的程序分析中的路径条件。
11.根据任一前述权利要求所述的编辑工具,其中所述神经网络包括递归神经网络,并且所述内容项是文本或软件。
12.根据权利要求1至7中任一项所述的编辑工具,其中所述神经网络包括卷积神经网络和解卷积神经网络,并且所述内容项是图像。
13.根据权利要求1至10中任一项所述的编辑工具,其中所述内容项是文本或软件,并且所述神经网络包括树到树神经网络或图形到树神经网络。
14.根据权利要求1至11中任一项所述的编辑工具,其中所述编辑工具包括生成器,所述生成器被配置为:通过选择是否将表示内容项的第一版本的树的子分支复制到所述内容项的所生成的第二版本中,来从所述内容项的所述第一版本生成所述内容项的所述第二版本。
15.一种编辑内容项的计算机实现的方法,包括:
在存储器中存储神经网络,所述神经网络已经被训练以从多个对计算变化表示,每对包括内容项的第一版本和所述内容项的第二版本的表示,并且对于所述变化表示中的每个变化表示,所述神经网络已经被训练以根据所述变化表示和所述内容项的所述第一版本来预测更新内容项;
在处理器处接收输入内容项;以及
使用所述处理器,以使用所述神经网络根据变化表示来计算所述输入内容项的更新版本。
CN201980064197.6A 2018-09-27 2019-06-28 自动内容编辑器 Pending CN112789591A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/145,041 US11150875B2 (en) 2018-09-27 2018-09-27 Automated content editor
US16/145,041 2018-09-27
PCT/US2019/039671 WO2020068234A1 (en) 2018-09-27 2019-06-28 Automated content editor

Publications (1)

Publication Number Publication Date
CN112789591A true CN112789591A (zh) 2021-05-11

Family

ID=67441614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980064197.6A Pending CN112789591A (zh) 2018-09-27 2019-06-28 自动内容编辑器

Country Status (4)

Country Link
US (1) US11150875B2 (zh)
EP (1) EP3857432A1 (zh)
CN (1) CN112789591A (zh)
WO (1) WO2020068234A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377422A (zh) * 2021-06-09 2021-09-10 大连海事大学 一种基于深度学习识别自我承认技术债务方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885277B2 (en) 2018-08-02 2021-01-05 Google Llc On-device neural networks for natural language understanding
WO2020149897A1 (en) * 2019-01-17 2020-07-23 Visa International Service Association A deep learning model for learning program embeddings
US10983761B2 (en) * 2019-02-02 2021-04-20 Microsoft Technology Licensing, Llc Deep learning enhanced code completion system
US11526680B2 (en) * 2019-02-14 2022-12-13 Google Llc Pre-trained projection networks for transferable natural language representations
US20200371778A1 (en) * 2019-05-21 2020-11-26 X Development Llc Automated identification of code changes
US11243746B2 (en) 2019-07-01 2022-02-08 X Development Llc Learning and using programming styles
CN112230781B (zh) * 2019-07-15 2023-07-25 腾讯科技(深圳)有限公司 字符推荐方法、装置及存储介质
US11048482B2 (en) * 2019-07-26 2021-06-29 X Development Llc Automated identification of code changes
US11074062B1 (en) * 2019-08-14 2021-07-27 Amazon Technologies, Inc. Neural networks for software patch applicability
US11468786B2 (en) * 2019-10-16 2022-10-11 Adobe Inc. Generating tool-based smart-tutorials
US11169786B2 (en) 2020-02-04 2021-11-09 X Development Llc Generating and using joint representations of source code
US11138020B1 (en) * 2020-09-03 2021-10-05 Sap Se Content provisioning system
CN112328232A (zh) * 2020-11-26 2021-02-05 杭州安恒信息安全技术有限公司 一种代码提示方法及相关装置
US11604628B2 (en) 2020-12-16 2023-03-14 Google Llc Generation and/or recommendation of tools for automating aspects of computer programming
US11461081B2 (en) * 2021-01-27 2022-10-04 X Development Llc Adapting existing source code snippets to new contexts
US11714610B2 (en) * 2021-06-21 2023-08-01 International Business Machines Corporation Software code integration from a media file
US11775267B2 (en) * 2021-12-07 2023-10-03 Google Llc Identification and application of related source code edits
CN114510966B (zh) * 2022-01-14 2023-04-28 电子科技大学 一种基于图神经网络的端到端大脑因果网络构建方法
US11516158B1 (en) 2022-04-20 2022-11-29 LeadIQ, Inc. Neural network-facilitated linguistically complex message generation systems and methods
US11914976B2 (en) * 2022-04-29 2024-02-27 Bank Of America Corporation Three-dimensional software code review engine

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106165352A (zh) * 2014-03-31 2016-11-23 微软技术许可有限责任公司 对文档的基于电子通信的存储以支持多工作流
US20160350084A1 (en) * 2015-05-29 2016-12-01 Intentional Software Corporation System and method for combining text editing and tree encoding for computer programs
US20170212829A1 (en) * 2016-01-21 2017-07-27 American Software Safety Reliability Company Deep Learning Source Code Analyzer and Repairer
US20170323636A1 (en) * 2016-05-05 2017-11-09 Conduent Business Services, Llc Semantic parsing using deep neural networks for predicting canonical forms

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7110936B2 (en) * 2001-02-23 2006-09-19 Complementsoft Llc System and method for generating and maintaining software code
US7050863B2 (en) * 2002-09-11 2006-05-23 Fisher-Rosemount Systems, Inc. Integrated model predictive control and optimization within a process control system
RU2487403C1 (ru) * 2011-11-30 2013-07-10 Федеральное государственное бюджетное учреждение науки Институт системного программирования Российской академии наук Способ построения семантической модели документа
US20140173563A1 (en) * 2012-12-19 2014-06-19 Microsoft Corporation Editor visualizations
US10579396B2 (en) * 2014-04-09 2020-03-03 Nice-Systems Ltd. System and automated method for configuring a predictive model and deploying it on a target platform
US9336483B1 (en) * 2015-04-03 2016-05-10 Pearson Education, Inc. Dynamically updated neural network structures for content distribution networks
US9652712B2 (en) * 2015-07-27 2017-05-16 Google Inc. Analyzing health events using recurrent neural networks
US11144889B2 (en) * 2016-04-06 2021-10-12 American International Group, Inc. Automatic assessment of damage and repair costs in vehicles
US11086896B2 (en) * 2016-06-19 2021-08-10 Data.World, Inc. Dynamic composite data dictionary to facilitate data operations via computerized tools configured to access collaborative datasets in a networked computing platform
US10754441B2 (en) * 2017-04-26 2020-08-25 Microsoft Technology Licensing, Llc Text input system using evidence from corrections
US11238339B2 (en) * 2017-08-02 2022-02-01 International Business Machines Corporation Predictive neural network with sentiment data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106165352A (zh) * 2014-03-31 2016-11-23 微软技术许可有限责任公司 对文档的基于电子通信的存储以支持多工作流
US20160350084A1 (en) * 2015-05-29 2016-12-01 Intentional Software Corporation System and method for combining text editing and tree encoding for computer programs
US20170212829A1 (en) * 2016-01-21 2017-07-27 American Software Safety Reliability Company Deep Learning Source Code Analyzer and Repairer
US20170323636A1 (en) * 2016-05-05 2017-11-09 Conduent Business Services, Llc Semantic parsing using deep neural networks for predicting canonical forms

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHAONA GHOSH等: "Neural Networks for Text Correction and Completion in Keyboard Decoding", 《JOURNAL OF LATEX CLASS FILES》, 8 August 2015 (2015-08-08) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377422A (zh) * 2021-06-09 2021-09-10 大连海事大学 一种基于深度学习识别自我承认技术债务方法
CN113377422B (zh) * 2021-06-09 2024-04-05 大连海事大学 一种基于深度学习识别自我承认技术债务方法

Also Published As

Publication number Publication date
WO2020068234A1 (en) 2020-04-02
US11150875B2 (en) 2021-10-19
US20200104102A1 (en) 2020-04-02
EP3857432A1 (en) 2021-08-04

Similar Documents

Publication Publication Date Title
CN112789591A (zh) 自动内容编辑器
US11222167B2 (en) Generating structured text summaries of digital documents using interactive collaboration
JP7430660B2 (ja) テキストの創作方法、装置、機器及び記憶媒体
CN112507715B (zh) 确定实体之间关联关系的方法、装置、设备和存储介质
US11645314B2 (en) Interactive information retrieval using knowledge graphs
KR101855597B1 (ko) 계층적 회귀 신경망을 이용하여 비디오 문절을 캡셔닝하기 위한 시스템 및 방법
US20220237799A1 (en) Segmenting objects in digital images utilizing a multi-object segmentation model framework
US10474962B2 (en) Semantic entity relation detection classifier training
US20180260370A1 (en) Information Extraction and Annotation Systems and Methods for Documents
US10579632B2 (en) Personalized content authoring driven by recommendations
JP7301922B2 (ja) 意味検索方法、装置、電子機器、記憶媒体およびコンピュータプログラム
JP2019008778A (ja) 画像の領域のキャプション付加
Cao et al. Image captioning with bidirectional semantic attention-based guiding of long short-term memory
US11361002B2 (en) Method and apparatus for recognizing entity word, and storage medium
JP6361351B2 (ja) 発話ワードをランク付けする方法、プログラム及び計算処理システム
US20210312318A1 (en) Systems and methods for automated content curation using signature analysis
US20220284174A1 (en) Correcting content generated by deep learning
US20230315988A1 (en) Systems and methods for generating text descriptive of digital images
JP2022537860A (ja) 音声パケット推薦方法、装置、電子機器およびプログラム
KR102202372B1 (ko) 영상 컨텐츠를 재사용하여 사용자 인터랙션을 인지할 수 있는 인터랙티브 미디어 제작 시스템 및 그 운용방법
Tang et al. Layoutnuwa: Revealing the hidden layout expertise of large language models
AU2020343670B2 (en) Automatic preprocessing for black box translation
KR102486806B1 (ko) 인공지능에 기반하여 시놉시스 텍스트를 분석하고 시청률을 예측하는 서버
Osuji et al. A Systematic Review of Data-to-Text NLG
JP6201702B2 (ja) 意味情報分類プログラム及び情報処理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination