Guest User

Untitled

a guest
May 28th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. from __future__ import absolute_import, print_function, division
  2.  
  3. import numpy as np
  4.  
  5. from inspire_dojson.utils import get_recid_from_ref
  6. from inspire_utils.record import get_value
  7. from inspirehep.utils.record_getter import get_db_records
  8.  
  9. def get_coreness_and_references(record):
  10. core_vector = _core_to_one_hot(record.get('core'))
  11. num_refs = len(record.get('references', []))
  12. cited_recids = [get_recid_from_ref(rec) for rec in get_value(record, 'references.record', [])]
  13.  
  14. return core_vector, num_refs, cited_recids
  15.  
  16.  
  17. def get_coreness(record, level=1):
  18. core_vector, num_refs, cited_recids = get_coreness_and_references(record)
  19. if level == 0:
  20. return [core_vector]
  21. else:
  22. if not cited_recids:
  23. return np.concatenate([[core_vector], np.repeat([[0, 0]], level, 0)])
  24. cited_records = get_db_records('lit', cited_recids)
  25. cited_coreness = [get_coreness(cited_record, level-1) for cited_record in cited_records]
  26. return np.concatenate([[core_vector], np.sum(cited_coreness, 0)/float(num_refs)])
  27.  
  28.  
  29. def _core_to_one_hot(core):
  30. return np.array([1, 0]) if core else np.array([0, 1])
Add Comment
Please, Sign In to add comment