首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bigquery堆栈溢出标记。如何找到强相关的标签?

Bigquery堆栈溢出标记。如何找到强相关的标签?
EN

Stack Overflow用户
提问于 2018-04-01 22:35:21
回答 2查看 190关注 0票数 1

假设我要求显示与“数据结构”相关的所有标签和问题,我希望看到相关的标签,如“2-3-4树”、“二进制搜索树”、“dfs”等,而不是看到许多根据语言标准过滤的问题。如果我尝试找出最常见的数据结构二元语法,那么甚至会出现C++和Python,但我更愿意看到核心数据结构标签出现。

我该如何去实现它呢?

我所尝试的是通过首先查询数据结构来获取数据结构中出现次数最多的标签。然后还查看了所有的标签,并获取了它们的公共伙伴,以查看是否出现了数据结构。如果它们成对出现,那么我假设它们是强关联的。但是我怎样才能让这个逻辑再前进一步来获取更多相关的标签呢?

EN

回答 2

Stack Overflow用户

发布于 2018-04-03 08:21:52

据我所知-你已经得到了代码,给你“相关”的标签给你的标签!

如果是这样的话--为了去掉语言,只留下“强”相关的标签,你需要找到(使用你已经拥有的相同的代码/查询)与"programming- languages“标签相关的标签,并将它们从你的结果中排除!

对啰!(希望如此)

附注:

当我这样做的时候:

在初始列表下面

代码语言:javascript
复制
algorithm       java            c++                 c 
python          linked-list     tree                arrays 
c#              binary-tree     binary-search-tree  dictionary 
database        graph           sorting             javascript 
performance     list            recursion           stack 
hash            hashtable       time-complexity     queue 
hashmap             

被“修剪”到

代码语言:javascript
复制
linked-list         tree        arrays              binary-tree 
binary-search-tree  dictionary  database            graph 
sorting             list        recursion           stack 
hash                hashtable   time-complexity     queue 
hashmap             

因此,如下所示的条目被删除

代码语言:javascript
复制
algorithm   java    c++         c 
python      c#      javascript  performance 
票数 1
EN

Stack Overflow用户

发布于 2018-04-03 08:39:00

我在定义一个比率:

(how many times a_tag has shown up with b_tag) / (how many times b_tag has shown up without a_tag)

“数据结构”的结果看起来像你正在寻找的结果:

代码语言:javascript
复制
#standardSQL
CREATE TEMPORARY FUNCTION targetTag() AS ("data-structures");

WITH split_tags AS (
  SELECT SPLIT(tags, '|') tags
  FROM `bigquery-public-data.stackoverflow.posts_questions`
  WHERE tags LIKE '%|%'
)

SELECT *, ROUND(c/notc,4) ratio_related
FROM (
  SELECT tag, COUNT(*) c, (
      SELECT COUNT(*)
      FROM split_tags b, UNNEST(tags) btag
      WHERE targetTag() NOT IN UNNEST(b.tags) AND btag=tag
    ) notc
  FROM split_tags, UNNEST(tags) tag
  WHERE targetTag() IN UNNEST(tags)
  GROUP BY 1
)
WHERE notc>0
AND c+notc>20
ORDER BY 4 DESC
LIMIT 100
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49599134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档