Sobre o uso do modelo bigram (N-gram) para criar vetor de recurso para documento de texto

10

Uma abordagem tradicional da construção de recursos para mineração de texto é a abordagem por palavras, e pode ser aprimorada usando tf-idf para configurar o vetor de recursos que caracteriza um determinado documento de texto. No momento, estou tentando usar o modelo de linguagem bi-grama ou (N-grama) para criar vetor de recursos, mas não sei exatamente como fazer isso? Podemos apenas seguir a abordagem do saco de palavras, ou seja, calcular a contagem de frequências em termos de bi-grama em vez de palavras e aprimorá-la usando o esquema de ponderação tf-idf?

user3125
fonte

Respostas:

4

Sim. No entanto, isso gerará muito mais recursos: pode ser importante aplicar alguns recursos de corte (por exemplo, descartar recursos como gramas ou palavras que ocorrem menos de 5 vezes em seu conjunto de dados) para não afogar seu classificador com muitos ruídos. recursos.

ogrisel
fonte
Obrigado. Você quer dizer que minha idéia geral de calcular cada valor de recurso em termos de bigram (N-grama) está correta? Em outras palavras, não há grande diferença na computação dos valores dos recursos entre o pacote de palavras e o modelo N-grama. Obrigado pelo esclarecimento.
user3125
Sim, você pode usar todos os bigrams + unigramas (palavras) em uma grande variedade de recursos (desde que apare o menos frequente com algum nível de corte).
ogrisel
3

O número de bigrams pode ser reduzido selecionando apenas aqueles com informações mútuas positivas.

Fizemos isso para gerar um pacote de representação de bigramas na faixa INEX XML Mining, http://www.inex.otago.ac.nz/tracks/wiki-mine/wiki-mine.asp .

O que não tentamos é usar as informações mútuas entre os termos na ponderação dos bi-gramas. Consulte https://en.wikipedia.org/wiki/Pointwise_mutual_information , https://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/philip-pmi.pdf e http: //www.nltk. org / howto / collocations.html para uma melhor explicação de informações mútuas pontuais para bigrams.

Consulte /programming/20018730/computing-pointwise-mutual-information-of-a-text-document-using-python e /programming/22118350/python-sentiment-analysis -utilizando informações mútuas ponto-a-ponto para outras questões relacionadas a isso.

Chris de Vries
fonte
Link morto :-( ...
Renaud
11
Os links do @Renaud foram atualizados :-)
Chris de Vries
0

O uso de projeções aleatórias para reduzir a dimensionalidade dos dados pode ser útil para reduzir o espaço necessário para armazenar os recursos, https://en.wikipedia.org/wiki/Random_projection . Ele é dimensionado muito bem e todos os exemplos podem ser projetados em um espaço dimensional inferior, independentemente e sem métodos de otimização direta, como PCA, SVD, Sammon Maps, NMF, etc.

Chris de Vries
fonte