问题标签 [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.
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。
我如何自动化这个过程?如何翻译仅使用单词节点的边,以便它们使用意义节点?
machine-learning - 分类中的词义消歧
我将输入句子分类为不同的类别。比如时间、距离、速度、位置等
我训练分类器使用MultinomialNB.
分类器主要考虑tf
特征,我也尝试考虑句子结构(使用1-4克)
使用multinomialNB
with 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%。有时结果是不相关的类。取决于查询与数据集的匹配方式
weka - Weka 作为 WSD 的分类器
我需要开发一个分类器,它在上下文中给出一个单词的实例(例如'hard'),它从与 python NLTK 一起分发的 XML 格式的文件中确定它的哪个含义是预期的含义。我发现 Weka 适合这个,但是,我迷失了执行此操作所需的必要步骤。
我假设以下步骤:确定分类器要使用的相关特征,例如在实际单词“hard”之前考虑 1 个单词或 2 个单词。这可以通过 Weka 或例如 Java 来完成吗?如果通过Java有一个例子吗?因为我不知道如何为 Weka 做这件事。
然后我只是使用 Weka 来获取结果并在文件上进行训练和测试?
python-2.7 - Python 2.7:Lesk 算法返回无
我正在创建一个可以消除歧义词的程序,并且我正在使用 nltk。现在,当我上台使用 lesk 算法时,我遇到了一些麻烦。
例如,如果我尝试:
c 将为 None,这意味着算法将返回 none。
我试图用一个单词列表代替句子:即:
甚至是词条列表而不是完整的单词,但它仍然返回 None。
有谁知道这是否是 lesk 的一个功能(当它无法消除返回 None 这个词的歧义时),还是我做错了什么?此外,如果它是一个功能,那么它可以被删除(返回一个单词而不是 None)?
谢谢!
java - BabelNet 2.5 路径索引配置错误
按照本页和本页中的所有步骤,我已经在 Eclipse 中为 Windows 配置了 BabelNet。
它工作正常并从 BabelNet 加载所有同义词集。然后它需要 knowldgeBasePathIndex 并开始加载。在第一个链接中,它被指定为:
这开始运行,但由于在尝试加载知识库时找不到称为“路径索引”的东西而失败。路径索引的位置可以通过在 config/knowledge.var.properties 中放一行来指定:knowledge.graph.pathIndex=C:/Program Files/BabelNet/data
我对此有两个疑问:
BabelNet 3.0 中没有 Knowledge.var.properties 文件。所以,我切换到 BabelNet 2.5。
BabelNet 2.5 中没有 data 这样的文件夹,但 BabelNet 3.0 中有一个。但是,它们中的任何一个都没有路径索引。
因此,程序停止运行。
有人可以就此提供建议吗?
谢谢你。
程序在这里:
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 个单词和数百个实例,我应该如何处理呢?
此外,矢量是一个特征,我需要稍后添加更多特征,例如同义词集、上位词、下位词等。我该怎么做?
提前致谢!
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 计算每个单词的情感分数。
java - 实体识别与消歧api
我正在寻找实体识别和消歧 API 或库。我发现 JIGSAW 算法在单个单词级别执行 WSD,因此它无法将“金融机构”或“利率”识别为一个单位,即使这些单位可以在 wordnet 中找到并具有同义词集(例如,参见“金融机构”在 wordnet 中)。
然而,我发现了 BabelNet,它有一个图形网络界面,可以做到这一点。但是,它在其当前的 API v.3 中并未提供该功能
您是否知道提供此类功能的 API 或库?我的意思是将“金融机构”或“利率”视为一个单位,并在此基础上进行语义消歧!?
提前致谢。
java - 在 Java 中使用 GraphX 创建图形
我正在尝试一个简单的示例,但我无法使用 Graph API 使用以下代码生成图形: