问题标签 [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 回答
611 浏览

nlp - 如何消除概念网中的单词歧义

Conceptnet包含两种基本类型的节点,词(例如 /c/en/cat)和词义(例如 /c/en/cat/n/domestic_cat)。不幸的是,绝大多数边使用词节点。这使得推断变得困难,因为我不能确定一个词对词的边缘指的是哪个意义。

例如,Conceptnet 包含 9 种使用单词“cat”的词义,大多数是专有名词(/c/en/cat/n/musical、/c/en/cat/n/magazine、/c/en/cat/n /a_spiteful_woman_gossip 等)。如果边缘显示“/c/en/cat /r/HasA /c/en/tail”,我根据自己的经验知道这可能是指 /c/en/cat/n/domestic_cat 而没有其他感觉。而如果我看到一条边上写着“/c/en/cat /r/IsA /c/en/fun_to_watch”,我知道它可能指的是 /c/en/cat/n/musical,但它也可能是指 /c/en/cat/n/domestic_cat。

我如何自动化这个过程?如何翻译仅使用单词节点的边,以便它们使用意义节点?

0 投票
0 回答
763 浏览

nlp - 如何使用 ws4j 库获得给定单词的所有含义的 lesk 相似度分数?

我正在尝试使用ws4j在其在线ws4j 演示中提供的两个单词的所有含义之间的 LESK 相似度得分,格式为word#pos#sense number 用于两个单词的所有含义,但我无法找到如何使用 ws4j 库获得相同格式的结果??由于没有适用于 ws4j 的适当文档,并且该库的演示/示例代码仅给出最大值,也没有说明哪些感官获得了该分数。

有人可以帮忙吗?

0 投票
3 回答
773 浏览

machine-learning - 分类中的词义消歧

我将输入句子分类为不同的类别。比如时间、距离、速度、位置等

我训练分类器使用MultinomialNB.

分类器主要考虑tf特征,我也尝试考虑句子结构(使用1-4克)

使用multinomialNBwith alpha= 0.001 这是少数查询的结果

multinomialNW考虑使用ngram(1-4)

所以结果完全取决于单词的出现。有没有办法在这里添加单词消歧(或任何其他可以带来某种理解的方法)?

我已经在 NLTK Python 中检查了 Word sense disambiguation

但这里的问题是识别句子中的主要单词,每个句子都不同。

POS(给出NN,JJ,哪个句子不依赖),NER(高度依赖大写,有时ner也不是像上面句子中的“early”,“cost”这样的歧义词)我已经尝试过了,它们都没有帮助。

我正在使用 nltk、scikit learn、python

更新 :

  • 40个班级(每个班级都有属于该班级的句子)
  • 总数据 300 Kb

准确性取决于查询。有时非常好> 90%。有时结果是不相关的类。取决于查询与数据集的匹配方式

0 投票
0 回答
141 浏览

weka - Weka 作为 WSD 的分类器

我需要开发一个分类器,它在上下文中给出一个单词的实例(例如'hard'),它从与 python NLTK 一起分发的 XML 格式的文件中确定它的哪个含义是预期的含义。我发现 Weka 适合这个,但是,我迷失了执行此操作所需的必要步骤。

我假设以下步骤:确定分类器要使用的相关特征,例如在实际单词“hard”之前考虑 1 个单词或 2 个单词。这可以通过 Weka 或例如 Java 来完成吗?如果通过Java有一个例子吗?因为我不知道如何为 Weka 做这件事。

然后我只是使用 Weka 来获取结果并在文件上进行训练和测试?

0 投票
1 回答
282 浏览

python-2.7 - Python 2.7:Lesk 算法返回无

我正在创建一个可以消除歧义词的程序,并且我正在使用 nltk。现在,当我上台使用 lesk 算法时,我遇到了一些麻烦。

例如,如果我尝试:

c 将为 None,这意味着算法将返回 none。

我试图用一个单词列表代替句子:即:

甚至是词条列表而不是完整的单词,但它仍然返回 None。

有谁知道这是否是 lesk 的一个功能(当它无法消除返回 None 这个词的歧义时),还是我做错了什么?此外,如果它是一个功能,那么它可以被删除(返回一个单词而不是 None)?

谢谢!

0 投票
1 回答
337 浏览

java - BabelNet 2.5 路径索引配置错误

按照本页本页中的所有步骤,我已经在 Eclipse 中为 Windows 配置了 BabelNet。

它工作正常并从 BabelNet 加载所有同义词集。然后它需要 knowldgeBasePathIndex 并开始加载。在第一个链接中,它被指定为:

这开始运行,但由于在尝试加载知识库时找不到称为“路径索引”的东西而失败。路径索引的位置可以通过在 config/knowledge.var.properties 中放一行来指定:knowledge.graph.pathIndex=C:/Program Files/BabelNet/data

我对此有两个疑问:

  1. BabelNet 3.0 中没有 Knowledge.var.properties 文件。所以,我切换到 BabelNet 2.5。

  2. BabelNet 2.5 中没有 data 这样的文件夹,但 BabelNet 3.0 中有一个。但是,它们中的任何一个都没有路径索引。

因此,程序停止运行。

有人可以就此提供建议吗?

谢谢你。

程序在这里:

0 投票
2 回答
523 浏览

python - 在 scikit-learn 中实现 K 邻居分类器和线性 SVM 用于词义消歧

我正在尝试使用线性 SVM 和 K 邻居分类器来进行词义消歧(WSD)。这是我用来训练数据的一段数据:

训练数据和测试数据的区别在于测试数据没有“答案”标签。我已经建立了一个字典来存储每个实例的“head”单词的邻居单词,窗口大小为 10。当一个实例有多个时,我只考虑第一个。我还建立了一个集合来记录训练文件中的所有词汇,以便我可以为每个实例计算一个向量。例如,如果总词汇表是 [a,b,c,d,e],并且一个实例有单词 [a,a,d,d,e],那么该实例的结果向量将是 [2,0, 0,2,1]。这是我为每个单词构建的字典的一部分:

现在,我只需要从 scikit-learn 向 K Neighbors Classifier 和 Linear SVM 提供输入来训练分类器。但我只是不确定如何为每个构建特征向量和标签。我的理解是 label 应该是“答案”中的实例标签和 senseid 标签的元组。但是我不确定特征向量。我应该对“答案”中具有相同实例标签和 senseid 标签的同一个词的所有向量进行分组吗?但是每个单词大约有 100 个单词和数百个实例,我应该如何处理呢?

此外,矢量是一个特征,我需要稍后添加更多特征,例如同义词集、上位词、下位词等。我该怎么做?

提前致谢!

0 投票
1 回答
1505 浏览

python - 我在使用 Lesk 算法在 Python 中进行词义消歧时遇到问题

我是 Python 和 NLTK 的新手,所以请多多包涵。我希望在句子的上下文中找到一个词的意义。我正在使用 Lesk WSD 算法,但每次运行它都会给出不同的输出。我知道 Lesk 有一定程度的不准确。但是,我认为 POS 标签会提高准确性。

Lesk 算法将 POS 标记作为参数,但它以 'n'、's'、'v' 作为输入,而不是 'NN'、'VBP' 或 pos_tag() 函数输出的其他 POS 标记. 我想知道如何以'n','s','v'的形式标记单词,或者是否有一种方法可以将'NN','VBP'和其他标签转换为'n ','s','v',所以我可以将它们作为 lesk(context_sentence,word,pos_tag) 函数的输入。

之后我正在使用 SentiWordNet 计算每个单词的情感分数。

0 投票
1 回答
321 浏览

java - 实体识别与消歧api

我正在寻找实体识别和消歧 API 或库。我发现 JIGSAW 算法在单个单词级别执行 WSD,因此它无法将“金融机构”或“利率”识别为一个单位,即使这些单位可以在 wordnet 中找到并具有同义词集(例如,参见“金融机构”在 wordnet 中)。

然而,我发现了 BabelNet,它有一个图形网络界面,可以做到这一点。但是,它在其当前的 API v.3 中并未提供该功能

您是否知道提供此类功能的 API 或库?我的意思是将“金融机构”或“利率”视为一个单位,并在此基础上进行语义消歧!?

提前致谢。

0 投票
0 回答
605 浏览

java - 在 Java 中使用 GraphX 创建图形

我正在尝试一个简单的示例,但我无法使用 Graph API 使用以下代码生成图形: