问题标签 [semantic-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1277 浏览

python - 使用 WordNet 比较两个短语?

我正在尝试比较两个短语的语义。在 Python 中,我使用 nltk 和 difflib。首先,我从短语中删除停用词,然后使用 WordNetLemmatizer 和 PorterStemmer 对单词进行规范化,然后将其余部分与 difflib 的 SequenceMatcher 进行比较。我仍然认为有比使用 difflib 更好的方法。有什么建议或提议吗?在短语之间的比较中是否有任何使用 Wordnet 的库?我正在做的步骤是否正确?

0 投票
1 回答
1839 浏览

compiler-construction - JavaCC 解释器(AST 到符号表)

我对如何创建 javacc 解释器感到非常困惑,特别是如何从之前生成的 AST 树构建符号表。

像这样的东西,来自这个 AST:

到这张桌子

例如,使用此输入

我现在拥有的,只创建了 AST。

我的大问题是如何定义然后逐一比较树上的类型。

任何帮助都会很棒,包括理论。

谢谢。

0 投票
2 回答
80 浏览

java - 优化两个字符串中的关键字搜索

我有两个字符串,我正在检查它们中的特定常用词。我已经有了语义分数;在这种情况下无关紧要,因为这些词是技术缩写并具有特殊强调。他们拥有的常用词集越多,得分越高,距离越近。

有很多方法可以解决这个问题。到目前为止,我想到了两个。

1)我用字符串的单词创建了两个 ArrayList。如果它们同时存在于 ArrayList 中,我必须搜索另一组词。如果他们这样做,我会给他们+1分。

那么我可以有多个条件,比如

2> 取两个字符串并使用正则表达式搜索

还有其他更好的方法吗?我现在更倾向于使用正则表达式。这样做看起来非常有效。

基本上我正在做的是我试图通过将句子与缩写如“ACLS”、“ASHD”、“CXR”(常用医学术语)进行分组来聚类相似的句子,因为我知道这些句子主要讨论这些问题。然后我得到语义分数来对包含这些单词的句子进行分组。错误的方法:/?

谢谢 :)

0 投票
0 回答
52 浏览

semantics - 从简单的英语翻译成一套指令

我有一套指令,例如Linux的“ls”、“grep”、“cd”等。

我希望用户能够在不知道确切名称和参数的情况下执行此命令,而是使用类似于它们在简单英语中的含义的内容,例如“显示所有文件夹”、“按名称过滤所有文件”、“转到目录”。或者换句话说:用户输入是“显示所有文件,然后显示所有包含'foo'的文件”要翻译成“ls | grep foo”

我知道我需要一些关于每条指令的元信息,并进行某种评估,用户查询词与每条指令的接近程度。就像是:

那么哪些是重要信息以及如何进行此评估?

任何一般指导方针,我可以如何将用户的输入转换为我的集合中的特定指令?(这听起来对我来说是一个很大的挑战)

0 投票
2 回答
447 浏览

unit-testing - 对基于 ANTLR 的树的语义分析访问者进行单元测试

我正在开发一个小型编译器。在过去使用过的编译器中,我只是忽略了单元测试,通过系统测试进行所有测试。它工作得相当好,但我觉得它总是远非完美。这一次我很想尝试以不同的方式制作东西。

现在特别关注语义分析阶段,我希望我的每个访问者都有一组相关的单元测试。但要做到这一点,我必须完成两件事中的一件。我要么:

  1. 当我只想对与方法相关的访问者进行单元测试时,以允许我不必定义包、定义类等的方式构建我的语法。一个例子是测试给定方法中没有定义重复的变量——理想情况下,我不需要知道这个方法在包内的类中。遵循这条路径,我的 ANTLR 语法将能够解析诸如void m() { int x = 1; int y = 2; int x = 3; }尽管在现实世界中(对于最终用户)这不是允许的源代码,因为在我的语言中,方法必须始终包含在一个类中始终包含在包装中;

  2. 花时间学习 ANTLR 的来龙去脉,以及如何在我的 junit-tests 中以编程方式创建节点。诸如此类的东西

    MethodNode method = new MethodNode(); method.setName("m"); method.addChildren(new VarDecl("x", new IntegerExpr("1"))); method.addChildren(new VarDecl("y", new IntegerExpr("2"))); method.addChildren(new VarDecl("x", new IntegerExpr("3")));

    如果 ANTLR 的 API 对这种目的“友好”,这可能是一个合适的解决方案。我查了一下,被节点构造函数中的一些血腥细节吓到了(ProgramContext(ParserRuleContext parent, int invokingState)<-这绝对不是我,程序员,但我可能错了..);

  3. 创建我自己的 AST,作为解析阶段的第一步,我将 ANTLR 的树转换为我的树。一方面这会有点麻烦,另一方面,完全控制树可以促进其他事情。

