python, liczenie wyrazów z pliku

python, liczenie wyrazów z pliku
RU
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:4
0

Cześć,
Mam taki kod, jednak kiedy liczą się słowa, niektóre łączą się razem.
def słowa1(plik):
import collections
with open (plik,"r") as file:
data = file.read().replace('\n', '')
words = data.split()
word_counts = collections.Counter(words)
for word, count in sorted(word_counts.items()):
print('"%s" is repeated %d time%s.' % (word, count, "s" if count > 1 else ""))
x = input("podaj")
słowa1(x)
Dziękuję za pomoc :)

Tasmanian Devil
Hej! Twój post prawdopodobnie zawiera niesformatowany kod. Użyj znaczników ``` aby oznaczyć, co jest kodem, będzie łatwiej czytać. (jestem botem, ta akcja została wykonana automatycznie, prawdopodobieństwo 0.9992661)
MarekR22
Fotka tekstu z ekranu? Czy nie łatwiej zaznaczyć tekst skopiować i wkleić do przeglądarki?
TS
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:394
2

Są złączone, bo split rozdziela stringa tylko po białych znakach.

Potrzebujesz bardziej uniwersalnej metody rozdzielania:

Kopiuj
import re
splitter_re = re.compile('[\s\.,!?]')
words = splitter_re.split(data)

splitter_re to wyrażenie regularne, które wyłapuje wszystkie białe znaki (\s), kropki(\., bo to znak specjalny), przecinki, wykrzykniki i znaki zapytania.

RU
Bardzo dziękuję za pomoc :)

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.