def obter_temas_importantes(self):

        lista_h2_todos = set()
        for site in self.obter_sites_indexados():
            for h2 in site.obter_subtitulos_h2():
                lista_h2_todos.add(h2.lower().strip())

        lista_h2_usar = set()
        doc_chave = nlp(self.palavra_chave)

        #         for h2 in lista_h2_todos:
        #             for h2_tp in lista_h2_todos:
        #                 doc1 = nlp(h2)
        #                 doc2 = nlp(h2_tp)
        #                 similiaridade = doc1.similarity(doc2)
        #                 if similiaridade < 0.8:
        #                     similiaridade = doc_chave.similarity(doc1)
        #                     print(similiaridade)
        #                     if similiaridade >= 0.6:
        #                         lista_h2_usar.add(h2)
        lista_retorno = []
        for h2 in lista_h2_todos:
            doc1 = nlp(h2)
            similiaridade = doc_chave.similarity(doc1)

            if similiaridade > 0.48 and len(h2.split()) >= 3:
                lista_retorno.append([h2, similiaridade])

        return lista_retorno
    def obter_setencas_similares(self,
                                 valor_similaridade=0.4,
                                 palavra_chave_local=None,
                                 verifica_chave=True):

        if (palavra_chave_local != None):
            palavra_chave = palavra_chave_local
            doc_chave = nlp(palavra_chave_local)
        else:
            palavra_chave = self.palavra_chave
            doc_chave = nlp(self.palavra_chave)
        lista = []
        for sentenca in self.obter_sentencas_dos_textos():
            doc_sentenca = nlp(sentenca)
            similaridade = doc_chave.similarity(doc_sentenca)

            if similaridade > valor_similaridade:

                if verifica_chave:
                    if palavra_chave in sentenca:
                        lista.append([sentenca, similaridade])
                else:
                    lista.append([sentenca, similaridade])

        return lista
    def obter_titulo_h1(self):

        lista = []
        doc_chave = nlp(self.palavra_chave)

        similaridade = 0
        artigo = self.sopa.find("body")
        h1 = "- - - - - - - "
        if artigo != None:
            h1 = artigo.find("h1")
            doc_titulo = nlp(h1.text.strip())
            similaridade = doc_chave.similarity(doc_titulo)

        return str([h1.text.strip(), round(similaridade, 2)])
예제 #4
0
def lemmatization(texts, allowed_postags):
    """https://spacy.io/api/annotation"""
    texts_out = []
    for sent in texts:
        doc = nlp(" ".join(sent))
        texts_out.append(
            [token.lemma_ for token in doc if token.pos_ in allowed_postags])
    return np.array(texts_out)
예제 #5
0
def lemmatization(texts, allowed_postags=['NOUN', 'ADJ', 'VERB', 'ADV']):
    """https://spacy.io/api/annotation"""
    texts_out = []
    for sent in texts:
        doc = nlp(" ".join(sent))
        texts_out.append(
            [token.lemma_ for token in doc if token.pos_ in allowed_postags])
    return texts_out
예제 #6
0
def lemmatization(texts, allowed_postags):
    """https://spacy.io/api/annotation"""
    texts_out = {}
    for k, sent in texts.items():
        doc = nlp(" ".join(sent))
        # texts_out.append([token.lemma_ for token in doc if token.pos_ in allowed_postags])
        texts_out[k] = [
            token.lemma_ for token in doc if token.pos_ in allowed_postags
        ]
    return texts_out
    def obter_frequencia_com_maior_similaridade(self,
                                                total=50,
                                                valor_similaridade=0.4):

        lista_dados = []

        doc_chave = nlp(self.palavra_chave)

        for palavra, frequencia in self.obter_frequencia_palavras_stopwords(
                total):
            doc_palavra = nlp(palavra)
            if palavra not in self.palavra_chave:
                similaridade = doc_chave.similarity(doc_palavra)

                if similaridade > valor_similaridade:
                    lista_dados.append(
                        [palavra, frequencia,
                         float(round(similaridade, 2))])

        return lista_dados
 def obter_similaridade_geral_do_texto(self):
     doc_chave = nlp(self.palavra_chave)
     doc_texto = nlp(self.obter_artigo_texto())
     similaridade = doc_chave.similarity(doc_texto)
     return float(round(similaridade, 2))