2
$\begingroup$

Suppose I have a list of strings that captures a sub-field of academic research and would like to group them as higher-level fields. For example,

'Quantum Mechanics'  => 'Physics'
'Abstract Algebra'   => 'Mathematics'
....

My understanding is that standard NLP techniques may not fit here, because the relationship between sub-fields and fields are linked by its meanings but not word-frequency or word-embedding etc.

I wonder if there is anything done that could be useful to tackle this problem (papers or packages)?

$\endgroup$
2
  • $\begingroup$ Do you just have a list of strings, or do you have a corpus that has instances of those strings? $\endgroup$ Commented Jan 5, 2020 at 3:46
  • $\begingroup$ @Acccumulation I have a corpus that only contains fieldid and field string, for example “1, Quantum Mechanics” etc. $\endgroup$
    – F.X.
    Commented Jan 5, 2020 at 18:16

3 Answers 3

1
$\begingroup$

You mentioned:

My understanding is that standard NLP techniques may not fit here, because the relationship between sub-fields and fields are linked by its meanings but not word-frequency or word-embedding etc.

However, your understanding is not totally correct, because word embeddings do convey meaning in them and could be used in your case.

Here is an example, given a list of countries, you can figure out their capitals in the vector space. Even though they are linked by the geographical location.

enter image description here

You would for example be able to do the following: Rome - Italy + France and you would get Paris.

So, you could create your own word-embeddings where Physics - Quantum Mechanics + Abstract Algebra = Mathematics. The only things you would need is a seed relationship (e.g. Quantum Mechanics - Physics), then all the other relationships would be a simple displacement in the vector space, which you can figure out by subtracting and adding the words.

$\endgroup$
5
  • $\begingroup$ Thank you for your answer! But I remember word embedding represents its “meaning” with respect to its context, e.g. “the king is a man” and “the queen is a women”. So that king-man+woman=queen. But in my case only string of subfield is given, ex. quantum machanics. I’m sorry if I didn’t make this clear in the question but I wonder if embeddings will still work? $\endgroup$
    – F.X.
    Commented Jan 5, 2020 at 22:05
  • $\begingroup$ @Mark.X yes, during training and creation of the embeddings, the context is crucial. However, when using the embeddings, they do not need to be in a context. The meaning is embedded in the vector. So the distance from king-man will be similar to the distance of queen-woman. $\endgroup$ Commented Jan 6, 2020 at 8:45
  • $\begingroup$ Thank you! As I am only having subfield strings here, I assume you mean that I can use pre-trained embeddings and compare vectors but I cannot train these vectors by myself. I don’t even have field string “physics” etc in my dataset. $\endgroup$
    – F.X.
    Commented Jan 6, 2020 at 16:15
  • $\begingroup$ @Mark.X glad to help. If you feel like you answer was answer. You can accept one of the given answers. Btw, you say you don't have a dataset with the string "physics". If I were you, I would create a data set from research papers (you can download arxiv for example) and covert them to text. Then use that to train my own word embeddings. This way, the embeddings you get are coming from academic text which is likely to contain the words and the actual meaning that you are expecting. $\endgroup$ Commented Jan 6, 2020 at 17:47
  • $\begingroup$ here is how to get your hands on arxiv: arxiv.org/help/bulk_data $\endgroup$ Commented Jan 6, 2020 at 17:48
1
$\begingroup$

You need an ontology or any form of third-party data which describes the relationships between fields and sub-fields. You could use resources such as Wikipedia categories or standard library classifications for instance. There are probably other options for scientific fields.

$\endgroup$
1
$\begingroup$

I am not sure you need to build an algorithm to 'learn' that. Unless you want to do very advanced work on fields of science classification you can get existing trees.

Some that come to mind :

  • https://arxiv.org/ has fields classified on their home page. I even remember they did some network analysis to observe the relevence of their classification. Doing something similar could be a cool project.
  • As mentionned above, existing library classification should do the job too, things like : https://en.wikipedia.org/wiki/Dewey_Decimal_Classification
  • Some specific fields have specific classification for publication (one that come to mind is this one: https://www.aeaweb.org/econlit/jelCodes.php). You should be able to retrieve similar hierarchical representations for the mains fields.
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.