Java 如何对搜索引擎关键词进行聚类?
从Google Analytics中,我有一个(很长)的关键词列表,人们可以在搜索引擎中找到我的网站。我想找到“核心关键词”,假设示例:Java 如何对搜索引擎关键词进行聚类?,java,cluster-analysis,keyword,Java,Cluster Analysis,Keyword,从Google Analytics中,我有一个(很长)的关键词列表,人们可以在搜索引擎中找到我的网站。我想找到“核心关键词”,假设示例: java online training learning java scala training training for java online training java learn scala programming 理想的结果是:“java”、“在线培训”、“培训”、“scala”和“学习” 困难似乎在于检测完整的短语,忽略常用词(for)和处理变
java online training
learning java
scala training
training for java
online training java
learn scala programming
理想的结果是:“java”、“在线培训”、“培训”、“scala”和“学习”
困难似乎在于检测完整的短语,忽略常用词(for)和处理变体(learn-learning)
是否有一个库可以做到这一点(最好是针对JVM)?或者有合适的算法可以自己实现吗?这是一个术语或关键字提取问题。我做了一个搜索,它出现了,这看起来很像你想要的 您可以通过以下算法实现简单的解决方案:
- 生成文档中具有所需短语长度的NGRAM列表(选择任意短语长度限制,如3或4)
- 将ngram放入
- 按次数或计数的顺序迭代多重集的条目,可能使用任意截止
希望有帮助 我认为你需要花更多的时间来说明你的要求。即使在你有限的例子中,我也不知道为什么你不认为“编程”是“核心”。如果你用Google的结果来寻找好的关键词呢?Scala的结果会比for->better word的结果要少。您可以搜索所有可能的短语,并记录每个短语的结果数,然后找到存在好短语的范围。(这只是一个快速的想法,所以我不会把它作为一个答案)