Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
postgresql词组提取&;排名_Postgresql_Data Mining_Text Analysis - Fatal编程技术网

postgresql词组提取&;排名

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个单词

从表中选定的行中,如何根据短语出现的频率提取短语并对其进行排序

例1:

例2:

要找到单词,而不是短语,可以使用

SELECT * FROM ts_stat('SELECT to_tsvector(''simple'', phrase) FROM phrases')
ORDER BY nentry DESC, ndoc DESC, word;
一些注意事项:

  • 短语可以包含“停止词”,例如“易于回答”
  • 理想情况下,英语变体和同义词将自动分组
pg_trgm能帮忙吗?(如果只找到2个和3个单词短语就可以了)。到底是怎么回事

相关问题:


我同意克雷格的观点,即这肯定远远超出了Tsarch2和任何其他现有PostgreSQL工具的预期范围。但是,我确实认为在db引擎中这样做可能不会太糟糕。PostgreSQL的优势之一是可编程性,这一优势为您提供了一些未充分利用的选项

正如Craig所指出的,这是自然语言处理的领域,而不是SQL本身,因此您要做的第一件事是建立一个支持PostgreSQL支持的存储过程语言的自然语言处理工具包。换句话说,您需要支持Perl、Python、C等的东西。无论PostgreSQL支持什么,您都可以轻松使用

第二步是用存储过程语言为该工具包创建功能接口。这应该接收文本,并以PostgreSQL能够合理处理的某种类型输出短语分解。您需要仔细注意类型,因为这会影响索引之类的事情


从那里,您可以将其合并到数据库接口和查询中。

我认为这远远超出了数据库引擎的范围。您可能需要工具来进行短语提取。然后,您可以将它们包装成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;