假设我要求显示与“数据结构”相关的所有标签和问题,我希望看到相关的标签,如“2-3-4树”、“二进制搜索树”、“dfs”等,而不是看到许多根据语言标准过滤的问题。如果我尝试找出最常见的数据结构二元语法,那么甚至会出现C++和Python,但我更愿意看到核心数据结构标签出现。
我该如何去实现它呢?
我所尝试的是通过首先查询数据结构来获取数据结构中出现次数最多的标签。然后还查看了所有的标签,并获取了它们的公共伙伴,以查看是否出现了数据结构。如果它们成对出现,那么我假设它们是强关联的。但是我怎样才能让这个逻辑再前进一步来获取更多相关的标签呢?
发布于 2018-04-03 08:21:52
据我所知-你已经得到了代码,给你“相关”的标签给你的标签!
如果是这样的话--为了去掉语言,只留下“强”相关的标签,你需要找到(使用你已经拥有的相同的代码/查询)与"programming- languages“标签相关的标签,并将它们从你的结果中排除!
对啰!(希望如此)
附注:
当我这样做的时候:
在初始列表下面
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 被“修剪”到
linked-list tree arrays binary-tree
binary-search-tree dictionary database graph
sorting list recursion stack
hash hashtable time-complexity queue
hashmap 因此,如下所示的条目被删除
algorithm java c++ c
python c# javascript performance 发布于 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)
“数据结构”的结果看起来像你正在寻找的结果:

#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 100https://stackoverflow.com/questions/49599134
复制相似问题