semantic-analysis相关内容

抽象语法树和具体语法树有什么区别?

我一直在阅读有关解释器/编译器如何工作的一些内容,我感到困惑的一个方面是 AST 和 CST 之间的区别.我的理解是解析器生成一个 CST,将其交给语义分析器,后者将其转换为 AST.但是,我的理解是语义分析器只是确保遵循规则.我真的不明白为什么它实际上会进行任何更改以使其抽象而不是具体. 我是否遗漏了语义分析器的某些内容,或者 AST 和 CST 之间的区别是否有些人为? 解决方案 ..

基于释义检测查找相似文本

我有兴趣根据释义找到类似的内容(文本).我该怎么做呢?有没有可以做到这一点的特定工具?最好在python中. 解决方案 我相信您正在寻找的工具是潜在语义分析. 鉴于我的帖子会很长,我不会详细解释它背后的理论——如果你认为它确实是你要找的东西,我建议你查一下.最好的起点是这里: http://staff.scm.uws.edu.au/~lapark/lt.pdf 总而言之, ..
发布时间:2021-06-07 20:38:38 其他开发

编译器构造的语义分析阶段有哪些工具?

编译器的构建可以分为几个阶段,例如词法分析,语法分析,语义分析等。在词法分析中,有Lex,Flex等工具。在语法分析中有Yacc, Bison等。我很好奇语义分析阶段可以使用哪些工具? 解决方案 据我所知没有语言不可知的工具来执行类型检查,如果有的话,它们肯定不会普遍适用,因为许多语言的类型系统过于不同和复杂,无法由通用工具处理。 借助范围解析,有一些工具可以为您处理的空间。例如,如 ..

野牛语义类型检查分析

我一直在尝试到处寻找示例,但是却徒劳无功. 我正在尝试编写一个基本的Ruby解释器.为此,我编写了一个弹性词法文件,其中包含标记识别语句和一个语法文件. 我希望我的语法包含语义类型检查. 我的语法文件包含例如: arg : arg '+' arg 这应该是整数和浮点数的有效规则. 根据我所阅读的内容,我可以为arg之类的非终端指定类型,如下所示: %typ ..
发布时间:2020-09-21 04:04:36 其他开发

从语义分析阶段重用符号表以生成代码

我目前正在为具有全局变量和嵌套子例程功能的语言构建编译器.以前,我只为语言创建过一个编译器,该语言只具有局部变量而没有嵌套的子例程. 在代码生成阶段,如何重用在语义分析阶段填充的符号表,我遇到了一个问题.我将符号表做成一堆链表,其中每个链表代表在特定作用域中声明的标识符.每次进入作用域时,都会创建一个新列表并将其推入堆栈,并成为当前作用域.同样,每次离开示波器时,都会弹出堆栈顶部的列表.最后 ..

如何将LR(1)解析转换为抽象语法树?

我已经编码了一个表驱动的LR(1)解析器,但是它工作得很好,但是在解析语法树/抽象语法树的阶段,我有些脱节。这是一个我非常热衷的项目,但是我真的在这里陷入了僵局。提前谢谢你的帮助。 编辑:同样,我的解析器仅使用一个2d数组和一个动作对象,该对象告诉它接下来要去哪里,或者它减少了哪里去以及弹出了多少项目。我注意到许多人使用访客模式。我不确定他们如何知道要制作哪种类型的节点。 这是上下文的 ..

如何管理野牛变量声明的语义规则

我必须构建一个将Java语言转换为pyhton的编译器.我正在使用Flex和Bison工具.我创建了flex文件,并在Bison中定义了我必须实现的一些限制(例如数组,循环管理,类管理,逻辑算术运算符管理等)的语法语法. 我在理解如何处理语义规则时遇到了麻烦.例如,我应该处理import语句和变量声明的语义,在符号表中添加变量,然后处理翻译. 这是symboltable.h模块中符号表的结构: ..

抽象语法树和具体语法树有什么区别?

我一直在阅读一些口译/编译器的工作方式,而令我感到困惑的一个方面是AST和CST之间的区别.我的理解是,解析器生成CST,然后将其交给语义分析器,后者将其转换为AST.但是,我的理解是语义分析器只是确保遵守规则.我真的不明白为什么它会进行任何更改以使其变得抽象而不是具体. 关于语义分析器,我是否缺少某些东西,或者AST和CST之间的区别是人为的? 解决方案 一个具体的语法树完全以解析 ..

RDF和OWL工作流程问题

我一直在通过Protege查看和使用OWL,我想知道我是否正确理解了“工作流程"及其构想(从头开始建立数据库: 使用Protege或同等功能为您的数据生成OWL本体 将此架构导出到RDF 使用定义为三元组中的某些元素的类以及您的目标数据 将您的Triplestore导出到RDF 使用openRDF/sesame或Jena加载定义的数据和本体 根据OWL本体验证RDF三重存储,以确保 ..
发布时间:2020-05-23 19:05:08 其他开发

如何识别形容词或副词?

我是NLP的新手....是否有任何API或方法可以从句子中识别动词,形容词或副词? 我在项目中需要它吗? 解决方案 您将需要 Part-语音Tagger (POSTagger).这确定了句子中每个单词的作用. Wikipedia拥有NLP工具包的优秀列表,并且它们几乎都具有POSTaggers. 如果您的材料是普通的书面英语,那么POSTaggers会做的很好.如果口语性很强(例如在 ..
发布时间:2020-05-18 00:59:23 其他开发

使用WordNet确定两个文本之间的语义相似性?

如何使用WordNet确定python中两个文本之间的语义相似性? 明显的预处理是删除停用词并阻止词干,但是那又是什么呢? 我能想到的唯一方法是计算两个文本中每个单词之间的WordNet路径距离.这是字母组合的标准.但是这些都是大的(400个单词)文本,它们是自然语言文档,其单词没有任何特定的顺序或结构(英语语法强加的单词除外).那么,您将在文本之间比较哪些词?您将如何在python中 ..
发布时间:2020-05-18 00:50:59 Python

上下文感知合并?

是否有任何用于编程语言的差异/合并工具,都可以以语法感知的方式工作(例如XML Diff工具),其作用不只是逐行比较(并且可以忽略空白). 我对实际上遵循语言语法和分隔符的程序很感兴趣,可以在不破坏语法正确性或不将语句捆绑成多行的情况下提出更改建议.行为示例为: *一旦找到引入额外嵌套级别的if(){,则会自动将闭合括号}与下面的几行捆绑在一起.) *将匹配的语法元素保持在一起, ..
发布时间:2020-05-09 00:14:22 其他开发

生成C / C ++代码时的表达式的关联性和优先级?

我编写了一个基本的编译器,它生成一个AST,正确地考虑了表达式中的运算符优先级。但是,当执行代码生成以生成C ++代码时,我不确定如何处理使用括号。 对于此表达式: A- 以下AST: - / \ A - / \ BC 应正确生成包含括号的上一个表达式,但如果第二个运算符是加法运算符(例如),则括号将是不必要的。我 ..

最简单的特征选择算法

我想创建自己的简单特征选择算法。该数据集,我要一起工作是这里 (非常著名的数据集)。有人可以给我如何做到这一点的指针? 我打算写一个特点排名算法的文本分类。这是电影审查的情感分析,将之列为无论是积极的还是消极的。 所以我的问题是关于如何编写一个文本数据集的简单特征选择。 解决方案 特征选择方法是一个很大的话题。你可以用下面的启动: 卡方 互信息 词频 等。阅读本文,如果你有时间 ..