使用自然语言处理将命令分解为组件

Breaking a command into components using Natural Language Processing

我想将变量赋值命令转换成代码。例如: "create a variable alpha equal to the number 7" 或 "define a new variable alpha and set it to 7",两者都应转换为:

int alpha = 7;

我计划如何完成此任务是通过查找字符串中的特定组件(例如变量名称和变量值)。一旦我弄清楚变量名是 "alpha" 并且变量值是“7”,我就可以构造上面看到的代码。但是我将如何通过自然语言处理找到变量名和变量值呢?用户可能会添加额外的单词或省略一些单词(甚至可能颠倒顺序)。

这是一个非常难的问题。您可以尝试一些基于依赖语法的规则,您可以从 spacy 获得这些规则,但这些规则可能只涵盖人们实际可以说的一小部分。

CMU 的研究人员最近 published a dataset and announced a challenge for exactly this task. The challenge is running on CodaLab 根据排行榜,似乎所有的提交都使用了组织者提供的数千个示例训练的神经网络。