Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from __future__ import absolute_import, print_function, division
- import numpy as np
- from inspire_dojson.utils import get_recid_from_ref
- from inspire_utils.record import get_value
- from inspirehep.utils.record_getter import get_db_records
- def get_coreness_and_references(record):
- core_vector = _core_to_one_hot(record.get('core'))
- num_refs = len(record.get('references', []))
- cited_recids = [get_recid_from_ref(rec) for rec in get_value(record, 'references.record', [])]
- return core_vector, num_refs, cited_recids
- def get_coreness(record, level=1):
- core_vector, num_refs, cited_recids = get_coreness_and_references(record)
- if level == 0:
- return [core_vector]
- else:
- if not cited_recids:
- return np.concatenate([[core_vector], np.repeat([[0, 0]], level, 0)])
- cited_records = get_db_records('lit', cited_recids)
- cited_coreness = [get_coreness(cited_record, level-1) for cited_record in cited_records]
- return np.concatenate([[core_vector], np.sum(cited_coreness, 0)/float(num_refs)])
- def _core_to_one_hot(core):
- return np.array([1, 0]) if core else np.array([0, 1])
Add Comment
Please, Sign In to add comment