检索前5个句子-算法(如果有)

时间:2018-06-22 11:37:18

标签: machine-learning nlp deep-learning data-science

我是数据科学的新手。这可能是一个愚蠢的问题,但只想了解意见并确认我是否可以很好地加以完善。 我有一个问题,要从数据库中获取最常见/最常见的5个句子。我知道我可以将所有数据(句子)收集到一个列表中并使用Counter库-我可以提取出现次数最多的5个句子,但是我很想知道是否有任何算法(ML / DL / NLP)存在需求。所有的句子都是由用户给出的。我需要知道他的前5个(最常出现/最频繁)的句子(请不要说短语)!

句子示例-

“欢迎来到极客世界”

“创建此门户是为了提供写得很好的主题”

“如果您喜欢Geeks for Geeks并愿意做出贡献”

”为geeksforgeeks org贡献力量看到您的文章出现在“

”为geeksforgeeks org贡献力量查看您的文章出现在“(第二次出现)

“ Geeks for Geeks主页,并帮助成千上万的其他Geeks。”

注意:我在数据库中的所有句子都是不同的(在上下文上明智,也没有重复)。这只是我的要求的一个例子。

谢谢。

2 个答案:

答案 0 :(得分:0)

我建议您从sentence embeddings开始。简要地说,它返回给定句子的向量,并大致表示句子的含义。

假设您在数据库中有n个句子,并且发现每个句子的句子嵌入,所以现在您有n个向量。

一旦有了向量,就可以使用降维技术,例如t-sne,以二维或3维形式显示句子。在这种可视化中,具有相似含义的句子应该理想地彼此接近。这可以帮助您查明最常用的句子,它们的含义也很接近。

我认为一个问题是,由于意义本质上是主观的,所以仍然很难为句子的意义划清界限。您可能必须在上述过程中添加一些启发式方法。

答案 1 :(得分:0)

除了MGoksu的答案外,一旦获得句子嵌入,就可以应用LSH(局部敏感哈希)将嵌入分组为簇。

一旦获得嵌入簇。要获得具有最多矢量数量的聚类,将是微不足道的。