Algorithm 关键词云是如何构造的?

Algorithm 关键词云是如何构造的?,algorithm,math,search,nlp,keyword,Algorithm,Math,Search,Nlp,Keyword,关键词云是如何构造的? 我知道有很多nlp方法,但我不确定它们如何解决以下问题: 您可以有几个项目,每个项目都有一个与其相关的关键字列表 (在我自己的程序中,这些项目是我可以使用nlp方法检测专有名词、人物、地点和(?)可能是主题。如果有足够大的文章,这将是一个非常大的列表,但我会假设我可以通过比较文章来使用某种方法筛选列表。如何正确地做到这一点是我所困惑的) 每个项目都可以有一个关键字列表,但是他们如何选择关键字,使每个项目之间的关键字不会过于具体或过于笼统? 例如,微不足道的“the”可以是

关键词云是如何构造的? 我知道有很多nlp方法,但我不确定它们如何解决以下问题:

您可以有几个项目,每个项目都有一个与其相关的关键字列表

(在我自己的程序中,这些项目是我可以使用nlp方法检测专有名词、人物、地点和(?)可能是主题。如果有足够大的文章,这将是一个非常大的列表,但我会假设我可以通过比较文章来使用某种方法筛选列表。如何正确地做到这一点是我所困惑的)

每个项目都可以有一个关键字列表,但是他们如何选择关键字,使每个项目之间的关键字不会过于具体或过于笼统? 例如,微不足道的“the”可以是一个包含很多项的关键字。 而“超级救生圈”只能是一个

我假设我可以创建一个启发式,如果一个单词存在于n%的条目中,其中n足够小,但会返回一个很好的子列表(假设1000篇文章中的5%是50篇,这似乎是合理的),那么我可以使用它然而,我采用这种方法的问题是,给定两组完全不同的项目,这些项目之间的相关性很可能存在一些差异,我将丢弃这些信息

这是非常不令人满意的

我觉得,考虑到关键字云的流行,一定已经有了一个解决方案。然而,我不想使用库,因为我想理解和操纵数学中的假设

如果有人有任何想法,请告诉我

谢谢

编辑:

freenode/programming/guardianx建议

顺便说一句,tf idf是可以的,但问题是权重需要事先确定。鉴于两个不同的文档集合在文档之间具有不同的固有相似性,假设先验权重感觉不正确

freenode/programming/anon建议

我不确定我想要的是使用神经网络的东西(这个问题有点复杂?),但仍在考虑。

仍然是提取关键字的标准方法。您可以尝试的一个演示(它具有idf向量,如您所说的apriori确定的,从Wikipedia估计的)。一个流行的替代方案是基于PageRank的,它在中具有现成的实现

如果您决定使用自己的实现,请注意,所有算法通常都需要大量的调优和文本预处理才能正常工作


你需要做的最低限度是删除那些你知道它们永远不能成为关键词的停止词(介词、冠词、代词等)。例如,如果你想要更华丽的东西,你可以只保留你想要的词类(名词、动词、形容词)。您还可以包括频繁的多词表达式(gensim具有自动搭配检测的良好功能)、命名实体(spacy可以做到这一点)。如果您运行共指消解并用代词所指代的内容替换代词,您可以获得更好的结果。。。有无数的改进选项。

谢谢。我觉得这是一个“困难”的问题,但确认是一个值得赞赏的问题。干杯