问题标签 [ws4j]
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.
java - 大型同义词集中的 WordNetSimalarity
我使用 wordnet 相似性 java api 来测量两个同义词集之间的相似性,如下所示:
主班
我的数据库包含 595 个同义词集,这意味着方法computeSimilarity
将被调用 (595*594/2) 时间来计算两个单词之间的相似度,它花费的时间超过5000 ms
!所以要完成我的任务,我至少需要一个星期!
我的问题是如何减少这段时间!
怎么提高成绩??
java - 对于应该返回 1 的相似性度量,ws4j 返回无穷大
我有一个取自这个示例的非常简单的代码,其中我使用 Lin、Path 和 Wu-Palmer 相似度度量来计算两个单词之间的相似度。我的代码如下:
并且分数与预期相同,除非两个词相同。如果两个词相同(例如w1 = "walk"; w2 = "walk";
),那么我拥有的三个度量值都应该返回 1.0。但相反,他们返回 1.7976931348623157E308。
我以前使用过 ws4j(实际上是相同的版本),但我从未见过这种行为。在网上搜索并没有找到任何线索。这里可能出了什么问题?
PS Lin、Wu-Palmer 和 Path 度量应该返回 1 的事实也可以通过 ws4j 提供的在线演示来验证
java - Senserelate 目标词:为最终用户提供“最佳”替代方案
我的问题介绍:用户可以搜索术语,RitaWordNet 提供了一个名为 getSenseIds() 的方法来获取相关的感官。到目前为止,我正在使用具有不同算法来定义距离的 WS4J(Java 的 WordNet 相似性, http://code.google.com/p/ws4j/ )。搜索“用户”有以下结果:
- 用户
- 剥削者
- 吸毒者
通过比较 WS4J 中的两个术语(我假设使用 targetWord?)来测量 Lin 距离:
- 之间的相似性:用户和:用户= 1.7976931348623157E308
- 相似度:用户和:explorer = 0.1976958835785797
我想向最终用户返回一个建议,即“用户”意义是最相关/正确的答案,但问题是这取决于句子的其余部分。
例如:“老人是公共交通工具的常客”,“年轻人在学习 NLP 时变成了吸毒者..”。
我假设 senserelate 项目包含我缺少的东西。在我的搜索过程中也找到了这个线程: word disambiguation algorithm (Lesk algorithm)
希望有人得到我的问题:)
java - 我想使用 WordNet 查找单词相似度
我正在做关于“网络视频分类”的最后一年项目,其中一部分是找到特定单词的相似(同义词)单词,我想从中删除相似的术语。
我知道 Java 语言,所以我选择了“Java Word Similarity” ws4j
为此,我只使用了 WS4J1.0.1 jar 文件,即使我没有下载任何额外的文件,如WordNet词法数据库或sqlite数据库来存储它。因为在那个网站上,他们提到所有都包含在这个 jar 文件中。
当我执行演示程序SimilarityCalculationDemo.java时,出现以下错误:
我正在使用带有 JDK 6 的 Netbeans IDE 7.4。
任何人都可以帮助我,如何克服这个问题,因为互联网上关于ws4j的文档较少。
java - 为什么 ws4j 在线演示值和源代码演示值不同,尤其是 lesk 值?
我正在尝试使用 lesk 查找两个单词(例如“home”和“house”)之间的相似性。
我执行了用于查找此处给出的 lesk 值的演示代码,我还使用此处的在线 ws4j 演示找到了该值
他们都给出不同的值,即
Values by executing demo code given in ws4j :
WuPalmer = 0.4
JiangConrath = 0.08467941109843881
LeacockChodorow = 1.1349799328389845
Lin = 0.16528546101187536
Resnik = 1.1692001183611416
Path = 0.1111111111111111
Lesk = 0.0
HirstStOnge = 0.0
在线演示的值:
wup( home#n#8 , house#n#10 ) = 1.0000
jcn( home#n#8 , house#n#10 ) = 12876699.5 lch
( home#n#8 , house#n#10 ) = 3.6889
lin( home#n#8 , house#n#10 ) = 1.0000
res( home#v#1 , house#v#2 ) = 9.0735
路径( home#n#8 , house#n#10 ) = 1.0000
列斯克(家#n#8,房子#n#10)= 1571
hso(家#n#8,房子#n#10)= 16
当他们都使用相同的ws4j时,为什么这两者之间的差异如此之大?演示代码有什么问题吗?
java - Wordnet ws4j 混淆 lesk 值,遍历所有同义词集
这可能是完全正常的,但我有用于 Java 的 ws4j,我似乎得到像“1.7345 ...”这样的数字,用于两个单词之间的 lesk 度量(当我使用演示代码时),但在演示网站http:/ /ws4jdemo.appspot.com/?mode=w&s1=&w1=solve&s2=&w2=determine
lesk 度量是一个整数,例如“57”。我似乎找不到这样做的原因,但总的来说我也是编程新手。
我想写一些东西,它接受一个 word1 并迭代其余的词,只返回 Lesk 测量值(与 word1 相比)高于某个值的词。这让我想到了一个相关的问题,在 Python 中,我可以使用
但我不知道如何对 ws4j 做同样的事情?
java - 用于两个“单词”之间语义相似性/相关性的 Java API
我需要找出两个输入词之间的语义相似性/相关性。以下单词在现实世界中相似或相关:-
以下是我从这里截取的代码
我在 Eclipse 3.4 中使用 WS4J Api (ws4j1.0.1.jar) 和 java 1.7。我得到以下没有意义的结果,或者我的看法可能是错误的。
如果我的方法是错误的,请让我知道如果我想计算单词之间的相似性,那么我应该使用什么其他 api。
java - 使用 WS4J 的句子相似度
我想使用 ws4j 来计算两个句子之间的相似度。我正在使用 WS4J 的在线演示@ WS4J 在线演示
我使用的是 WS4J 给出的默认例句。输入句子并点击计算相似度按钮后,我得到以下输出:
在这里,我得到了句子的各个标记之间的相似性。
我如何从这里进一步前进。我想得到一个值(比如 0.5 或 0.8),它表示这两个句子的相似性。
有没有从这里开始的标准方法,还是我必须编写自己的算法?