<jupyter_start><jupyter_text>Vetorização de texto<jupyter_code>artigo_treino.title.loc[12]
import string
import nltk
nltk.download('punkt')

def tokenizador(texto):
    texto = texto.lower()
    lista_alfanumerico = []

    for token_valido in nltk.word_tokenize(texto):
        if token_valido in string.punctuation: continue
        lista_alfanumerico.append(token_valido)

    return lista_alfanumerico

tokenizador("Texto Exemplo, 1234.")
import numpy as np
def combinacao_de_vetores_por_soma(palavras_numeros):
    vetor_resultante = np.zeros(300)
    for pn in palavras_numeros:
        try:
            vetor_resultante += modelo.get_vector(pn)

        except KeyError:
            if pn.isnumeric():
                pn = "0"*len(pn)
                vetor_resultante += modelo.get_vector(pn)
                
            else:
                vetor_resultante += modelo.get_vector("unknown")
                

    return vetor_resultante
palavras_numeros = tokenizador("texto exemplo caelumx")
vetor_texto = combinacao_de_vetores_por_soma(palavras_numeros)
print(len(vetor_texto))
print(vetor_texto)
def matriz_vetores(textos):
    x = len(textos)
    y = 300
    matriz = np.zeros((x,y))

    for i in range(x):
        palavras_numeros = tokenizador(textos.iloc[i])
        matriz[i] = combinacao_de_vetores_por_soma(palavras_numeros)

    return matriz

matriz_vetores_treino = matriz_vetores(artigo_treino.title)
matriz_vetores_teste = matriz_vetores(artigo_teste.title)
print(matriz_vetores_treino.shape)
print(matriz_vetores_teste.shape) 
from sklearn.linear_model import LogisticRegression

LR = LogisticRegression(max_iter = 200)
LR.fit(matriz_vetores_treino, artigo_treino.category)
LR.score(matriz_vetores_teste, artigo_teste.category)
artigo_teste.category.unique()
from sklearn.metrics import classification_report

label_prevista = LR.predict(matriz_vetores_teste)
CR = classification_report(artigo_teste.category, label_prevista)
print(CR)
from sklearn.dummy import DummyClassifier

DC = DummyClassifier()
DC.fit(matriz_vetores_treino, artigo_treino.category)
label_prevista_dc = DC.predict(matriz_vetores_teste)

CR_dummy = classification_report(artigo_teste.category, label_prevista_dc)
print(CR_dummy)
!unzip "/content/drive/My Drive/curso_word2vec/skip_s300.zip"
modelo_skipgram = KeyedVectors.load_word2vec_format("skip_s300.txt")

def combinacao_de_vetores_por_soma_skipgram(palavras_numeros):
    vetor_resultante = np.zeros(300)
    for pn in palavras_numeros:
        try:
            vetor_resultante += modelo_skipgram.get_vector(pn)

        except KeyError:
            if pn.isnumeric():
                pn = "0"*len(pn)
                vetor_resultante += modelo_skipgram.get_vector(pn)
                
            else:
                vetor_resultante += modelo_skipgram.get_vector("unknown")
                

    return vetor_resultante


def matriz_vetores_skipgram(textos):
    x = len(textos)
    y = 300
    matriz = np.zeros((x,y))

    for i in range(x):
        palavras_numeros = tokenizador(textos.iloc[i])
        matriz[i] = combinacao_de_vetores_por_soma_skipgram(palavras_numeros)

    return matriz

matriz_vetores_treino_skipgram = matriz_vetores_skipgram(artigo_treino.title)
matriz_vetores_teste_skipgram = matriz_vetores_skipgram(artigo_teste.title)

#Previsão
LR_skipgram = LogisticRegression(max_iter = 1000)
LR_skipgram.fit(matriz_vetores_treino_skipgram, artigo_treino.category)
label_previsao_skipgram = LR_skipgram.predict(matriz_vetores_teste_skipgram)
CR_skipgram = classification_report(artigo_teste.category, label_previsao_skipgram)
print(CR_skipgram)
print(CR)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08246859639541235, 'fraction_numerical': 0.009557618787547788, 'mean_word_length': 4.2105263157894735, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '648939', 'license': 'MIT', 'n_tokens_mistral': 1379, 'n_tokens_neox': 1327, 'n_words': 188, 'path': 'Word2Vec (Treinamento de Word Embedding)/Word2Vec (Treinamento de Word Embedding).ipynb', 'repo_name': 'DataScientist-GustavoAguiar/Data_Science_Toolkit_part2', 'size': '3662'}