Course Notes: Introduction to Natural Language Processing in Python
  • AI Chat
  • Code
  • Report
  • Beta
    Spinner

    Course Notes

    Use this workspace to take notes, store code snippets, or build your own interactive cheatsheet! For courses that use data, the datasets will be available in the datasets folder.

    Take Notes

    Add notes here about the concepts you've learned and code cells with code you want to keep.

    Gensim atribui um id a cada token pelo comando token2id. Depois, pelo comando doc2bow ele cria um corpous desses gensim ids.

    Named Entity Recognition (NER) - Serve para classificar os tokens em diferentes entidades. Pode ser um Date, para o caso de um numero que represente um ano. Pode ser um nome, para o caso de ser uma pessoa. pode ser um local, para o caso de ser um pais, cidade ou alguma localizaçao.

    O processo para definir o NER de cada token começa com a necessidade de tokenizaçao. Um documento é separado em tokens. A depender do documento é necessario primeiramente separa-lo em sentenças pelo sent_tokenize para apos utilizar o work_tokenize. O nlkt.pos_tag() identifica cada token e o classifica como verbo, substantivo, preposiçao etc. A sigla POS significa part of speech e é util para classificaçao linguistica dos tokens.

    Com a Part Of Speech (POS) reconhecida, aplica-se a funcao nltk.chun_sents, que reconhece as entidades com base nisso

    Usando Spacy

    A biblioteca spacy tambe faz reconhecimento de entidades, porem sem precisar de um processo de tokenizçao como é necessario ao utilizar a biblioteca nltk. Primeiro é necessário instanciar a biblioteca spacy que fara esse processo atribuindo uma biblioteca que contera as entidades daquele idioma e suas respecitvas classificaçoes. Depois, passo o meu documento nessa instancia para fazer esse reconhecimento. Instancio esse processo de reconhecimento para uma variavel. Para verificar qual é o label e qual é o texto desse label, a variavel variavel.ent possui atributos de label_ e text

    Usando Polyglot

    Polyglot é uma lib que ja possui detecçao automatica de entidades em mais de 130 idiomas. Essa lib guara o tipo de entidade em um atributo chamado .tag. Para chamar as entidades do documento eu preciso chamar um atributo .entities.

    For ent in txt.entities: print(ent.tag)

    Ou seja, para cada entidade dentro do doumento txt, para verificar qual é aquela propriedade eu uso o atributo .tag, ao inves do atributo .label_ do Spacy

    Naive Bayes Classifier

    Para executar um trinamento usando Naive Bayes, normalmente instancia-se uma variavel com a funcao MultinomialNB(). Após isso, treina-se o modelo utilizando a matriz de treinamento e a porçao de treinamento do conjunto de dados. A previsao é feita pela funcao predict, executada em cima do modelo da porçao de teste do modelo. O Score (acerto) é retirado da biblioteca metrics na funçao accuracy_score, utilizando a poçao de teste para verificar a validade do modelo e a previsao feita.