Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tekst zawierający emotikony powoduje błąd #2

Open
pka69 opened this issue Nov 22, 2021 · 3 comments
Open

tekst zawierający emotikony powoduje błąd #2

pka69 opened this issue Nov 22, 2021 · 3 comments

Comments

@pka69
Copy link

pka69 commented Nov 22, 2021

Emotikony niosą ze sobą duży ładunek sentymentu.
Analizowałem większą ilość postów z Instagrama.
Idealnie byłoby, gdyby były brane pod uwagę, albo przynajmniej ignorowane zamiast wyrzucać błąd.
Pozdrawiam

@philvec
Copy link
Owner

philvec commented Nov 23, 2021

@pka69 czy możesz podać przykład tekstu, który powoduje błąd?
na przykład taki tekst wykonuje się normalnie:

emoji_text = 'tak dużo emotikonów, ( ◑‿◑)ɔ┏ 🍟 -- 🍔 ┑٩ (^◡^ ) ooo, jak wspaniale' 
print(model(emoji_text).item())
0.09174229949712753

Process finished with exit code 0

@pka69
Copy link
Author

pka69 commented Nov 24, 2021

to jest fragmento kodu:
sentiment_model = SentimentPLModel(from_pretrained='latest') print(posts_dt.post_content[2]) sentiment_model(posts_dt.post_content[2])

to jest analizowany post:

4⭐/6⭐

Olga i Ola. Dwie kobiety, które łączy to, że w przeszłości zostały porzucone przez swoich facetów bez słowa wyjaśnienia. Nie potrafiły zrozumieć, co tak naprawdę się stało, ani tym bardziej dlaczego tak się stało, że związki, w których pokładały tak wielkie nadzieje, po prostu się rozpadły. W końcu o pierwszej miłości się nie zapomina ;) Pytania i wątpliwości trawiły je przez wiele lat, co nie wpłynęło zbyt dobrze na ich psychikę, ani późniejsze relacje z mężczyznami. Ciężko było im zbudować trwały związek, w obawie, że któregoś dnia historia się powtórzy. Po kilku latach każda z nich jakoś starała się ułożyć to swoje życie. I kiedy już wydawało się, że jako tako stąpają twardo po ziemi, ich byli ukochani ponownie stają im na drodze. Jak wiele zmieni to w ich poukladanym życiu? Dowiecie się tego już z książki ;)

Warstwa psychologiczna była tu naprawdę dobrze rozpisana, czytało mi się to z dużym zaciekawieniem i w większej części z przyjemnością. Bliższa stała mi się Ola. Zaskoczyć może to, że czytając tę książkę, czytamy... tak jakby dwie książki!😅 Dlaczego? Bo Olga pisze tu swoją własną książkę, w której główną bohaterką jest wspomniana wcześniej Ola. I tak oto historie obu pań przeplatają się ze sobą. Powieść w powieści - ciekawy zabieg, prawda?🤔 Przyznam, że nie spotkałam się wcześniej z taką formą, ale sprawdziła się świetnie.

Czy sama książka jakoś szczególnie mnie zaskoczyła? Raczej nie ;) Powieść obyczajowa jakich wiele. Jeśli lubicie słodko-gorzkie historie miłosne, stare tajemnice i ten lekki dreszcz niepokoju o dalsze losy bohaterów, to pewnie wam się spodoba. Jeśli szukacie czegoś całkiem nowego, może być różnie. Warto samemu się przekonać. Jak na debiut, jest naprawdę w porządku. Trzymam kciuki za dalszy rozwój😊
.
.
#bookstagrampl #katarzynakalista #ostatnirozdział #obyczajówka #powieśćobyczajowa #wydawnictwoczarnaowca #ksiazkanadzis #książkoholikpoluje #książka #igczyta #igbooks #teamkawa #kawaastra #astra_coffee_and_tea #goodvibes #jesienneczytanie #jesienneklimaty #czytamjesienią #czytajpl #czytanie #czytamwszędzie #welovebooks #acornerofmyhome #słoneczniki #booksandflowers #sunflowers #zawszeczytam #onmyshelf #bookie #recenzjaksiazki

