Je recherche des informations et des théories sur la façon d'aborder un sujet lexical.
Disons que j'ai une collection de chaînes, qui peut être juste une phrase ou potentiellement plusieurs phrases. Je voudrais analyser ces chaînes et déchirer les mots les plus importants, peut-être avec un score qui indique la probabilité que le mot soit important.
Regardons quelques exemples de ce que je veux dire.
Exemple 1:
"Je veux vraiment un Keurig, mais je ne peux pas me le permettre!"
Ceci est un exemple très basique, juste une phrase. En tant qu'humain, je peux facilement voir que "Keurig" est le mot le plus important ici. En outre, «se permettre» est relativement important, même si ce n'est clairement pas le point principal de la phrase. Le mot "je" apparaît deux fois, mais ce n'est pas important du tout car il ne nous donne pas vraiment d'informations. Je pourrais m'attendre à voir un hachage de mot / score quelque chose comme ceci:
"Keurig" => 0.9
"afford" => 0.4
"want" => 0.2
"really" => 0.1
etc...
Exemple # 2:
"Je viens d'avoir l'une des meilleures pratiques de natation de ma vie. J'espère que je pourrai maintenir mon temps après la compétition. Si seulement j'avais pensé à prendre ma montre non étanche."
Cet exemple a plusieurs phrases, il y aura donc des mots plus importants tout au long. Sans répéter l'exercice ponctuel de l'exemple n ° 1, je m'attendrais probablement à voir sortir deux ou trois mots vraiment importants: "natation" (ou "pratique de la natation"), "compétition", & "montre" (ou "étanche montre "ou" montre non étanche "selon la façon dont le trait d'union est traité).
Compte tenu de quelques exemples comme celui-ci, comment feriez-vous pour faire quelque chose de similaire? Existe-t-il déjà des bibliothèques ou des algorithmes (open source) en programmation qui le font déjà?