Red de conocimiento informático - Material del sitio web - Cálculo de similitud de texto basado en Gensim

Cálculo de similitud de texto basado en Gensim

Gensim es una biblioteca de procesamiento de lenguaje natural para Python. Algoritmos utilizados como TF-IDF ($Frecuencia TERM - frecuencia de documento inversa), Asignación latente de Dirichlet (LDA), ? Análisis semántico latente (LSA) o proyección aleatoria, etc. Encuentra la estructura semántica del documento examinando los * * * patrones estadísticos de palabras en el mismo documento en el corpus de entrenamiento y finalmente lo convierte en un patrón vectorial para su posterior procesamiento. Además, Gensim también implementa la función word2vec, que puede convertir palabras en vectores de palabras.

? Un corpus es un conjunto de textos sin procesar que se utilizan para el entrenamiento no supervisado de estructuras ocultas de temas de texto. No es necesario etiquetar manualmente información adicional en el corpus. En Gensim, un corpus suele ser un objeto iterable (como una lista). Cada iteración devuelve un vector disperso que puede usarse para expresar objetos de texto.

Un vector es una lista de características de texto. Es la representación interna de un texto en Gensim.

Un diccionario es una colección de todas las palabras de todos los documentos, registrando el número de veces que aparece cada palabra y otra información. ?

Modelo es un término abstracto. Se define una transformación de dos espacios vectoriales (es decir, de una representación vectorial de texto a otra).

Utilice un experimento para comprender:

# -*-Codificación: UTF-8 -*-?

Importar corpus, similitud, modelo de gensim

Importar Jieba

classGensimExp(object):

def__init__(self, documentos, test_document , Tipo, feature_num, best_num):

self.raw_documents = Documentos

documentos de autoprueba = documentos de prueba

Self. SimCalType =Tipo

self.num_features = feature_num

self.num_best =Mejor número

defCalSim(self):

corpora_documents = [ ]

#Segmentación de palabras

para item _ textin self . raw _documents:

item _ seg = list(jieba . cut(item _ text))

corpora_documents.append

#Generar diccionario y corpus

Diccionario = corpus. Diccionario (corpus_document)

#Calcular la flecha correspondiente a cada noticia.

corpus =[diccionario . doc 2 arco(texto)para incorporación de texto _ documentos]#iterador

if self. tipo simcal = = ' Similitud-tfi df-index ':

#¿El valor IDF de cada característica en el corpus estadístico?

tfidf_model = modelo. TfidfModel(corpus)

Corpus_tfi df = tfi df_model[corpus]

Self. _similitud = similitud. similitud (yo.

SimCalType, corpus_tfidf,\

num_features=self.num_features, num_best=self.num_best)

test _ cut _ raw = list(jieba . cut(self . test _ document))

test _ corpus = diccionario . doc 2 bow(test _ cut _ raw)

#Genere el valor IF-IDF según el modelo entrenado y luego calcule la similitud.

Yo mismo. _ prueba _ corpus = tfi df _ model[prueba _ corpus]

elifself. SimCalType == ' Índice-LSI de similitud ':

lsi_model = modelo. LsiModel(corpus)

Corpus_LSI = LSI_model[corpus]

Self. _similitud = similitud. similitud(self. SimCalType, corpus_lsi, \

num_features=self.num_features, num_best=self.num_best)

test_cut_raw = list(jieba . cut(self . test _ document))

test_corpus=diccionario .doc 2 arco(test_cut_raw)

self. _ prueba _ corpus = LSI _ modelo[prueba _ corpus]

self. Printout()

defPrint_Out(self):

string = 'El material más similar es'

fortplinrange(len(self._similarity[self ._test_corpus] )):

iftpl! = len(self._similarity[self._test_corpus]) -1:

cadena = cadena + str(self._similarity[self._test_corpus][tpl][0]) \

+'('+ str(self._similarity[self._test_corpus][tpl][1]) +'),'

De lo contrario:

cadena = cadena + str( self._similarity[self._test_corpus][tpl][0]) \

+'('+ str(self._similarity[self._test_corpus] [tpl][1]) +')'

Imprimir (cadena)

if__name__=='__main__ ':

