El proyecto de código abierto de Familia incluye herramientas de inferencia de temas de documentos, herramientas de cálculo de coincidencia semántica y tres modelos temáticos basados en capacitación en corpus de grado industrial: Asignación de Dirichlet latente (LDA), Sentencelda e incrustación de palabras tópicas (TWE). Admite a los usuarios a realizar la investigación y la aplicación de varios escenarios, como la clasificación de texto, la agrupación de texto y la recomendación personalizada de una manera de "uso listo". Teniendo en cuenta el alto costo de la capacitación de modelos temáticos y recursos limitados para modelos temáticos de código abierto, abriremos gradualmente modelos temáticos en múltiples campos verticales basados en la capacitación en corpus de grado industrial, así como los métodos de aplicación típicos de estos modelos en la industria, para ayudar a la investigación e implementación científica de la tecnología de modelos temáticos. ( Inglés )
Recientemente, lanzamos el modelo LDA en Familia en Paddlehub 1.8. Según el conjunto de datos, se divide en LDA_NEWS, LDA_NOVEL y LDA_WEBPAGE.
Paddlehub es muy conveniente de usar, y usaremos el uso de LDA_News para introducir el ejemplo.
En primer lugar, antes de usar PaddleHub, debe instalar el marco de aprendizaje profundo de Paddlepaddle. Para obtener más instrucciones de instalación, consulte la instalación rápida de PaddlePaddle.
Instale PaddleHub: pip install paddlehub
Instalación del modelo LDA_NEWS: hub install lda_news
Uso específico:
import paddlehub as hub
lda_news = hub . Module ( name = "lda_news" )
jsd , hd = lda_news . cal_doc_distance ( doc_text1 = "今天的天气如何,适合出去游玩吗" , doc_text2 = "感觉今天的天气不错,可以出去玩一玩了" )
# jsd = 0.003109, hd = 0.0573171
lda_sim = lda_news . cal_query_doc_similarity ( query = '百度搜索引擎' , document = '百度是全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。百度超过千亿的中文网页数据库,可以瞬间找到相关的搜索结果。' )
# LDA similarity = 0.06826
results = lda_news . cal_doc_keywords_similarity ( '百度是全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。百度超过千亿的中文网页数据库,可以瞬间找到相关的搜索结果。' )
# [{'word': '百度', 'similarity': 0.12943492762349573},
# {'word': '信息', 'similarity': 0.06139783578769882},
# {'word': '找到', 'similarity': 0.055296603463188265},
# {'word': '搜索', 'similarity': 0.04270794098349327},
# {'word': '全球', 'similarity': 0.03773627056367886},
# {'word': '超过', 'similarity': 0.03478658388202199},
# {'word': '相关', 'similarity': 0.026295857219683725},
# {'word': '获取', 'similarity': 0.021313585287833996},
# {'word': '中文', 'similarity': 0.020187103312009513},
# {'word': '搜索引擎', 'similarity': 0.007092890537169911}]Aquí se puede encontrar un método de introducción y uso más específico: https://www.paddlepaddle.org.cn/hublist?filter=en_category&value=semanticmodel
Para la introducción en papel correspondiente del modelo de tema actualmente incluido en Familia, consulte los documentos relevantes.
El paradigma de la aplicación de los modelos de temas en la industria se puede abstraer en dos categorías: representación semántica y coincidencia semántica.
La representación semántica (representación semántica) reduce las dimensiones de sujeto del documento y obtiene representaciones semánticas del documento. Estas representaciones semánticas se pueden aplicar a aplicaciones aguas abajo, como la clasificación de texto, el análisis de contenido de texto y la predicción de CTR.
Emparejamiento semántico
Para calcular el grado de coincidencia semántica entre textos, proporcionamos dos métodos de cálculo de similitud para tipos de texto:
Para obtener un contenido más detallado y casos de aplicación industrial, consulte el Wiki de Familia . Si desea visualizar el paradigma de la aplicación anterior en función de la Web, puede consultar la visualización de Familia .
Las dependencias de terceros incluyen gflags-2.0 , glogs-0.3.4 , protobuf-2.5.0 , y también requieren que el compilador admita C ++ 11, g++ >= 4.8 , y es compatible con los sistemas operativos Linux y Mac. De forma predeterminada, ejecutar el siguiente script obtendrá automáticamente las dependencias e instalarálas.
$ sh build.sh # 包含获取并安装第三方依赖的过程
$ cd model
$ sh download_model.sh
Poco a poco abriremos múltiples modelos temáticos en diferentes campos para satisfacer más necesidades de escenarios diferentes.
La demostración en Familia incluye las siguientes características:
Cálculo de representación semántica Use el modelo de tema para inferir temas al documento de entrada para obtener la representación de reducción de dimensionalidad del tema del documento.
El cálculo de coincidencia semántica calcula la similitud entre los textos, incluida la similitud entre el texto corto de texto, el texto largo de un texto largo.
El contenido del modelo muestra las palabras temáticas y las palabras vecinas cercanas del modelo, que facilita a los usuarios tener una comprensión intuitiva del tema del modelo.
Para obtener instrucciones de demostración específicas, consulte la documentación de uso.
Si hay un error en bibliotecas dinámicas como libglog.so, libgflags.so, etc., agregue Third_Party a LD_LIBRARY_PATH de la variable de entorno.
export LD_LIBRARY_PATH=./third_party/lib:$LD_LIBRARY_PATH
La simple herramienta de segmentación de palabras FMM está integrada en el código, que solo hacia adelante coincide con las listas de vocabulario que aparecen en el modelo temático. Si hay requisitos más altos para la segmentación de palabras y la precisión semántica, se recomienda utilizar una herramienta de segmentación de palabras comercial y utilizar la función de una lista de palabras personalizada para importar la lista de palabras en el modelo de tema.
Bienvenido a enviar cualquier pregunta e informes de errores a los problemas de GitHub. O envíe un correo electrónico de consulta a {Family} en Baidu.com
docker run -d
--name familia
-e MODEL_NAME=news
-p 5000:5000
orctom/familia
Model_name puede ser uno de news / novel / webpage / webo
http://localhost:5000/swagger/
El siguiente artículo describe el proyecto Familia y los casos industriales impulsados por el modelado de temas. Se agrupa y traduce la documentación china del sitio web. Recomendamos citar este artículo como predeterminado.
Di Jiang, Yuanfeng Song, Rongzhong Lian, Siqi Bao, Jinhua Peng, Huang He, Hua Wu. 2018. Familia: un marco de modelado de temas configurable para la ingeniería de texto industrial. Preimpresión ARXIV ARXIV: 1808.03733.
@article{jiang2018familia,
author = {Di Jiang and Yuanfeng Song and Rongzhong Lian and Siqi Bao and Jinhua Peng and Huang He and Hua Wu},
title = {{Familia: A Configurable Topic Modeling Framework for Industrial Text Engineering}},
journal = {arXiv preprint arXiv:1808.03733},
year = {2018}
}
Lectura adicional: modelado de temas federados
Familia se proporciona bajo la licencia de cláusula BSD-3.