自然语言处理领域一直面临一个核心问题:如何合理地表示言语的内在意义。在2013年之前,one-hot是最常用的词汇表示方法。在这种词袋模型下,词语被表示为极其稀疏的向量,每个词之间的关系彼此独立,无法有效捕捉深层次的语义。
随后出现的一系列预训练词向量(如Word2Vec、GloVe等)在一定程度上解决了词袋模型的稀疏性问题,提升了大多数自然语言处理任务的效果。然而,它们仍然难以处理诸如组合性、多义性、指代消解和依存关系等复杂现象。直到2018年,随着基于大规模语料训练的深度语言模型的出现,自然语言处理领域取得了显著进展,尤其是在阅读理解方面。尽管如此,在实际应用中,这些技术带来的改进并不显著。
2019年,GPT-2模型的参数量达到了惊人的15亿,其生成的新闻甚至能欺骗专业记者。然而,研究表明,这些模型更多依赖于语言中的统计线索,而非真正的逻辑理解。例如,当使用相同的模型学习武侠小说时,生成的文本出现了“三柄长剑断作两截”这种统计上合理但逻辑上错误的句子。这表明基于深度学习的大规模语言模型对语言的理解仍有局限。
在统计学派兴起之前,符号学派的学者们已经开始研究语言的表示问题。20世纪初,索绪尔等人提出了符号学派的观点,认为语言与形式语言在基本语法逻辑上是一致的。美国逻辑学家理查德·蒙塔古提出“蒙太古语法”,为语义表示奠定了基础。蒙塔古认为,自然语言和形式语言可以用单一的精确理论来理解和描述。
早期的语义表示工作主要集中在符号学派,如一阶逻辑表达式和Lambda演算。后来,研究人员开始探索其他方法,如AMR(抽象意义表示)和FMR(功能意义表示)。FMR利用高阶函数进行意义表达,将语义和语用分离,提高了模块的复用性和适用性。此外,一些工业界机构也开发了适应自身业务需求的语义表示方法,如亚马逊的Alexa语音助手采用的AMRL。
我们一直在寻找一种高效且可扩展的解决方案,能够快速适应行业需求,摆脱传统方法对数据标注的依赖,同时结合先进的通用模型。基于Go语言的开源库FMR就是这一努力的具体体现。FMR框架使得工程师能够迅速将行业特有的语言逻辑转化为可读的语法,满足行业定制化需求。相比传统框架,FMR具有更高的可解释性和可控性,部署更为便捷。
与传统的自然语言处理流水线方法不同,语义解析尽量保留所有符合语义的解析树,并结合上下文语境解决歧义问题。例如,在FMR中,词的切分依据Unicode标准,并在此基础上根据语法进行解析,大大减少了分词模型误差的传播。此外,FMR在部署时可以编译成可以直接执行的二进制文件,极大简化了部署过程。
在金融行业中,票据审核是一个典型的场景。在这里,语言的歧义性被人为地降低,使得语义解析能够更好地发挥作用。同样,在公安行业中,海量数据的处理需要高效的解析工具。我们开发的警情案情分析预警系统已经在多地公安系统中得到应用,有效地提升了工作效率。
语义解析依赖的所有语义解析语法是否都需要人工编写?在特定领域,确实需要人工先验知识来制定规则。但对于大多数情况,我们可以利用统计和机器学习方法从语言数据中学习规律。此外,语义解析不仅仅是正则表达式匹配或槽位填充,它能够处理语言的组合性和递归性。在标注数据充足的情况下,符号化语义解析仍然具有独特的优势,因为它的解释性更强,能够提供更可靠的决策支持。
语义解析是一种有效的自然语言处理方法,尤其适用于缺乏标注数据的场景。虽然深度学习模型在许多任务上取得了令人瞩目的成果,但它们的解释性较差,难以应对高容错率的场景。语义解析在金融、公安等领域展现出了巨大的潜力,有望成为未来一段时间内的一种理想选择。