pitón, intente word2vec combinado con k-medias de agrupación para lograr palabras clave

  Para la agrupación de palabras clave, frases, al principio realmente no se encuentra la mente, y más tarde aprendido a utilizar word2vec puede dejar que la palabra clave para lograr cuantificado, para lograr los siguientes cuantificado, a continuación, utilizar K-means clustering no es en él todavía .

  1. combinada word2vec palabra clave para cuantificar

  conexión de referencia: https://blog.csdn.net/qq_28840013/article/details/89681499

  Este artículo es explicar cómo el uso word2vec inicial, explicarlo en detalle, no explican,

  Código try:

de gensim.models importación word2vec
 importación gensim 

# obtener una frase 
Sentencias = word2vec.Text8Corpus ( " kjcg.txt " )
 # impresión (Sentencias) 

# sg = 1 es saltar gramos algoritmo es sensible a las palabras de baja frecuencia, sg = 0 es el algoritmo predeterminado CBOW 
# tamaño es el número de capas de la red neural, y el valor de la memoria es algoritmo demasiado lento consumirá, típicamente entre 100 y 200 se toma como el valor. 
# La ventana es la distancia máxima entre la palabra actual en la frase con la palabra de destino, ver figura 3 representa 3-b palabras antes de la palabra de destino, palabras ver b (b azar entre 0-3) detrás 
# min_count palabra se realiza filtró, frecuencia es menor que la palabra min-recuento será ignorado, el valor predeterminado es 5. 
# Muestra negativa y los resultados de la formación pueden ser afinado, la palabra muestra representa una frecuencia de muestreo más alta umbral se fija al azar, el valor por defecto 3-1e,. 
# Negativa: si> 0, utilizará negativesamping, para el ajuste cómo las palabras muchos de ruido 
# hs = 1 representa que se utilizará el softmax nivel, el valor predeterminado se puede seleccionar mediante hs = 0 no es cero y negativa, las muestras negativas.
# Trabajadores es el número de hilos, este parámetro sólo es válido después de instalado CPython, se puede utilizar un solo núcleo 


Modelo = gensim.models.Word2Vec (Sentencias, sg = 0, tamaño = 30, 10 = ventana, min_count = 2, negativo . 3 =, = de 0,001 Muestra, HS = 1, Trabajadores = 4.. ) 

# de impresión (model.wv.vocab) 

# palabras = model.wv.vocab 
# size = model.wv.vectors 
# i = 0 
# para Word en palabras: 
# 
#      impresión (i) 
#      impresión (Word) 
#      impresión (tamaño [i]) 
#      i + 1 = 
# crear un modelo 
model.save ( " kjcg_test1.txt " )     # archivo de modelo .py se guarda en el mismo directorio de nivel, el modelo está abierto ilegible 
#model.wv.save_word2vec_format ( "kjcg_test2.txt", = binarios "Ture") # modelo de salvado de esta manera, se puede abrir el formato de texto, sino también a través de archivos binarios de si se debe guardar un archivo binario. Sin embargo, el modelo se descarta cuando se guarda el ahorro de un árbol (detalles participan word2vec proceso de construcción para formar una palabra de Huffman preservación árbol similar), por lo que el modelo no puede seguir una formación adicional 



# carga de .sava modelo guardado: 
= modelo gensim.models.Word2Vec.load ( " kjcg_test1.txt " ) 

# de modelo guardado ..wv.save_word2vec_format carga: 
# modelo = model.wv.load_word2vec_format ( 'kjcg_test1.txt') 

# modelo de formación adicional (no entender) 
# model.train (more_sentences) 



Imprimir (model.most_similar ( " Investigación " , TopN = 10))     # calcula la palabra palabra más similar, TopN especifica arriba n de palabras 

# calculan la similitud de dos palabras: 
imprimir (model.similarity (" Investigación " , " agricultura " )) 

# get vector de palabra (Con esto no quiere decir que usted puede agregar y operaciones de restar y otras palabras relacionadas, aunque yo no entiendo muy bien): 
Imprimir ( ' estudio: ' , Modelo [ ' investigación ' ])

 

   Hacer aquí, todas las palabras han sido vectorizado y se almacena en el modelo, el siguiente paso es el uso de la clasificación palabra vectorial.

2. clasifican usando k-medias

https://zhuanlan.zhihu.com/p/29500866

En este artículo se explica la segmentación, vectorización, el agrupamiento, y los efectos de mostrar (pero no se puede ejecutar)

La combinación de estos dos artículos, para lograr los siguientes códigos:

