相关性n

2024-05-23 21:47:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的基础数据科学学期的CAS学期论文中,我正在解析一个新闻网站上的所有文章及其元数据(作者、标题、副标题、摘要、标签、类别、子类别、创建日期、更新日期等)-灵感来自这个家伙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

现在我要计算标签之间的相关性。 e、 g.在第一行中,“全景”有一行到“schweiz”,“verkehr”,“news” “schweiz”有一行到“panorama”,“verkehr”,“news” 等等。有时有3个标签,有时多达7、8个。你知道吗

我想让一个脚本在所有行中运行,并计算出这种相关性,并对其进行总结。你知道吗

第一个问题,有人能告诉我怎么做吗?有什么可以帮忙的吗?哪怕是一个小小的暗示,我也会非常感激。
最后一个问题,有没有人能给我一个提示,我怎么能想象这个。我想要一个能看到整个地图的网络图。最常见的标记越大,最常见连接的线宽也越粗。你知道吗

我的主要问题是,我甚至不知道我要看什么。你可能注意到英语不是我的母语,在德语中,我还没有找到真正对我有帮助的东西;-)

非常感谢,来自瑞士的欢呼 马可

编辑,PS:为了更恰当地指定。列表中的所有标记都是标记。如果我有:

panorama,schweiz,verkehr,news

这是4个标签,每个标签都与其他三个标签相关。你知道吗


Tags: 数据标记科学标签类别基础news学期
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   

我会:

  1. 堆栈数据帧(所有列都被熔化的熔化的特殊情况)
  2. 按标签分组
  3. 计算每个类别为每个标记显示的次数
# 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
...

然后你可以在那个矩阵上做关联

有人有另一个想法或提示,我如何创建一个矩阵,在X轴和Y轴上的所有标记,并在值中计算这种关系的发生?你知道吗

相关问题 更多 >