MarkLogicにロードされる一連のドキュメント内の各ドキュメントのキーワードのリストを生成する必要があります。ドキュメントのセットに対してcts:distinctive-termsを実行することを検討していますが、セットに関連する用語のリストではなく、各ドキュメントのキーワードのリストを取得する方法を理解できません。誰かが解決策を提案できますか?
質問する
281 次
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-val
1つまたは他のオプションを設定して、結果を調整できます。たとえば、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 に答える