raw_documents = [

0 1 19, CITIC Group y Tencent firmados un acuerdo marco estratégico en Shenzhen, anunciando que promoverán la cooperación empresarial en la nube, big data, blockchain, inteligencia artificial y otros campos técnicos, y explorarán activamente el camino hacia la transformación digital y la mejora de la industria real. ,

1 Shanghai Pudong Development Bank anunció que la Comisión Reguladora Bancaria de China impuso una multa de 462 millones de yuanes a la sucursal de Chengdu de la compañía por operaciones crediticias ilegales y otras violaciones. El monto total de la multa se incluyó en la declaración de la compañía de 2017. pérdidas y ganancias, lo que tiene un impacto negativo en el desarrollo empresarial y las operaciones sostenibles de la empresa. No hay efectos adversos significativos.

,

2 El Banco de Desarrollo de Shanghai Pudong fue multado con 462 millones de yuanes en respuesta a la violación de las regulaciones por parte de la sucursal de Chengdu del Banco de Desarrollo de Shanghai Pudong: Se supo por la oficina central del Banco de Desarrollo de Shanghai Pudong que el Banco de Desarrollo de Shanghai Pudong está profundamente avergonzado por el caso de la emisión ilegal de préstamos de la sucursal de Chengdu, apoyamos y aceptamos firmemente la investigación de las autoridades reguladoras y utilizaremos esto como un estímulo para fortalecer su propia gestión, adherirse a una gobernanza estricta y siempre considerar las operaciones legales y conformes como la base para el éxito; desarrollo empresarial futuro. (Cai Yi)',

3. Su Cha anunció: 65,438+0,332,000 acciones emitidas antes de la oferta pública inicial de la compañía se levantarán el 24 de junio, lo que representa el 65% del capital social total de la compañía, 438+. 0%; las acciones en circulación reales el día del levantamiento de la prohibición eran 65.438+0.226.5438+0,5 millones de acciones, lo que representa el 9,73% del capital social total. Los accionistas que solicitaron levantar la restricción a la venta de acciones esta vez son Suzhou Testing Instrument General Factory y cuatro accionistas personas físicas, incluidos Zhong Qionghua, Wu y Chen Ying. ",

Se informa que una subsidiaria de Boston Scientific y Sinopharm Holdings participó en la oferta por la subsidiaria de XIO, Lumenis. ,

5 Suning Shangyun respondió a la carta de consulta de la Bolsa de Valores de Shenzhen: 2065438+En julio de 2007, el Instituto de Investigación Financiera Suning estableció oficialmente un laboratorio blockchain para llevar a cabo investigaciones sobre la tecnología blockchain y su aplicación en la industria financiera, con el objetivo de utilizar la tecnología blockchain para mejorar los negocios de Suning Jinfu y Suning Bank. El sistema de transmisión de información de cartas de crédito nacional blockchain del banco adopta un modelo de cadena de consorcio y solo se usa de forma gratuita entre los bancos del consorcio y no brinda servicios directos al mundo exterior.

Ma Long declaró que el anuncio de saneamiento ambiental. La oferta pública inicial de acciones restringidas de la compañía por valor de 654,38+60 mil millones de RMB se pondrá en circulación el 26 de junio de 2020, en la que participarán 654,38+07 accionistas, incluidos los directores, supervisores y altos ejecutivos actuales, Zhang Guifeng.

Aerospace Engineering anunció el día 7 que la oferta pública inicial de la compañía de 324 millones de acciones restringidas se cotizará y circulará el 29 de junio. Los accionistas involucrados incluyen la Academia China de Tecnología de Vehículos de Lanzamiento, Aerospace Investment Holdings Co., Ltd. y Beijing Aerospace Power. Research Institute. , Beijing Aerospace Industry Investment Fund (Sociedad Limitada) y el Consejo Nacional para la Transferencia de Fondos de Seguridad Social,

Daqian Ecology anunció que el consorcio formado por la empresa y Jiangsu Daqian Design Institute Co., Ltd. ha ganado la licitación para el distrito de Gaochun. Se espera que el proyecto de contratación general de Dongba Town invierta aproximadamente 65.438 millones de yuanes. La implementación fluida del proyecto tendrá un impacto positivo en el desempeño operativo de la compañía este año. >9 19 de febrero de 1954, el nivel más alto de la Unión Soviética El Presidium soviético aprobó una resolución con motivo del "300 aniversario de la Alianza Fraternal entre Ucrania y Rusia", y el Óblast de Crimea de la Federación Rusa fue transferido a. Ucrania se unirá a la República.

10 Jiyou Shares anunció que la compañía espera obtener ganancias netas en 2017. Las ganancias aumentaron en aproximadamente 42,5 millones de yuanes a 53 millones de yuanes con respecto al mismo período del año pasado, un aumento de aproximadamente 42,5 millones de yuanes. 80,49% -100,37% El beneficio para el mismo período del año pasado fue de 52,8038 millones de yuanes, y el beneficio operativo aumentó significativamente en comparación con el período anterior. El impacto de las ganancias y pérdidas no recurrentes, como los subsidios gubernamentales y los ingresos de la gestión financiera; El beneficio neto de la empresa es de aproximadamente 32 millones de yuanes.

11 Qianshan Yaoji: las acciones pignoradas del principal accionista cayeron por debajo de la línea de liquidación, Liu Xianghua, uno de los mayores accionistas y controladores reales, posee un total del 14,83%. de las acciones de la compañía Actualmente, los 29.808 millones de acciones prometidas por Liu Xianghua a Guotai Junan Securities han caído por debajo de la línea de liquidación. La compañía está actualmente bajo investigación por la Comisión de Valores y Futuros. Según las regulaciones pertinentes, los principales accionistas de la compañía no lo están. Se permite reducir sus tenencias (incluidas las promesas de acciones y las liquidaciones). Por lo tanto, las acciones prometidas por Liu Xianghua esta vez caerán por debajo de la línea de liquidación, lo que provocará cambios en el control real de la empresa. >12 Tianma Precision Chemical: la filial planea controlar Zhongke Electronics por más de 100 millones de yuanes para aumentar la estrategia de desarrollo de la gestión de la cadena de suministro. ,

'13 Chaohua Technology' anunció que recientemente recibió un aviso de los empleados de su filial accionaria Bellsun, informando que Bellsun no ha podido contactar a su presidente Zheng Changchun recientemente. Hasta el momento, la empresa no ha podido ponerse en contacto con Zheng Changchun, presidente de Belxin. Después de conversaciones con los principales accionistas de Belsign y la aprobación de la junta directiva de Belsign, la dirección actual de Belsign formará un grupo de trabajo temporal para mantener el orden normal de producción y funcionamiento de Belsign. La empresa llevó a cabo una verificación exhaustiva de Bell Letter para salvaguardar los intereses de las empresas que cotizan en bolsa y de los accionistas.

" ,

Según el anuncio de Hongsheng Technology '14, se espera que la compañía obtenga una ganancia de 280 millones de yuanes a 290 millones de yuanes en 2017, un aumento interanual del 20,65 % al 24,96 %. , y una ganancia de 232 millones de yuanes en el mismo período del año pasado. 'Período de informe Dentro del período, la compañía espera que el impacto de las ganancias y pérdidas no recurrentes en la ganancia neta sea de aproximadamente RMB 65,438+00 millones - RMB 65,438+03. millones.',

El 15, Xudong Optoelectronics anunció que el plan de crecimiento de empleados del accionista mayoritario Xu Dong Group ha completado la compra de acciones de la empresa, con una compra total de 1119010.000 acciones, que representan el 0,2% de. el capital social total y una transacción total de aproximadamente 1,02 millones de yuanes

]

obj 1 =. -index',600,5).karsim()

Obj2 = GensimExp(raw_documents,'Procesamiento ilegal de negocios crediticios ', 'similitud-tfidf-index ', 600, 3). /p>

Obj3 = GensimExp(raw_documents, 'Los ingresos de este período han aumentado en comparación con el período anterior', 'similitud-LSI-index' ', 400, 2 Kalsim()

Resultados experimentales:

Debido a que el corpus no es grande, la cantidad de textos similares devueltos es pequeña, pero se puede ver que el juicio es correcto (PD: las palabras vacías no se procesan durante la segmentación de palabras).

Referencia:

/gensim/tutorial.html