如何量化两个术语的含义差异?例如“鸟”和“椅子”

时间:2017-06-21 10:18:47

标签: nlp semantics ontology

编辑: 我有一些术语/主题,我想量化这些术语/主题在意义或领域上的差异。以下是我想要应用它的用例:

现在我有来自twitter的关于特定板球比赛的数据集(带有此比赛主题标签的推文)。我想看看有多少与板球比赛无关的其他主题在这样的推文中出现。例如,如果有人开始在这样的推文中采取“叙利亚避难所”,这与游戏Cricket的话题无关。 我的基本方法是从这些推文中提取主题,然后确定哪些主题与板球领域密切相关,哪些不是。

2 个答案:

答案 0 :(得分:1)

从统计数据来看,您可以查看word2vecfasttext和类似模型。这里"差异"可以是向量空间中两点之间的距离(欧几里德或余弦相似度)。简而言之,您将语料库加载到创建n维空间的引擎中,将单词(有时是文档或字符串)作为空间中的点放置,使得出现在类似上下文中的单词具有近似表示(向量)

大多数此类表示的一个缺点是反义词经常彼此接近:例如,在#34;我爱你"和#34;我讨厌你",爱与恨有着非常相似的背景。

从语义的角度来看,当您添加标记本体时,您可以使用结构化知识库或本体。一种选择是定义"距离"在两个术语之间的分类。您可以检查它们是否与兄弟姐妹出现在同一级别,一个是另一个或其他关系的父级。我认为最直接的方法是为每个关系手动定义权重,但是图表遍历和聚类的统计方法也是合适的。

对于类,您可以使用您拥有的实例数以及这些实例之间的任何关系。例如,您可以计算" bird"之间的距离。和"椅子"通过与你有关系的鸟和椅子的实例数量"坐在"。希望" person"和"椅子"将会更加接近,因为你的大多数人物都会有一把指定的椅子"对象

答案 1 :(得分:0)

要快速浏览,您可以使用bird-noun-1和chair-noun-1以及wordnet: http://labs.fc.ul.pt/dishin/ 它给你:

Resnik 0.315625756544

Lin 0.0574161071905

Jiang& Conrath 0.0964964414156

python代码:https://github.com/lasigeBioTM/DiShIn