我只能假设这是编译器开发人员经常关注的问题。您如何处理这种特殊情况?

谢谢

0 投票
1 回答
1151 浏览

nlp - 查找不同单词之间的语义相似性和关系

我正在从事一个项目,该项目涉及计算不同概念之间的相关性。

示例:“登陆” - 与:“到达;来”和“土地”,“电话” - 与:“电子;电”和“谈话;交流”,“电影” - 相关:“移动;改变”和“图片;图像”等。

我检查了 WordNet 框架和 WordNet::Similarity Perl 模块,但在某些情况下它们不可用,特别是在我需要将名词与动词连接起来的情况下(例如名词“狗”和动词“吠叫”) . 此外,WordNet 以分层结构组织所有同义词集(例如:计算机 -> 机器 -> 设备 -> 仪器),这并不是我在项目中真正需要的(当然,我可能错了)。

问题是 - 哪个框架或数据库,我应该使用什么方法来解决问题?我从哪说起呢?

如果您能给我一些建议,那将非常有帮助。

0 投票
2 回答
3010 浏览

java - 情绪分析与情绪分析

文本挖掘(NLP)中的情绪(正面和负面)和情绪有什么区别?例如,愤怒是负面情绪,负面情绪似乎都是一样的。Vijay Nadadur,SentiRank 的创建者,一种在文本中对情感进行排序的算法,建议生物情感可以以简单的方式主要以二进制格式(+ve 和 -ve)表示。进一步补充,你可能有不同程度的 +ve 和 -ve 情绪,也许是中性的。然而,情绪是多维度的。愤怒肯定是情绪,悲伤也是情绪,但它们并不完全相同。

更具体地说,关于文本挖掘(基于 NLP),做情感分析要简单得多,但要进行情感分析却很难。情感分析的下一个层次是意图分析领域,很少有研究人员致力于从文本块中挖掘意图,这似乎具有很高的商业价值。

0 投票
1 回答
274 浏览

rdf - Freebase 是否支持间接或谓词对象?

Freebase中的间接对象是如何表示的?

我知道谷歌可以给出这个问题的答案:

奥巴马将自由勋章授予了谁?

华盛顿(美国有线电视新闻网)——周三,美国总统巴拉克·奥巴马(Barack Obama)向 16 人授予总统自由勋章——美国最高平民荣誉——从前总统比尔·克林顿和标志性脱口秀主持人奥普拉·温弗瑞到已故宇航员萨莉·莱德(Sally Ride)。

简而言之,这个问题的三重存储或自由基础查询/mql/sparql 是什么?

奥巴马将自由勋章授予比尔克林顿总统。

奥巴马将自由勋章授予奥普拉·温弗瑞。

等等

或者

奥巴马授予比尔克林顿总统自由勋章。

奥巴马授予奥普拉·温弗瑞自由勋章。

等等

我正在尝试了解 Freebase,还有一些其他问题。但最重要的是,间接对象如何存储为三元组?

在此处输入图像描述

巴拉克奥巴马在哪里娶了米歇尔?

巴拉克奥巴马在哪里上大学?

尽管最后两个问题在结构上相似,第一个更难回答,而第二个很容易,因为三元组似乎不支持介词或间接宾语,还是我弄错了?

一个简单的三元组似乎只能回答第二组问题,因为married_at 是单个事件并且是介词宾语而不是间接宾语。但是,第一组问题是模棱两可的,因为 buy_for 和 built_at 可以有很多对象。可能谓词可以包括一个实体,如 buy_for_her 或 built_at_beach,但这似乎很尴尬。

同样,如何处理间接对象?

0 投票
1 回答
500 浏览

python - 使用 SVM 的语义角色标签系统

谁能告诉我一个基于 SVM 分类器的工作 SRL(语义角色标签)?首选 Python 或 Java。

我的目的是学习在给定谓词动词的情况下,句子中的特征如何表示为向量。

非常感谢!

0 投票
1 回答
834 浏览

machine-learning - 文本特征表示作为 SVM 的向量

我正在学习语义角色标签 (SRL) 任务。我已经阅读了很多,现在我遇到了如何将文本特征表示为向量的问题。

例如,对于句子:

We like StackOverflow very much

给定谓词动词: like,一些特征是:

将这些特征表示为向量的正确方法是什么?

如果可能的话,您能否也给我一些关于如何规范化这些功能的指导?

我基本上想使用SVM模型来训练具有这些类型特征的数据。