【发布时间】:2011-11-11 05:04:30
【问题描述】:
尊敬的 stackoverflow 社区:
给定一些文本,我希望得到文本中最常用的 TOP 50 词,并从中创建一个标签云,从而以图形方式显示文本的要点。
文本实际上是一组 100 个左右的 cmets 每个 ITEM(一张图片)大约有 120 个项目,我还想保持云更新 - 通过保持 cmets 索引,并在每次出现新的 Web 请求时使用云生成代码运行。
我决定使用 Solr 来索引文本,现在想知道如何从 Solr TermsVectorComponant 中获取前 50 个单词。以下是术语向量组件返回的结果示例,在您通过说tv.tf="true" 打开术语频率后:
<lst name="doc-5">
<str name="uniqueKey">MA147LL/A</str>
<lst name="includes">
<lst name="cabl"><tf>5</tf></lst>
<lst name="earbud"><tf>3</tf></lst>
<lst name="headphon"><tf>10</tf></lst>
<lst name="usb"><tf>11</tf></lst>
</lst>
</lst>
<lst name="doc-9">
<str name="uniqueKey">3007WFP</str>
<lst name="includes">
<lst name="cabl"><tf>5</tf></lst>
<lst name="usb"><tf>4</tf></lst>
</lst>
</lst>
如您所见,我有 2 个问题:
- 我获得了文档中针对该字段的所有术语,而不仅仅是前 100 个术语
- 而且它们没有按频率排序,所以我必须获取术语并在内存中对其进行排序以执行我正在尝试的操作。
有没有更好的方法? (或)我可以告诉 solr termvector 组件以某种方式对其进行排序并为我只提取 100 个吗? (或)我可以使用其他一些框架吗?我需要在新的 cmets 出现时对其进行索引,因此标签云始终是最新的 - 至于云生成器,它需要一个加权词字典,并将其变成一个漂亮的图像。
This 回答没有帮助。
编辑 - 尝试 jpountz 和佩奇厨师的回答
这是我为此查询得到的结果:
select?q=Id:d4439543-afd4-42fb-978a-b72eab0c07f9&facet=true
&facet.field=Post_Content&facet.minCount=1&facet.limit=50
<int name="also">1</int>
<int name="ani">1</int>
<int name="anoth">1</int>
<int name="atleast">1</int>
<int name="base">1</int>
<int name="bcd">1</int>
<int name="becaus">1</int>
<int name="better">1</int>
<int name="bigger">1</int>
<int name="bio">1</int>
<int name="boot">1</int>
<int name="bootabl">1</int>
<int name="bootload">1</int>
<int name="bootscreen">1</int>
我得到了 50 个这样的元素,@jpountz 感谢您帮助限制结果,但是为什么所有 50 个单独的 <int> 元素都保持值 1?我的想法是:数字 1 表示与我的查询匹配的文档数(由于我通过 Id:Guid 查询,因此只能是一个),它们不代表 Post_Content 中单词的频率
为了证明这一点,我从查询中删除了 Id:GUID,结果是:
<int name="content">33</int>
<int name="can">17</int>
<int name="on">16</int>
<int name="so">16</int>
<int name="some">16</int>
<int name="all">15</int>
<int name="i">15</int>
<int name="do">14</int>
<int name="have">14</int>
<int name="my">14</int>
我的问题是如何获取文档中的词频,而不是许多词的文档频率。例如,我知道 bootable 是我在 Post_content 中使用了 6 次的一个词,所以我想要对一组文档进行排序,如 (6,"bootable")、(5, "disc")。
【问题讨论】:
-
具体来说是我们可以使用的功能查询吗?
-
元素出现在构面结果中。
标签: java lucene solr visualization data-visualization