O projeto de código aberto da Familia inclui ferramentas de inferência de tópicos de documentos, ferramentas de cálculo de correspondência semântica e três modelos de temas baseados em treinamento de corpus de nível industrial: alocação latente de Dirichlet (LDA), Sentencelda e incorporação de palavras tópicas (TWE). Ele suporta os usuários para realizar pesquisas e aplicação de vários cenários, como classificação de texto, agrupamento de texto e recomendação personalizada de uma maneira de "uso pronto". Considerando o alto custo dos modelos de temas de treinamento e recursos limitados para modelos de temas de código aberto, abriremos gradualmente modelos de temas em vários campos verticais com base no treinamento de corpus de nível industrial, bem como nos métodos de aplicação típicos desses modelos na indústria, para ajudar a pesquisa científica e a implementação da tecnologia de modelos de temas. ( Inglês )
Recentemente, lançamos o modelo LDA em Familia no PaddleHub 1.8. De acordo com o conjunto de dados, ele é dividido em LDA_News, LDA_NOVEL e LDA_WebPage.
O PaddleHub é muito conveniente de usar e usaremos o uso de LDA_News para apresentar o exemplo.
Primeiro de tudo, antes de usar o PaddleHub, você precisa instalar a estrutura de aprendizado profundo Paddlepaddle. Para obter mais instruções de instalação, consulte a instalação rápida Paddlepddle.
Instale PaddleHub: pip install paddlehub
LDA_News Modelo Instalação: 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}]Um método de introdução e uso mais específico pode ser encontrado aqui: https://www.paddlepaddle.org.cn/hublist?filter=en_category&value=semanticmodel
Para a introdução do artigo correspondente do modelo de tópico atualmente incluído na Familia, consulte os documentos relevantes.
O paradigma de aplicativos dos modelos de tópicos na indústria pode ser abstraído em duas categorias: representação semântica e correspondência semântica.
A representação semântica (representação semântica) reduz as dimensões do sujeito do documento e obtém representações semânticas do documento. Essas representações semânticas podem ser aplicadas a aplicativos a jusante, como classificação de texto, análise de conteúdo de texto e previsão de CTR.
Correspondência semântica
Para calcular o grau de correspondência semântica entre os textos, fornecemos dois métodos de cálculo de similaridade para tipos de texto:
Para um conteúdo mais detalhado e casos de aplicação industrial, consulte o Wiki da Familia . Se você deseja visualizar o paradigma do aplicativo acima com base na Web, pode consultar a visualização da família .
As dependências de terceiros incluem gflags-2.0 , glogs-0.3.4 , protobuf-2.5.0 , e também exigem que o compilador suporte C ++ 11, g++ >= 4.8 e é compatível com sistemas operacionais Linux e Mac. Por padrão, a execução do script a seguir obterá automaticamente as dependências e as instalará.
$ sh build.sh # 包含获取并安装第三方依赖的过程
$ cd model
$ sh download_model.sh
Gradualmente, abriremos vários modelos de temas em diferentes campos para atender às necessidades de cenário mais diferentes.
A demonstração na Familia inclui os seguintes recursos:
Cálculo da representação semântica Use o modelo de tópico para inferir tópicos no documento de entrada para obter a representação de redução da dimensionalidade do tópico do documento.
O cálculo de correspondência semântica calcula a semelhança entre os textos, incluindo a semelhança entre texto curto de texto, texto longo ao longo do texto.
O conteúdo do modelo exibe as palavras -temas e as palavras próximas do modelo, que facilita os usuários a ter um entendimento intuitivo do tema do modelo.
Para instruções de demonstração específicas, consulte a documentação de uso.
Se houver um erro em bibliotecas dinâmicas como libglog.so, libgflags.so, etc., adicione terceiro_party à LD_LIBRARY_PATH da variável de ambiente.
export LD_LIBRARY_PATH=./third_party/lib:$LD_LIBRARY_PATH
A ferramenta simples de segmentação de palavras FMM é construída no código, que apenas corresponde às listas de vocabulário que aparecem no modelo de tema. Se houver requisitos mais altos para segmentação de palavras e precisão semântica, é recomendável usar uma ferramenta comercial de segmentação de palavras e usar a função de uma lista de palavras personalizada para importar a lista de palavras no modelo de tema.
Bem -vindo a enviar quaisquer perguntas e relatórios de bugs para problemas do GitHub. Ou envie um email de consulta para {Family} em Baidu.com
docker run -d
--name familia
-e MODEL_NAME=news
-p 5000:5000
orctom/familia
Model_name pode ser um de news / novel / webpage / webo
http://localhost:5000/swagger/
O artigo a seguir descreve o projeto da família e os casos industriais alimentados pela modelagem de tópicos. Ele agrupa e traduz a documentação chinesa do site. Recomendamos citar este artigo como padrão.
Di Jiang, música de Yuanfeng, Rongzhong Lian, Siqi Bao, Jinhua Peng, Huang He, Hua Wu. 2018. Familia: Uma estrutura de modelagem de tópicos configurável para engenharia de texto industrial. Arxiv pré -impressão 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}
}
Leitura adicional: Modelagem de Tópicos Federados
A Familia é fornecida sob a licença BSD-3-cláusula.