问题标签 [word-sense-disambiguation]

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 回答
27 浏览

dataset - 理解词义消歧数据集格式

我正在尝试使用众所周知的 WSD 数据集(SemEval、SensEval)来评估 WSD 模型。但我不明白金钥匙文本文件的格式。

seneval3.gold.key.txt

通过查看数据文件,我知道在第一行d000.s000.t000谈论文档#0 句子#0 令牌#0。

senseval3.data.xml

但我不知道 之后是什么意思%,例如1:18:00::引理人。

0 投票
0 回答
163 浏览

pytorch - 词义消歧任务的 Pytorch BCE 损失没有减少

我正在执行词义消歧,并创建了我自己的前 300k 最常见英语单词的词汇表。我的模型非常简单,句子中的每个单词(它们各自的索引值)都通过嵌入层,该嵌入层嵌入单词并对结果嵌入进行平均。然后通过线性层发送平均嵌入,如下面的模型所示。

我将 BCELoss 作为损失函数,将 SGD 作为优化器。我的问题是,随着训练的进行,我的损失几乎没有减少,几乎就像它以非常高的损失收敛一样。我尝试了不同的学习率(0.0001、0.001、0.01 和 0.1),但我遇到了同样的问题。

我的训练功能如下:

批量大小为 32(训练集包含 8000 行),词汇量为 300k,嵌入维度为 24。我尝试向网络添加更多线性层,但没有区别。即使经过多次训练,训练集和验证集的预测准确率也保持在 50% 左右(这太可怕了)。任何帮助深表感谢!

0 投票
1 回答
51 浏览

python - 使用 WordNet 感知相似度矩阵

我有一个用于整个文档集合的唯一词(不包括停用词)词汇表。我想执行查询扩展。在某些方法中,我发现对于查询中的每个单词,它的前 k 个同义词(通常 k=3)被扩充到查询中。但是,我使用的是基于 TFIDF 文档表示的向量空间模型,因此将不在词汇表中的单词添加到查询中最终会被丢弃。此外,由于它不使用词义消歧技术,因此添加同义词不能保证查询中的词所使用的意义被添加的同义词保留,从而导致查询漂移。因此,我正在考虑创建一个 Sense Similarity Matrix,该矩阵将包含查询之间的相似性得分和词汇表中的单词在整个语料库中使用的所有可能的意义。相似度得分将基于信息论或基于路径的方法来计算。

但是,我无法理解如何找到词汇表中单词的所有意义。另外,我的方法正确吗?有人可以通过指向一些相关资源来指导我吗?

0 投票
0 回答
32 浏览

python - NLTK WordNet:如何获得同义词的显示频率?

如果我在线使用 WordNet 如下:

http://wordnetweb.princeton.edu/perl/webwn?o2=1&o0=&o8=1&o1=&o7=&o5=&o9=&o6=1&o3=&o4=&s=engineering&i=0&h=00000#c

我会得到一个首选的感觉

(6)通过考虑所有词性和其中所有同义词的感觉频率。

其中我会用字符串'engineering'来规范我的查询词。在这种情况下,什么都不会改变。

不幸的是,我无法从 Python NLTK WordNet 库中获得这些与语义/同义词集相关的数字。这里的频率是用于引理而不是用于感觉。引理频率的总和不会再现与感觉/同义词相关的频率。整体排名反映了全球 PoS 排名为第一优先级,这使得无法选择返回的第一个同义词集WN.synsets('engineering')

(6)在 NLTK 数据中根本找不到上述频率。

当我执行以下操作时:

最上面的引理是'technology',它甚至不是在线版本中的引理,而是上位词。

在我看来,在线资源在输入词的情况下给出了一种意义的频率,该功能似乎没有在 NLTK 版本中实现。那是对的吗?

我假设在线感知频率回答了以下问题:

“X这个词有多少次有Y的意义?”

这不同于:

“理论上可以与单词 X 共享意义 Y 的单词出现了多少次?”

如果您进入,情况会更加极端'real'

在这里,您可以(260, 'very')使用上面的代码获得最佳结果。Very非常频繁,但是当你说'real'你的时候,你通常并不意味着'very'

因此,总而言之,似乎在线版本给出了给定单词的条件概率因子,而 NLTK 版本仅给出了与您的单词 X 共享意义的所有单词的先验概率因子。

编辑:我看到了这个'engineering'例子,频率6可以在 NLTK 版本中找到