我已经考虑过这一点(并查看了StackOverflow上每一篇“自动生成内容标签”类型的帖子)。
我有一个有多个标签的文章(body:string) (通过标签连接)。
现在,在应用程序中,为了给文章推荐标签,pgsearch会搜索其他文章的正文文本,查找正文中包含的文本(文本中的词干),并根据相关文章的标签推荐标签。当然,这只有在相似的文章已经被标记时才有效,并且随着数据库中更多的文章被标记,也许会有更好的标记来使用。
有没有一种更聪明的方法,比如使用ElasticSearch,从其他文章的正文文本(唯一的和带词干的)中自动找到流行词,并自动生成这些标签的列表。
如果我自己做这件事,有没有什么有效的例子可以效仿呢?
发布于 2012-07-16 21:07:08
您可以使用more-like-this查询查找类似的文章,并使用terms facet查找流行的标签:
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的参数来获得最佳匹配。
发布于 2016-07-02 07:43:54
最好的方法是使用elasticsearch Percolator API。看看这个答案:
Elasticsearch - use a "tags" index to discover all tags in a given string
https://stackoverflow.com/questions/11439463
复制相似问题