我有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。
感谢您的帮助