de gensim.models importación word2vec
 de sklearn.cluster importación KMeans
 importación gensim
 importación numpy 



# obtener una frase 
Sentencias = word2vec.Text8Corpus ( " kjcg.txt " )
 # impresión (Sentencias) 

# sg = 1 es saltar gramos algoritmo es sensible a las palabras de baja frecuencia el algoritmo por defecto CBOW sg = 0 a 
# capas de red de tamaño neural, el valor será demasiado lento consumo algoritmo y la memoria, típicamente entre 100 y 200 se toma como el valor. 
# La ventana es la distancia máxima entre la palabra actual en la frase con la palabra de destino, ver figura 3 representa 3-b palabras antes de la palabra de destino, palabras ver b (b azar entre 0-3) detrás 
# min_count palabra se realiza filtró, frecuencia es menor que la palabra min-recuento será ignorado, el valor predeterminado es 5. 
# Muestra negativa y los resultados de la formación pueden ser afinado, la palabra muestra representa una frecuencia de muestreo se establece umbral de azar más alto, el valor por defecto. 3-1e, 
#negativo: Si> 0, utilizará negativesamping, el número de palabras irrelevantes para el ajuste 
# . hs = softmax 1 representa se utilizará la jerarquía, el valor predeterminado se puede seleccionar mediante hs = 0 no es cero y negativo, de las muestras negativas. 
# trabajadores es el número de hilos, este parámetro sólo es válido después de CPython instalado, se puede utilizar un solo núcleo de 
modelo = gensim.models.Word2Vec (frases, sg = 0, tamaño = 100, ventana = 5, min_count = 2, trabajadores = 4 ) 

# crear un modelo 
model.save ( " kjcg_test1.txt " )     # modelo se guarda en el mismo archivo .py directorio, el modelo está abierto ilegible 

# de .sava modelo guardado carga: 
modelo = gensim.models .Word2Vec.load ( " kjcg_test1.txt " ) 


# conseguir dentro del modelo de toda la palabras clave 
del teclado = model.wv.vocab.keys ()
 # de impresión (Keys) 
# impresión (del tipo (Keys))
# Impresión (listado (Keys) [0]) 

# get vector de palabra por palabra 
wordvector = []
 para la Clave de teclas: 
    wordvector.append (Modelo [Key]) 
# impresión (wordvector) 

 # clasificación 
classCount = 10 # número de categorías 
CLF KMeans = (= n_clusters classCount) 
S = clf.fit (wordvector)
 # impresión (S) 
# obtener toda la categoría palabras vector 

etiquetas = clf.labels_
 impresión ( ' categoría: ' , etiquetas)
 # impresión (tipo (etiquetas)) 

# para ser colocado en una especie de un diccionario 
classCollects ={}
 Para i en el rango ((teclas) LEN): 

    # print ( 'len (teclas):', Len (claves)) #长度
    # impresión ( 'teclas classCollects的:', classCollects.keys) () 
    # de impresión ( 'etiquetas [i]', etiquetas [i]) 
    # impresión (teclas) 
    # print ( 'dict_keys:', la lista (claves) [0]) #将dict_keys转换为lista,输出第一个元素
    # impresión (tipo ( classCollects.keys ())) 
    # de impresión (tipo (classCollects)) 

    # de impresión (i) 
    # de impresión (classCollects.keys ()) 
    de impresión (lista (classCollects.keys ())) 

    si etiquetas [i] en la lista (classCollects. llaves ()):
         print ( ' -----------------' ) 
        . ClassCollects [etiquetas [i]] append (lista (teclas) [i]) 
    otra cosa : 
        classCollects = {0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9 : []} 

de impresión ( ' 0类: ' , classCollects [0])
 de impresión ( ' 1类: ' , classCollects [1 ] )
 de impresión ( ' 2类: ' , classCollects [2 ])
 de impresión ( ' 3类: ' , classCollects [3 ])
 de impresión ( ' 4类: ' , classCollects [4 ])
 de impresión( ' 5 categorías: ' , classCollects [5 ])
 Imprimir ( ' 6 categorías:. ' , classCollects [6. ])
 Imprimir ( ' 7 categorías:. ' , classCollects [7. ])
 de impresión ( ' 8 categorías:. ' [. 8, classCollects ] )
 Imprimir ( ' 9 categorías:. ' , classCollects) [9].

 

Supongo que te gusta

Origin www.cnblogs.com/birdmmxx/p/12532751.html
Recomendado
Clasificación