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
- Rejestracja:prawie 8 lat
- Ostatnio:około 5 lat
- Postów:25

- Rejestracja:około 8 lat
- Ostatnio:ponad 4 lata
- Lokalizacja:Częstochowa
- Postów:221
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
- Rejestracja:prawie 8 lat
- Ostatnio:około 5 lat
- Postów:25
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.
- Rejestracja:5 miesięcy
- Ostatnio:5 miesięcy
- Postów:1
liczba znakow w lancuchu, liczba wyrazow w lancuchu i czy w lancuchu są cyfry)
def zbierz_informacje():
while True:
# Wprowadzenie tekstu przez użytkownika
wprowadzenie = input("Podaj tekst (wpisz 'koniec', aby zakończyć): ")
# Sprawdzenie, czy użytkownik chce zakończyć
if wprowadzenie.lower() == 'koniec':
break
# Obliczanie liczby znaków
licznik_znakow = len(wprowadzenie)
# Obliczanie liczby wyrazów
liczba_wyrazow = len(wprowadzenie.split())
# Sprawdzanie, czy w tekście są cyfry
czy_cyfry = any(ch.isdigit() for ch in wprowadzenie)
# Wyświetlenie wyników
print(f"Liczba znaków: {licznik_znakow}")
print(f"Liczba wyrazów: {liczba_wyrazow}")
print(f"Czy tekst zawiera cyfry? {'Tak' if czy_cyfry else 'Nie'}")
print() # Pusta linia dla lepszej czytelności
Uruchomienie programu
if name == "main":
zbierz_informacje()

- Rejestracja:ponad 8 lat
- Ostatnio:około 2 godziny
- Postów:4946
czy tekst w wierszu należy poddać tokenizacji
Jeśli się nad tym zastanawiasz to źle, musisz miec jakąś strategię jak przygotować oba teksty.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
len(list(word for word in words if word in line))
dla sprawdzenia, czy dane słowa są obecne, reszta to prostyif
, jeśli się różnią potrzebujesz jakieś biblioteki do NLP najlepiej ( NLTK albo podobnej), bo samemu raczej kiepsko.