a to błąd, który wyskakuje:


IndexError Traceback (most recent call last)
/tmp/ipykernel_2699/1057426095.py in
27 sentiment_model = SentimentPLModel(from_pretrained='latest')
28 print(posts_dt.post_content[2])
---> 29 sentiment_model(posts_dt.post_content[2])
30
~/Dokumenty/Python/Courses/SDA/Zadania/ML - nlp/env/lib/python3.8/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
1100 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
1101 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1102 return forward_call(*input, **kwargs)
1103 # Do not call functions when jit is used
1104 full_backward_hooks, non_full_backward_hooks = [], []

~/Dokumenty/Python/Courses/SDA/Zadania/ML - nlp/env/lib/python3.8/site-packages/sentimentpl/models.py in forward(self, x, tune_embedding)
46 if not tune_embedding:
47 stack.enter_context(torch.no_grad())
---> 48 embeddings = self.embed_model(**encoded)['pooler_output'].float()
49
50 return self.fc(embeddings)

~/Dokumenty/Python/Courses/SDA/Zadania/ML - nlp/env/lib/python3.8/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
1118 input = bw_hook.setup_input_hook(input)
1119
-> 1120 result = forward_call(input, **kwargs)
1121 if _global_forward_hooks or self._forward_hooks:
1122 for hook in (
_global_forward_hooks.values(), *self._forward_hooks.values()):

~/Dokumenty/Python/Courses/SDA/Zadania/ML - nlp/env/lib/python3.8/site-packages/transformers/models/roberta/modeling_roberta.py in forward(self, input_ids, attention_mask, token_type_ids, position_ids, head_mask, inputs_embeds, encoder_hidden_states, encoder_attention_mask, past_key_values, use_cache, output_attentions, output_hidden_states, return_dict)
841 head_mask = self.get_head_mask(head_mask, self.config.num_hidden_layers)
842
--> 843 embedding_output = self.embeddings(
844 input_ids=input_ids,
845 position_ids=position_ids,

~/Dokumenty/Python/Courses/SDA/Zadania/ML - nlp/env/lib/python3.8/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
1100 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
1101 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1102 return forward_call(*input, **kwargs)
1103 # Do not call functions when jit is used
1104 full_backward_hooks, non_full_backward_hooks = [], []

~/Dokumenty/Python/Courses/SDA/Zadania/ML - nlp/env/lib/python3.8/site-packages/transformers/models/roberta/modeling_roberta.py in forward(self, input_ids, token_type_ids, position_ids, inputs_embeds, past_key_values_length)
134 embeddings = inputs_embeds + token_type_embeddings
135 if self.position_embedding_type == "absolute":
--> 136 position_embeddings = self.position_embeddings(position_ids)
137 embeddings += position_embeddings
138 embeddings = self.LayerNorm(embeddings)

~/Dokumenty/Python/Courses/SDA/Zadania/ML - nlp/env/lib/python3.8/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
1100 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
1101 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1102 return forward_call(*input, **kwargs)
1103 # Do not call functions when jit is used
1104 full_backward_hooks, non_full_backward_hooks = [], []

~/Dokumenty/Python/Courses/SDA/Zadania/ML - nlp/env/lib/python3.8/site-packages/torch/nn/modules/sparse.py in forward(self, input)
156
157 def forward(self, input: Tensor) -> Tensor:
--> 158 return F.embedding(
159 input, self.weight, self.padding_idx, self.max_norm,
160 self.norm_type, self.scale_grad_by_freq, self.sparse)

~/Dokumenty/Python/Courses/SDA/Zadania/ML - nlp/env/lib/python3.8/site-packages/torch/nn/functional.py in embedding(input, weight, padding_idx, max_norm, norm_type, scale_grad_by_freq, sparse)
2042 # remove once script supports set_grad_enabled
2043 no_grad_embedding_renorm(weight, input, max_norm, norm_type)
-> 2044 return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
2045
2046

IndexError: index out of range in self

@JaremaPiekutowski
Copy link

Uszczegółowiając: problemem nie są emotikony, a hasztagi - po usunięciu znaku "#" z tekstu komenda działa.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants