sister_graph.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:sistercities 作者: displayn 项目源码 文件源码
def get(w, d) -> object:
    wikipedia = nx.DiGraph(w)
    wikidata = nx.DiGraph(d)

    root_nodes = nx.get_node_attributes(wikipedia, 'group')
    wikidata_root_nodes = nx.get_node_attributes(wikidata, 'group')
    assert (len(root_nodes) == len(wikidata_root_nodes)), 'Error: Graph root size should be the same!'

    url_wiki = nx.get_node_attributes(wikipedia, 'url')
    url_data = nx.get_node_attributes(wikidata, 'url')
    revision_id_wikipedia = nx.get_node_attributes(wikipedia, 'revision_id_wikipedia')
    revision_id_wikidata = nx.get_node_attributes(wikidata, 'revision_id_wikidata')
    city_list = []
    for c in root_nodes.keys():
        wg_neighbors = wikipedia.successors(c)
        wd_neighbors = wikidata.successors(c)

        pedia = set(wg_neighbors)
        data = set(wd_neighbors)

        intersection = set(pedia).intersection(data)
        wikipedia_missing = set(data) - set(pedia)
        wikidata_missing = set(pedia) - set(data)

        city_dict = {'qid': c,
                     'revision_id_wikipedia': revision_id_wikipedia[c],
                     'revision_id_wikidata': revision_id_wikidata[c],
                     'url': url_wiki[c],
                     'miss_wikipedia': city_build(url_data, wikipedia_missing),
                     'intersection': city_build(url_wiki, intersection),
                     'data_cities': city_build(url_wiki, wikidata_missing)
                     }
        city_list.append(city_dict)
    city_list = sorted(city_list, key=lambda x: x['url'])
    return city_list
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号