postgresql词组提取&;排名
从表中选定的行中,如何根据短语出现的频率提取短语并对其进行排序 例1: 例2: 要找到单词,而不是短语,可以使用postgresql词组提取&;排名,postgresql,data-mining,text-analysis,Postgresql,Data Mining,Text Analysis,从表中选定的行中,如何根据短语出现的频率提取短语并对其进行排序 例1: 例2: 要找到单词,而不是短语,可以使用 SELECT * FROM ts_stat('SELECT to_tsvector(''simple'', phrase) FROM phrases') ORDER BY nentry DESC, ndoc DESC, word; 一些注意事项: 短语可以包含“停止词”,例如“易于回答” 理想情况下,英语变体和同义词将自动分组 pg_trgm能帮忙吗?(如果只找到2个和3个单词
SELECT * FROM ts_stat('SELECT to_tsvector(''simple'', phrase) FROM phrases')
ORDER BY nentry DESC, ndoc DESC, word;
一些注意事项:
- 短语可以包含“停止词”,例如“易于回答”
- 理想情况下,英语变体和同义词将自动分组李>
从那里,您可以将其合并到数据库接口和查询中。我认为这远远超出了数据库引擎的范围。您可能需要工具来进行短语提取。然后,您可以将它们包装成PL/Java、C存储函数或其他任何形式,并从DB中使用它们。PostgreSQL怎么知道“短语”是什么?也就是说,两个或三个单词的约束可能使它在DB中实现。使用一个自定义词典,包含所有来自英语的2&3个常用单词分组,并为ts_tovector设置更高的优先级,怎么样?如果这样做行得通,我怎么能轻松地建立这本词典呢?事实上,这本词典太大了。可能的组合太多了。您可以使用自定义编码的Tsarch2解析器来实现。不过还是有不少工作要做。
SELECT * FROM ts_stat('SELECT to_tsvector(''simple'', phrase) FROM phrases')
ORDER BY nentry DESC, ndoc DESC, word;