python中的相似词分组

Posted

技术标签:

【中文标题】python中的相似词分组【英文标题】:Grouping Similar words in python 【发布时间】:2019-07-23 03:55:39 【问题描述】:

我正在尝试使用 spacy 从文本中提取关键字/实体名称。

我能够提取所有实体名称,但我得到了很多重复项。

例如,

def keywords(text): 
    tags = bla_bla(text)
    return tags
article = "Donald Trump. Trump. Trump. Donald. Donald J Trump."
tags = keywords(article)

我得到的输出是: ['唐纳德特朗普','特朗普','特朗普','唐纳德','唐纳德J特朗普']

如何将所有这些标签聚集在一个主标签“Donald J Trump”下?

【问题讨论】:

使用字典'master_tag': [list-of-other-tags] 有没有办法动态地做到这一点?我的意思是,特朗普就是一个例子,但我还有很多其他标签要分组。 【参考方案1】:

1) 简单的方法:只保留包含较小实体的最长实体 2)更耗时:制作实体字典 3) ML:用词袋向量化实体并将它们聚类,聚类中最长的实体将是“主”

【讨论】:

【参考方案2】:

带有精心制作的字典。

没有无监督/集群可以可靠地做到这一点。

考虑以下句子

特朗普总统会见了他的儿子小唐纳德·特朗普

【讨论】:

以上是关于python中的相似词分组的主要内容,如果未能解决你的问题,请参考以下文章

在列表中匹配和分组彼此相关(相关)的相似词

将 csv 文件中的相似句子字符串分组在一起

在python中将相似的字符串分组为单个组[重复]

在 Node.js 中对数组中的相似字符串进行分组

当标准列表不存在时,python 中的公司名称聚类

非常快速的文档相似度