Executando verificação de segurança...
7

[PITCH] STOKIYOU: Algoritmo simples de identificação de frases tristes ou depressivas

Estou há algum tempo estudando data science e machine learning e decidi me aprofundar em PLN ( Processamento de linguagem natural ) usando a lib NLTK . Para melhorar a fixação do conteúdo resolvi construir um projeto simples de inicio que pretendo evoluir para algo maior .

STOKIYOU

STOKIYOU são as iniciais da frase em inglês Stop killing yourself que significa em tradução literal Pare de se matar. A idéia do projeto a princípio é identificar frases do user que podem indicar sintomas de depressão , ansiedade, tristeza e por aí vai e enviar um alerta para o próprio com uma mensagem de autoajuda dependendo do contexto da frase.

Meu objetivo final com ele é desenvolver uma extensão que interaja com plataformas de pesquisas como: Google e Firefox e/ou até mesmo com publicações de redes sociais como: Instagram e Twitter .

O CÓDIGO

O script para a interpretação de frases é bem simples e acredito que até mesmo rudimentar.

Primeiro criamos uma função que recebe phrase_en como parâmetro . phrase_en é uma frase que recebemos primeiramente em português e traduzimos para o inglês .

def interpret_context(self, phrase_en):

        phrase = self.translate_phrase(phrase_en)

Após isso, nós invocamos a função SentimentIntensityAnalyzer() e verificamos a polaridade da frase , ou seja, vemos se ela é positiva, negativa ou nula, este último quer dizer que a frase não apresenta nem algo bom ou ruim


        sid = SentimentIntensityAnalyzer()
        polarity = sid.polarity_scores(phrase)

A função só apresenta algum resultado, no caso True se ela for negativa, já que não precisamos enviar nenhum alerta de ajuda se ela for positiva ou nula .

Caso queríamos saber a diferença de um para o outro é só verificar se a frase é igual ou menor que -0.05 = negativa ou maior ou igual a 0.05 = positiva , o que tiver no meio dos dois representa um valor nulo .

A tokenização ao meu ver será necessário no futuro quando fizer algo mais aprofundado , então decidi manter mesmo que não represente nada .


        if polarity['compound'] <= -0.05:

            tokenize = sent_tokenize(phrase)
            token = word_tokenize(phrase)

            return True

Ajuda

Quem gostou do projeto e/ou quiser ajudar, é só abrir uma issue ou fazer uma solicitação de pull request. Desde já agradeço por ter lido até aqui.

1
1

não recomendo você expor seu número do whatsapp aqui, sabe alguém pode acabar te mandando um trava, existe diversos tipos de coisas que dá para fazer com o número de telefone de alguém

0
1

Cara muito interessante o projeto, não entendo quase nada sobre ML, mas piro no assunto. O que impede de trabalhar com a linguagem em português? E talvez o fato de aplicar tradução incida um problema de interpretação/contexto.

1

Muito obrigado ,até onde eu sei pela documentação do módulo não é possível usar frases em PT diretamente , eu tentei, mas a polaridade de frases em PT ficam em neutro apenas , ou seja , não me ajuda em nada no processo de identificação.

1
1

Já vi sim, mas não tem pra que usar ele ( por enquanto ). Também vi o próprio tradutor deles, mas como eu já trabalhei com a lib de tradução do google resolvi usar ele.