我正在尝试检测品牌历史的时间表。对于我的具体情况,我相信这很容易,因为数据已经聚集。对于每篇维基百科文章,我可以找到围绕日期的句子。这是一个例子:
麦当劳公司是一家美国快餐公司,成立于 1940 年,由理查德和莫里斯麦当劳在美国加利福尼亚州圣贝纳迪诺经营。他们将自己的业务重新命名为汉堡摊位,后来将公司变成了特许经营权,并于 1953 年在亚利桑那州凤凰城的一个地点引入了 Golden Arches 标志。1955年,商人Ray Kroc加入公司担任特许代理
由此,很容易以编程方式将结果缩小到
麦当劳成立于 1940 年
1953 年推出的金色拱门标志
1955 年,商人 Ray Kroc 加入公司
如果文档是集群的,这似乎很容易。如果没有,我正在考虑一种基本算法来挖掘时间线或自然数)。所以我想在这里讨论现有的研究和我的直觉。
定义:
- 时间线:关于一个主题的一系列事件的逻辑顺序。
- 时间线中的日期是自然数,并且可以“相对无序”。
- 时间线是连续的(类似一个范围)并且不能相交。
让我们忽略 NLP 相关部分,并尝试在忽略主题(第一个定义)的自然数中找出时间线。
距离:初始时间线长度。它代表最小值。
例子:
步骤 A
1, 4, 2, 5, 3, 8, 7, 9, 20, 21, 23, 24, 1, 5, 7, 9
dist = 4
- 变成:
1, 4, 2, 5/ 3, 8, 7, 9/ 20, 21, 23, 24/ 1, 5, 7, 9
对每组(4 个元素)进行评分:评分很关键,但让我们想想冒泡排序分数,其中分数 = 1 / 数量交换操作。
1,4,2,5 => 1/1 | 3,8,7,9 => 1/1
步骤 B
给集合打分的原因是确定一个集合代表一个时间线还是两个集合的组合代表一个时间线,来决定,我们对组合集合进行评分并除以二
1,4,2,5,3,8,7,9 => 5/2
我们得出结论1,4,2,5和3,8,7,9是两组,而1,4,2,5,3,8,7,9不是。
我们按顺序移动以处理下一组。
我说距离最小的原因是,在比较初始集合的评分之前,我们首先确定 4、5、6 个或更多元素的集合并对它们进行评分((步骤 A)),并且只取分数更高的单独集合(最小冒泡排序分数这里)。
有什么想法吗 ?