我需要为加载到 MarkLogic 的一组文档中的每个文档生成一个关键字列表。我正在考虑针对一组文档运行 cts:distinctive-terms,但无法弄清楚如何获取每个文档的关键字列表,而不是与该集合相关的术语列表。任何人都可以提出解决方案吗?
问问题
281 次
2 回答
3
您是否使用了该score=logtf
选项?当我尝试这样做时,停用词的分数上升了很多。如果您考虑一下,这是有道理的:数据库不能再使用 IDF 来清除它们。但是,如果您只想要 TF,您可以使用停用词列表进行过滤 - 正如已经建议的那样。
但是logtfidf
得分自然应该惩罚停用词。您可以设置min-val
选项或其他选项来调整结果。例如,这里我设置min-val
为 27,因为停用词开始出现在 26。正确的选项将取决于现有的数据库内容,因为 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 回答
3
只需遍历感兴趣的文档并分别为每个文档调用 cts:distinct-terms :
for $doc in doc()
return
cts:distinctive-terms($doc)
!
于 2012-08-06T19:40:23.773 回答