Zliczanie wystąpień wyrazów

Odpowiedz Nowy wątek
2018-12-05 19:51

Rejestracja: 3 lata temu

Ostatnio: 3 miesiące temu

0

Cześć, ma tabelę składającą się z trzech kolumn: w pierwszej w każdym z wierszy znajduje się tekst, dwie kolejne są puste (etykiety pos i neg). Do tego mam dwie listy składające się z listy danych słów. Chciałbym dla każdego z wierszy policzyć liczbę wystąpień słów z dwóch list i zapisać wyniki w dwóch kolumnach (pos i neg).
Domyślam się, że trzeba przejść przez każdy z wierszy za pomocą iteratora i używając funkcji if sprawdzić występowanie słowa na liście. Zastanawiam się tylko, czy tekst w wierszu należy poddać tokenizacji. I druga kwestia, nie bardzo wiem w jaki sposób zapisać wynik w dodatkowej kolumnie.
Będę wdzięczny za pomoc

Pozostało 580 znaków

2018-12-05 21:23

Rejestracja: 6 lat temu

Ostatnio: 1 godzina temu

0

Hmm, my tym bardziej nie wiemy w jaki sposób masz zapisać dane w drugiej kolumnie. Co to w ogóle za zadanie?

Pozostało 580 znaków

2018-12-05 21:25

Rejestracja: 8 lat temu

Ostatnio: 2 tygodnie temu

0

Co do zliczania o ile dobrze rozumiem to mozna to zrobic uzywajac metody split() na stringu z tekstem i wykozystac to np w funkcji filter z yzyciem funkcji lambda

Pozostało 580 znaków

2018-12-05 21:47

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

Lokalizacja: Częstochowa

0

Najszybsze liczenie wyrazów (zakładając że są już rozdzielne) w pythonie, zrobisz za pomocą słowników:

slownik = {}
for wyraz in twoje_wyrazy:
    slownik[wyraz] = slownik.get(wyraz, 0)+1

Ale z takiej opisówki niewiele wyniesiemy, wrzuć jakąś swoją próbę poskładania tego kodu, z czego bierzesz dane itd.
Oraz najważniejsze, jak wygląda ta tabela o której mowa. Nikt tu nie będzie czarował z fusów jak coś rozwiązać bez konkretnej informacji ;d


Linux Mint
Arduino / Python 3.5.2

Pozostało 580 znaków

2018-12-05 21:55

Rejestracja: 3 lata temu

Ostatnio: 3 miesiące temu

0
enedil napisał(a):

Hmm, my tym bardziej nie wiemy w jaki sposób masz zapisać dane w drugiej kolumnie. Co to w ogóle za zadanie?

Załóżmy, że w pierwszym wierszu mam następujące zdanie: "RPP rozczarowała inwestorów liczących na złagodzenie jej retoryki". Teraz chciałbym sprawdzić, czy któreś ze słów znajduje w zbiorze słów we wspomnianych listach. Jeśli np. słowa "rozczarowała" i "retoryki" znajdują się na pierwszej liście, to w kolumnie "pos" powinno pojawić się 2. Jeśli z kolei żadne ze słów nie znajduje się na drugiej liście, to w kolumnie "neg" powinno pojawić się 0.

Mam nadzieję, że trochę rozjaśniłem.

czy słowa w listach i te występujące w wierszach są identyczne, czy różnią się odmianą i tak dalej. Jak są identyczne to prawdopodobnie wystarczy coś w stylu len(list(word for word in words if word in line)) dla sprawdzenia, czy dane słowa są obecne, reszta to prosty if, jeśli się różnią potrzebujesz jakieś biblioteki do NLP najlepiej ( NLTK albo podobnej), bo samemu raczej kiepsko. - CorvusEtiam 2018-12-05 22:08

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0