相关疑难解决方法(0)

查找列中最常用的非停用词

简而言之,我有一个包含普通散文的 Postgres 列,我想确定所有行中x最常用的单词(“单词”是由空格分隔的一组字符,但不是停用词)。

我找到了两个几乎达到目标的解决方案:

SELECT *                                       
FROM   ts_stat($$SELECT to_tsvector('english', title) FROM item$$) 
ORDER  BY ndoc DESC
LIMIT  50;
Run Code Online (Sandbox Code Playgroud)

这很好,除了它返回词干。

SELECT   UNNEST(string_to_array(title, ' ')) AS word, COUNT(*) AS ct
FROM     item 
GROUP    BY 1 
ORDER    BY 2 DESC
LIMIT    50;
Run Code Online (Sandbox Code Playgroud)

这个返回完整的词,但包括停用词。

为简单起见:应该在 上找到停用词TABLE stop_words (lowercase_stopword text PRIMARY KEY)

有人可以帮我上网吗?

postgresql full-text-search string-manipulation

7
推荐指数
2
解决办法
2542
查看次数

字段中的字数统计(所有且唯一) - 有没有更优雅/最佳的方式?

回答这个问题

鉴于此表(根据问题构建):

CREATE TABLE wordcount (id SERIAL NOT NULL PRIMARY KEY, description TEXT NOT NULL);

INSERT INTO wordcount (description) VALUES ('What a great day');
INSERT INTO wordcount (description) VALUES ('This is a product. It is useful');
Run Code Online (Sandbox Code Playgroud)

产生这个结果:

     id  | word_count | unique_word_count |  Description                        
---------+------------+-------------------+---------------
     1   |  4         | 4                 | What a great day
     2   |  7         | 6                 | This is a product. It is useful
Run Code Online (Sandbox Code Playgroud)

我给出了(正确的)答案,你可以在这里找到。

然而,在评论中,OP 然后又问了一个问题——如果有问题的字符串是['a', ' ', ' ', …

postgresql optimization string-manipulation query-performance

5
推荐指数
1
解决办法
646
查看次数