如何在数据中表达微妙的关系?


20

“ A”与“ B”和“ C”有关。在这种情况下,我如何证明“ B”和“ C”也可能相关?

例:

以下是有关百老汇最近一部戏剧的一些头条新闻:

  1. 大卫·马梅特(David Mamet)的格伦加里(Glengarry)格伦·罗斯(Glen Ross),由阿尔·帕西诺(Al Pacino)主演,在百老汇开幕
  2. Al Pacino在“ Glengarry Glen Ross”中:评论家们怎么看?
  3. 阿尔·帕西诺(Al Pacino)在百老汇(Broadway turn)赢得了平淡的评论
  4. 剧院评论:Glengarry Glen Ross正在努力推销明星
  5. Glengarry Glen Ross;嘿,谁杀死了Klieg灯?

问题:

对这些记录进行模糊字符串匹配将建立一些关系,但不会建立其他关系,即使人类读者可以从更大的数据集中从上下文中选择它们。

我如何找到暗示#3与#4相关的关系?它们都可以很容易地连接到#1,但不能互相连接。

这种数据或结构是否有(可查询的)名称?我在寻找哪种算法?

目标:

给定1,000个标题,系统会自动提示这5个项目可能都是同一件事。

老实说,我编写程序已经很久了,我不知如何正确表达这个问题。(如果有道理,我不知道不知道)。

这是一个个人项目,我正在用Python编写它。在此先感谢您的任何帮助,建议和指示!


1
像自然语言解析和/或其他一些概率技术的声音是必需的
JK。

2
这是一个很好的问题!
迈克尔·布朗

我想我已经看过可以在Prolog中实现此目的的系统。
FrustratedWithFormsDesigner 2012年

1
@FrustratedWithFormsDesigner我怀疑您正在考虑逻辑编程中统一 ..?
Izkata 2012年

Answers:



7

您正在进入语义世界。有一些公共服务将解析文本并提取主要概念(快速搜索Semantic API,其中包括一些内容),这些服务将解析自由格式的文档并返回遇到的主要主题,包括人,地方,事物,日期和概念。一些更好的将以[RDF]格式返回

如果您想构建自己的系统来执行此任务,那么该领域就是“ 自然语言处理”,这是一个非常吸引人的兔子漏洞。


4

如果有可能,请与标题一起阅读故事。标题有时可能会变得“可爱”,并且仅切线地提及正在讨论的内容。这对于人类来说是可行的(因为他们具有全局上下文),但是对于NLP来说却不是很好。

正如卡尔·比勒费尔德(Karl Bielefeldt)的回答中所提到的,聚类是一种很好的方法,但是细节决定了魔鬼。你不仅要选择适合您的问题/用户空间聚类方法,你还必须弄清楚什么是集群的。

我的背景是80年代至90年代的信息检索(IR),我们专注于相似性搜索基于质心的聚类。我们的文档由加权属性向量表示,该属性向量基本上是术语列表及其在文档中的相对重要性。这种方法可以工作(尽管某些集合比其他集合更好),但是它具有短标题的问题,因为它们缺少将事物联系在一起的关键词汇。但是,如果您使用整个文档,那么您将获得更为丰富的术语列表(并且可能会更好地理解重要性),并且当您的标题为“可爱”。

如果您想了解向量生成问题等,则我的电子邮件在我的个人资料中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.