@ponuryrolnik: Musisz jeszcze wziąć pod uwagę wszystkie znaki specjalne. Plus skróty językowe - "np." zakończone kropką. W pythonie masz paczkę nltk do przetwarzania języka naturalnego, obczaj funkcję "word_tokenize". Powinna się przydac
@croppz: tak, teraz dzieli dobrze... muszę jeszcze pokombinować, żeby ciąg cyfr liczyło jako słowa... może filtrować to drugi raz z isadigit i dodać do listy
@asterix61: takie ćwiczenie robię, ale chcą też żeby adam's i adams13212i39### było słowami adam's i adams xD albo adam i jola jolanta_oraz_adam też dzieliło na słowa... dużo tego
@ponuryrolnik: ło jezu to widzę większa magia w tym zadaniu, nie zazdroszczę xd
No ja bym zrobił najpierw replace('_', ' ') a potem split(). A w kwestii słów to regex albo ręczne sprawdzanie znak po znaku każdego stringa i odpowiednie odfiltrowywanie ich :)
chcę podzielić string na słowa i wyciąć całą resztę
words = sentence.split(" ")filtered = filter(str.isalpha, ???
w sensie na litery umiem podzielić, ale nie na słowa
[''.join(filter(str.isalpha, word)) for word in words]W pythonie masz paczkę nltk do przetwarzania języka naturalnego, obczaj funkcję "word_tokenize". Powinna się przydac
wywala się
a jest isalnum
str.isalnumi tyle.jolanta_oraz_adamteż dzieliło na słowa... dużo tegoNo ja bym zrobił najpierw replace('_', ' ') a potem split().
A w kwestii słów to regex albo ręczne sprawdzanie znak po znaku każdego stringa i odpowiednie odfiltrowywanie ich :)
albo zobaczymy solucje, bo tu musi być jakiś trik zastosowany
@ponuryrolnik:
''.join([chr for chr in "abc'd_!" if chr not in "!@#$%^&*()_"])Możesz też użyć
str.translate.trans = str.maketrans('', '', '~!@#$%^&*()_')"abc'd_!".translate(trans)
findall czy coś, bo chyba to najbardziej eleganckie, można wszystko naraz znaleźć