对于我的Basic DataScience Semester的CAS学期论文,我正在解析一个新闻网站,其中包含所有文章及其元数据(作者,标题,字幕,摘要,标签,类别,子类别,创建dt,更新dt等)。 )-受此人https://www.youtube.com/watch?v=-YpwsdRKt8Q
的启发一切正常,我的树莓派全15分钟收集了此数据,依此类推。
我只是有一个问题。我想用标签创建一个关联网络。该标签列看起来像
0 panorama,schweiz,verkehr,news 1 sport,schweiz,eishockey,news 2 stans,panorama,verkehr,strassenverkehr,news 3 eishockey,sport,davos,news 4 wirtschaft,schweiz,konsum,kaffeetee,news 5 jeanclaudegerber,news,srilanka,tiere,wissen 6 schule,bellinzona,panorama,news 7 luzern,jrgenklopp,fussball,news 8 panorama,klima,gretathunberg,lissabon,news 9 australien,vermisstmeldung,gesellschaft,news 10 gesellschaft,amerika,news,ausstellung
现在,我想计算标签之间的相关性。 例如在第一行中,“ panorama”对“ schweiz”,“ verkehr”,“ news”有1行 “ schweiz”与“ panorama”,“ verkehr”,“ news”有1行 等等。有时有3个标签,有时最多有7个。
我想在所有行中运行一个脚本,并计算此相关性并将其汇总。
第一个问题,有人可以提示我如何执行此操作吗?是否有可以帮助的模块?即使有一点暗示,我也将非常感激。
最后一个问题,是否有人可以给我一个提示,让我可以形象地看到这一点。我想要一个可以看到整个地图的网络图。最常用的标签越大,最常用连接的线宽也越粗。
我的主要问题是,我什至不知道要看什么。您可能会注意到英语不是我的母语,而且在德语中我还没有找到真正对我有帮助的东西;-)
非常感谢,来自瑞士的欢呼声 马可
edit,PS:为了更正确地指定。列表中的所有标签都是标签。所以,如果我有:
panorama,schweiz,verkehr,news
这些是4个标签,每个标签都与其他三个标签相关。
答案 0 :(得分:2)
我认为您要做的第一件事是计算每个标签的每个类别的出现,因此从以tags
作为索引的Pandas数据帧开始:
df =
1 2 3 4
tags
panorama schweiz verkehr news None
sport schweiz eishockey news None
stans panorama verkehr strassenverkehr news
eishockey sport davos news None
wirtschaft schweiz konsum kaffeetee news
jeanclaudegerber news srilanka tiere wissen
schule bellinzona panorama news None
luzern jrgenklopp fussball news None
panorama klima gretathunberg lissabon news
australien vermisstmeldung gesellschaft news None
gesellschaft amerika news ausstellung None
我会:
# This does all of the above at once
counts = df.stack().rename('category').reset_index('tags').groupby('tags').category.value_counts()
哪个给
counts =
tags category
australien gesellschaft 1
news 1
vermisstmeldung 1
eishockey davos 1
news 1
sport 1
gesellschaft amerika 1
ausstellung 1
news 1
jeanclaudegerber news 1
srilanka 1
tiere 1
wissen 1
luzern fussball 1
jrgenklopp 1
news 1
panorama news 2
gretathunberg 1
klima 1
lissabon 1
schweiz 1
verkehr 1
schule bellinzona 1
news 1
panorama 1
sport eishockey 1
news 1
schweiz 1
stans news 1
panorama 1
strassenverkehr 1
verkehr 1
wirtschaft kaffeetee 1
konsum 1
news 1
schweiz 1
Name: category, dtype: int64
然后您可以取消堆叠该系列以提供一张桌子:
counts.unstack()
category amerika ausstellung bellinzona davos eishockey \
tags
australien NaN NaN NaN NaN NaN
eishockey NaN NaN NaN 1.0 NaN
gesellschaft 1.0 1.0 NaN NaN NaN
jeanclaudegerber NaN NaN NaN NaN NaN
luzern NaN NaN NaN NaN NaN
panorama NaN NaN NaN NaN NaN
schule NaN NaN 1.0 NaN NaN
sport NaN NaN NaN NaN 1.0
stans NaN NaN NaN NaN NaN
wirtschaft NaN NaN NaN NaN NaN
...
然后您可以在该矩阵上进行关联
答案 1 :(得分:0)
有人给我一个提示或提示,我如何创建一个在X轴和Y轴上带有所有标签的矩阵,并将这种关系的出现数记入值?