Scala

时间:2016-12-03 17:13:46

标签: algorithm scala tags

我有50M不同的文本作为输入,从中提取了最多(最多)10个最相关的标签。

有~100K个不同的标签

我想开发一种算法,在给定文本ID T1作为输入(存在于原始输入数据集中)的情况下,基于T2是具有大多数标记的文本的事实来计算最相关的文本id T2。与T1相同。

id | tags
-------------
 1 | A,B,C,D
 2 | B,D,E,F
 3 | A,B,D,E
 4 | B,C,E

在上面的例子中,最相似的id为1是3,因为它们共有3个标签

这似乎与在StackOverflow中显示最相关问题的算法相同。

我的第一个想法是将文本和标签映射到整数,以构建一个非常稀疏的大型(50M * 100K)二进制矩阵。

这个矩阵适合记忆,但我不知道如何使用它。

由于这是针对Web应用程序的,我希望以实时条件(最多几毫秒,可能的多线程)提供结果。

我的主要语言是Scala和Java。

感谢您的帮助

0 个答案:

没有答案