El uso de word2vec para construir características en el campo de la PNL atípica

Recientemente, la incorporación de datos de series de tiempo ha sido muy popular en varias competiciones, y el efecto ha sido muy bueno, como compartir el rango 1 en la construcción de Smart Haihai de Digital China 2020, como la Competición de publicidad Tencent 2020.

Para anotar, PNL Xiaobai tuvo que pasar algún tiempo masticando tfidf, word2vec y doc2vec.

El siguiente es el código que usa gensim para implementar word2vec para construir características (ahora, muestre el código):

# -*- coding: utf-8 -*-
"""
Created on Thu Jun  4 16:23:02 2020

@author: csdn lanxuml
"""
from gensim.test.utils import common_texts
from gensim.models import Word2Vec

import numpy as np
import pandas as pd

#构建n_dims维的特征
n_dims = 64
#模型训练
model = Word2Vec(common_texts, size=n_dims, window=5, min_count=1, workers=4)
#构建n_dims维0行的numpy array
vector_corpus_np = np.zeros((0, n_dims))
#将common_texts中每行记录的模型分数求列均值作为改行的特征向量
vector_corpus_np = np.insert(vector_corpus_np, 0, values=[ np.mean(model[common_texts[i]], axis=0)for i in range(0,len(common_texts))], axis=0)
#将numpy array转为pandas dataframe
vector_corpus_df = pd.DataFrame(vector_corpus_np)
#为了避免在建模时特征名为整数而报错,修改特征名
vector_corpus_df.columns = ['dim_'+str(i) for i in range(0,len(vector_corpus_df.columns.values.tolist()))]

Nota (un poco complicado, si no lo entiende, puede copiar el código directamente y ejecutarlo en su cuaderno o IDE):

    1. Si el valor de min_count es mayor que 1 para n, las palabras que aparecen menos que n en common_texts deben eliminarse antes del entrenamiento del modelo;

    2. Dado que las características no numéricas que generalmente se dan en el campo NLP atípico son datos de tipo, jieba no se usa para la segmentación de palabras en este artículo;

    3. En la operación real, es necesario construir common_texts de acuerdo con las características conocidas. Por ejemplo, el conjunto de ID de publicidad en el que el usuario i ha hecho clic en 90 días (se puede empalmar en una lista) se usa como una oración de texto common_texts [i] (modelo [common_texts [i ]] Encuentre la estructura media de la columna como el vector de características n_dims-dimensional del usuario).

Arriba, después de construir las características, puede ingresar varios modelos para construir (ajustar) modelos (parámetros).

Supongo que te gusta

Origin blog.csdn.net/lanxuxml/article/details/106573356
Recomendado
Clasificación