1

MarkLogicにロードされる一連のドキュメント内の各ドキュメントのキーワードのリストを生成する必要があります。ドキュメントのセットに対してcts:distinctive-termsを実行することを検討していますが、セットに関連する用語のリストではなく、各ドキュメントのキーワードのリストを取得する方法を理解できません。誰かが解決策を提案できますか?

4

2 に答える 2

3

対象のドキュメントを繰り返し処理し、各ドキュメントのcts:distinct-termsを個別に呼び出します。

for $doc in doc()
return
    cts:distinctive-terms($doc)

HTH!

于 2012-08-06T19:40:23.773 に答える
3

オプションを使用していましたscore=logtfか?それを試してみると、ストップワードのスコアがかなり上がりました。あなたがそれについて考えるならば、これは理にかなっています:データベースはもはやそれらを取り除くためにIDFを使用することができません。ただし、TFのみが必要な場合は、すでに提案されているように、ストップワードリストを使用してフィルタリングできます。

しかし、logtfidf得点は当然ストップワードにペナルティを課すはずです。min-val1つまたは他のオプションを設定して、結果を調整できます。たとえば、min-valストップワードが26で表示され始めたため、ここでは27に設定しました。IDFのため、適切なオプションは既存のデータベースコンテンツによって異なります。

cts:distinctive-terms(
  text { 'I need to generate a list of keywords for each document in a set of documents that are loaded into MarkLogic. I am considering running cts:distinctive-terms against the set of documents, but cannot figure out how to get a list of keywords for each document rather than a list of terms relevant to the set. Can anyone suggest a solution?' },
  <options xmlns="cts:distinctive-terms"
   xmlns:db="http://marklogic.com/xdmp/database">
    <min-val>27</min-val>
    <use-db-config>false</use-db-config>
    <db:stemmed-searches>true</db:stemmed-searches>
    <db:word-searches>false</db:word-searches>
    <db:fast-phrase-searches>false</db:fast-phrase-searches>
  </options>)/cts:term/cts:word-query/cts:text/string()
=>
load
set
solution
term
document
list
keyword
于 2012-08-07T14:09:43.300 に答える