Sto cercando un input e una teoria su come affrontare un argomento lessicale.
Diciamo che ho una collezione di stringhe, che può essere solo una frase o potenzialmente più frasi. Mi piacerebbe analizzare queste stringhe e strappare le parole più importanti, magari con un punteggio che denota la probabilità che la parola sia importante.
Diamo un'occhiata ad alcuni esempi di cosa intendo.
Esempio 1:
"I really want a Keurig, but I can't afford one!"
Questo è un esempio molto semplice, solo una frase. Come umano, posso facilmente vedere che "Keurig" è la parola più importante qui. Inoltre, "permettersi" è relativamente importante, anche se chiaramente non è il punto principale della frase. La parola "I" appare due volte, ma non è affatto importante dal momento che non ci dice alcuna informazione. Potrei aspettarmi di vedere un hash di parole / punteggi come questo:
"Keurig" => 0.9
"afford" => 0.4
"want" => 0.2
"really" => 0.1
etc...
Esempio n. 2:
"Just had one of the best swimming practices of my life. Hopefully I can maintain my times come the competition. If only I had remembered to take of my non-waterproof watch."
Questo esempio ha più frasi, quindi ci saranno parole più importanti in tutto. Senza ripetere l'esercizio del punto dell'esempio n. 1, probabilmente mi aspetterei di vedere due o tre parole veramente importanti venire fuori da questo: "nuoto" (o "pratica di nuoto"), "competizione", & "guarda" (o "orologio impermeabile" o "orologio non impermeabile" a seconda di come viene gestito il trattino).
Dato un paio di esempi come questo, come faresti per fare qualcosa di simile? Esistono librerie o algoritmi esistenti (open source) in programmazione che già lo fanno?