Zliczanie wystąpień wyrazów

Odpowiedz Nowy wątek
2018-12-05 19:51
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
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
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
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
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
Liczba odpowiedzi na stronę

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