Estou procurando informações e teorias sobre como abordar um tópico lexical.
Digamos que eu tenha uma coleção de strings, que podem ser apenas uma sentença ou potencialmente várias sentenças. Eu gostaria de analisar essas strings e extrair as palavras mais importantes, talvez com uma pontuação que indique a probabilidade da palavra ser importante.
Vejamos alguns exemplos do que quero dizer.
Exemplo 1:
"Eu realmente quero um Keurig, mas não posso pagar um!"
Este é um exemplo muito básico, apenas uma frase. Como humano, posso ver facilmente que "Keurig" é a palavra mais importante aqui. Além disso, "pagar" é relativamente importante, embora claramente não seja o ponto principal da frase. A palavra "eu" aparece duas vezes, mas não é importante, pois não nos informa nenhuma informação. Eu poderia esperar ver um hash de palavras / pontuações mais ou menos assim:
"Keurig" => 0.9
"afford" => 0.4
"want" => 0.2
"really" => 0.1
etc...
Exemplo 2:
"Acabei de ter uma das melhores práticas de natação da minha vida. Espero que eu possa manter meus tempos na competição. Se ao menos eu tivesse lembrado de pegar meu relógio não à prova d'água".
Este exemplo possui várias frases, portanto, haverá palavras mais importantes por toda parte. Sem repetir o exercício pontual do exemplo 1, eu provavelmente esperaria ver duas ou três palavras realmente importantes: "natação" (ou "prática de natação"), "competição" e "relógio" (ou "impermeável") assistir "ou" relógio não impermeável ", dependendo de como o hífen é tratado).
Dado alguns exemplos como este, como você faria algo semelhante? Existem bibliotecas ou algoritmos (de código aberto) existentes na programação que já fazem isso?