0

私はこれについて少し考えました(そしてStackOverflowのすべての「コンテンツのタグの自動生成」タイプの投稿を見ました)。

複数のタグ(タグ付けによって結合された)を持つ記事(body:string)があります。

現在、アプリでは、記事のタグを提案するために、pgsearchは他の記事の本文テキストで本文に含まれるテキスト(テキスト内の語幹)を検索し、それらの関連記事のタグに基づいてタグを提案します。もちろん、これは類似の記事がタグ付けされている場合にのみ機能します。データベースでタグ付けされる記事が増えるにつれて、使用するタグがより適切になる可能性があります。

たとえばElasticSearchを使用して、他の記事の本文テキスト(一意で語幹)から人気のある単語を自動的に検索し、これらのタグのリストを自動生成する、よりスマートな方法はありますか?

これを自分で行う場合、これを効率的に行うために従うべき例はありますか?

4

2 に答える 2

1

more-like-thisクエリを使用して類似の記事を検索し、用語ファセットを使用して人気のあるタグを検索できます。

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、最適な一致を取得するためにパラメーターをいじくり回す必要がある場合があります。

于 2012-07-16T13:07:08.210 に答える
0

これを行う最良の方法は、elasticsearchPercolatorAPIを使用することです。この答えをチェックしてください:

Elasticsearch-「タグ」インデックスを使用して、特定の文字列内のすべてのタグを検出します

于 2016-07-01T23:43:54.057 に答える