首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ElasticSearch自动生成标签(或者考虑使用Sphinx / pg-search )

使用ElasticSearch自动生成标签(或者考虑使用Sphinx / pg-search )
EN

Stack Overflow用户
提问于 2012-07-12 02:53:35
回答 2查看 1.2K关注 0票数 0

我已经考虑过这一点(并查看了StackOverflow上每一篇“自动生成内容标签”类型的帖子)。

我有一个有多个标签的文章(body:string) (通过标签连接)。

现在,在应用程序中,为了给文章推荐标签,pgsearch会搜索其他文章的正文文本,查找正文中包含的文本(文本中的词干),并根据相关文章的标签推荐标签。当然,这只有在相似的文章已经被标记时才有效,并且随着数据库中更多的文章被标记,也许会有更好的标记来使用。

有没有一种更聪明的方法,比如使用ElasticSearch,从其他文章的正文文本(唯一的和带词干的)中自动找到流行词,并自动生成这些标签的列表。

如果我自己做这件事,有没有什么有效的例子可以效仿呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-16 21:07:08

您可以使用more-like-this查询查找类似的文章,并使用terms facet查找流行的标签:

代码语言:javascript
复制
curl -XGET 'http://127.0.0.1:9200/myindex/article/_search?pretty=1'  -d '
{
   "query" : {
      "more_like_this_field" : {
         "body" : {
            "min_doc_freq" : 1,
            "like_text" : "BODY OF THE NEW ARTICLE",
            "min_term_freq" : 1,
            "percent_terms_to_match" : 0.2
         }
      }
   },
   "facets" : {
      "tags" : {
         "terms" : {
            "field" : "tags"
         }
      }
   }
}
'

根据您的语料库的大小,您可能需要使用more_like_this_field的参数来获得最佳匹配。

票数 1
EN

Stack Overflow用户

发布于 2016-07-02 07:43:54

最好的方法是使用elasticsearch Percolator API。看看这个答案:

Elasticsearch - use a "tags" index to discover all tags in a given string

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11439463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档