Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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
Sql 如何使用BigQuery识别stopwords?_Sql_Google Bigquery_Text Analysis - Fatal编程技术网

Sql 如何使用BigQuery识别stopwords?

Sql 如何使用BigQuery识别stopwords?,sql,google-bigquery,text-analysis,Sql,Google Bigquery,Text Analysis,我正在看reddit的评论。我正在使用一些常用的停止字列表,但我想为此数据集创建一个自定义的停止字列表。如何使用SQL实现这一点?识别停止字的一种方法是查看大多数文档中显示的停止字 此查询中的步骤: 筛选文章的相关性、质量(选择你的子项、选择最低分数、选择最低长度) Unescape reddit HTML编码值 决定什么算作单词(在本例中为r'[a-z]{1,20}\'?[a-z]+') 每个单词在每个文档(注释)中只统计一次,而不管它在每个注释中重复了多少次 通过计算出现的文档数量,获得前x

我正在看reddit的评论。我正在使用一些常用的停止字列表,但我想为此数据集创建一个自定义的停止字列表。如何使用SQL实现这一点?

识别停止字的一种方法是查看大多数文档中显示的停止字

此查询中的步骤:

  • 筛选文章的相关性、质量(选择你的子项、选择最低分数、选择最低长度)
  • Unescape reddit HTML编码值
  • 决定什么算作单词(在本例中为
    r'[a-z]{1,20}\'?[a-z]+'
  • 每个单词在每个文档(注释)中只统计一次,而不管它在每个注释中重复了多少次
  • 通过计算出现的文档数量,获得前x个单词
  • 查询:

    #standardSQL
    WITH words_by_post AS (
      SELECT CONCAT(link_id, '/', id) id, REGEXP_EXTRACT_ALL(
        REGEXP_REPLACE(REGEXP_REPLACE(LOWER(body), '&', '&'), r'&[a-z]{2,4};', '*')
          , r'[a-z]{1,20}\'?[a-z]+') words
      FROM `fh-bigquery.reddit_comments.2017_07`  
      WHERE body NOT IN ('[deleted]', '[removed]')
      AND subreddit IN ('AskReddit', 'funny', 'movies')
      AND score > 100
    ), words_per_doc AS (
      SELECT id, word
      FROM words_by_post, UNNEST(words) word
      WHERE ARRAY_LENGTH(words) > 20
      GROUP BY id, word
    )
    
    SELECT word, COUNT(*) docs_with_word
    FROM words_per_doc
    GROUP BY 1
    ORDER BY docs_with_word DESC
    LIMIT 100
    

    有关