假设我要向我展示与'数据结构'相关的所有标签和问题我希望看到相关标签,如'2-3-4 trees','binary-search-trees','dfs'等等,并没有看到很多问题按语言标准过滤。如果我尝试用数据结构找出最常见的双字母组合,那么即使是C ++和Python也会出现,但我宁愿尝试看到核心数据结构标签出现。
我该如何实施?
如果尝试过,首先通过查询数据结构来获取数据结构最多的标记。然后还查看了所有标记并获取了他们的共同伙伴,以查看是否发生了数据结构。如果它们成对出现,那么我认为它们是强相关的。但是,如何才能将这一逻辑提前一步来获取更多相关标签?
答案 0 :(得分:1)
根据我的理解 - 您已经获得了代码,为您提供给定标签的“相关”标签!
如果是这样 - 要摆脱语言并只保留“强烈”相关标签,您需要找到(使用与“编程语言”标签相关的标签相同的标签)并将其从结果中排除!
宾果! (希望如此)
P.S。
当我这样做时:
低于初始列表
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
答案 1 :(得分:0)
我正在定义一个比率:
(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 100