Szukam informacji i teorii na temat podejścia do tematu leksykalnego.
Powiedzmy, że mam kolekcję ciągów, które mogą być tylko jednym zdaniem lub potencjalnie wieloma zdaniami. Chciałbym przeanalizować te ciągi znaków i wydrzeć najważniejsze słowa, być może z wynikiem, który wskazuje, jak prawdopodobne jest to słowo.
Spójrzmy na kilka przykładów tego, co mam na myśli.
Przykład 1:
„Naprawdę chcę Keuriga, ale nie stać mnie na to!”
To bardzo prosty przykład, tylko jedno zdanie. Jako człowiek z łatwością widzę, że „Keurig” jest tutaj najważniejszym słowem. Również „stać” jest względnie ważne, choć wyraźnie nie jest to główny punkt zdania. Słowo „ja” pojawia się dwa razy, ale w ogóle nie jest ważne, ponieważ tak naprawdę nie przekazuje nam żadnych informacji. Mogę się spodziewać, że zobaczę skrót słów / wyników podobny do tego:
"Keurig" => 0.9
"afford" => 0.4
"want" => 0.2
"really" => 0.1
etc...
Przykład 2:
„Właśnie miałem jedną z najlepszych praktyk pływackich w moim życiu. Mam nadzieję, że uda mi się dotrzymać kroku konkurencji. Gdybym tylko pamiętał o zabraniu mojego nieprzemakalnego zegarka”.
Ten przykład ma wiele zdań, więc w tekście będą ważniejsze słowa. Nie powtarzając ćwiczenia punktowego z przykładu 1, prawdopodobnie spodziewałbym się, że z tego wynikną dwa lub trzy naprawdę ważne słowa: „pływanie” (lub „trening pływania”), „zawody” i „zegarek” (lub „wodoodporny” zegarek ”lub„ zegarek nieprzemakalny ”w zależności od tego, jak obsługiwany jest łącznik).
Biorąc pod uwagę kilka takich przykładów, jak byś zrobił coś podobnego? Czy istnieją jakieś biblioteki lub algorytmy (open source) w programowaniu, które już to robią?