日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用BerTopic在Python中進(jìn)行主題建模

通過主題建模,你可以收集非結(jié)構(gòu)化數(shù)據(jù)集,分析文檔,并獲得相關(guān)和所需的信息,這些信息能幫你做出更好的決策。 

創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)成都企業(yè)網(wǎng)站建設(shè)方案、改版、費(fèi)用等問題,行業(yè)涉及建筑動(dòng)畫等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

??

執(zhí)行主題建模有不同的技術(shù)(如LDA),但是在本NLP教程中,你將學(xué)習(xí)如何使用Maarten Grootendorst開發(fā)的BerTopic技術(shù)。

什么是 BerTopic?

BerTopic是一種主題建模技術(shù),它使用轉(zhuǎn)換器(BERT嵌入)和基于類的TF-IDF來創(chuàng)建密集集群。它還允許您輕松地解釋和可視化生成的主題。

BerTopic算法包含三個(gè)階段:

1.嵌入文本數(shù)據(jù)(文檔):此步驟中,算法使用BERT提取文檔嵌入,也可以使用其他任何嵌入技術(shù)。

默認(rèn)情況下,它使用下面的句子轉(zhuǎn)換器

  • “ paraphrase-MiniLM-L6-v2” - 這是一個(gè)基于英語 BERT 的模型,專門針對(duì)語義相似性任務(wù)進(jìn)行訓(xùn)練。
  • “ paraphrase-multilingual-MiniLM-L12-v2 ” - 這與第一個(gè)類似,一個(gè)主要區(qū)別是 xlm 模型適用于 50 多種語言。

2.Cluster文檔:使用UMAP降低嵌入的維數(shù),使用HDBSCAN技術(shù)聚類減少嵌入并創(chuàng)建語義相似文檔的聚類。

3.創(chuàng)建主題表示:利用基于類的TF-IDF進(jìn)行主題提取和精簡(jiǎn),提高最大邊緣關(guān)聯(lián)詞的一致性。

??

如何安裝 BerTopic

可以通過 pip 安裝軟件包: 

pip install bertopic

如果你對(duì)可視化選項(xiàng)感興趣,你需要按照如下方式安裝它們。 

pip install bertopic[visualization]

BerTopic支持不同的轉(zhuǎn)換器和語言后端,你可以使用它們來創(chuàng)建模型。你可以根據(jù)下面可用的選項(xiàng)安裝一個(gè)。

  • pip install bertopic[天賦]
  • pip install bertopic[gensim]
  • pip install bertopic[spacy]
  • pip install bertopic[使用]

我們將使用以下庫來幫助我們加載數(shù)據(jù)并從BerTopic創(chuàng)建模型。 

#import packages

import pandas as pd
import numpy as np
from bertopic import BERTopic

步驟1:加載數(shù)據(jù)

在本NLP教程中,我們將使用2020年東京奧運(yùn)會(huì)推文,目標(biāo)是創(chuàng)建一個(gè)模型,該模型可以根據(jù)推文的主題自動(dòng)分類。 

#load data
import pandas as pd

df = pd.read_csv("/content/drive/MyDrive/Colab Notebooks/data/tokyo_2020_tweets.csv", engine='python')

# select only 6000 tweets
dfdf = df[0:6000]

注:出于計(jì)算原因,我們只選擇了6000條推文。

步驟2:創(chuàng)建模型

要使用BERTopic創(chuàng)建模型,需要將推文作為列表加載,然后將其傳遞給fit_transform方法。這個(gè)方法將做以下工作:

  • 在推文集合上擬合模型;
  • 生成話題;
  • 返回帶有主題的推文。
# create model

model = BERTopic(verbose=True)

#convert to list
docs = df.text.to_list()

topics, probabilities = model.fit_transform(docs)

 ??

步驟3:選擇高級(jí)主題

訓(xùn)練模型后,可以按降序訪問主題的大小。 

model.get_topic_freq().head(11)

 ??

注:Topic -1是最大的,它指的是沒有分配給生成的任何主題的離群推文。在本例中,我們將忽略Topic -1。

步驟4:選擇一個(gè)主題

你可以選擇一個(gè)特定的主題,并得到該主題的前n個(gè)單詞和他們的c-TF-IDF分?jǐn)?shù)。 

model.get_topic(6)

 ??

對(duì)于這個(gè)選定的話題,常用詞是瑞典,目標(biāo),羅爾夫,瑞典人,目標(biāo),足球。很明顯,這個(gè)話題的重點(diǎn)是“瑞典隊(duì)的足球”。

步驟5:主題建??梢暬?/h3>

BerTopic允許您以非常類似于LDAvis的方式可視化生成的主題。這會(huì)讓你對(duì)主題的質(zhì)量有更多的了解。在本文中,我們將介紹三種可視化主題的方法。

可視化的話題

visualize_topics方法可以幫助您可視化生成的主題及其大小和相應(yīng)的單詞。視覺化的靈感來自于LDavis。 

model.visualize_topics()

 ??

可視化術(shù)語

visualize_barchart方法將通過創(chuàng)建c-TF-IDF分?jǐn)?shù)的條形圖來顯示選定的幾個(gè)主題術(shù)語。然后,您可以比較彼此的主題表示,并從生成的主題中獲得更多的見解。 

model.visualize_barchart()

 ??

上面的圖表中,你可以看到話題4的熱門詞是proud, thank, cheer4india, cheer和congrats。

可視化主題相似性

你還可以可視化某些主題之間的相似程度。要可視化熱圖,只需調(diào)用。 

model.visualize_heatmap()

??

在上圖中,你可以看到topic 93與topic 102相似,相似度為0.933。

主題減少

有時(shí)您可能會(huì)生成過多或過少的主題,BerTopic為您提供了一種選擇,以不同的方式控制這種行為。

(a)你可以通過設(shè)置參數(shù)nr_topics來設(shè)置你想要的主題數(shù)量。BerTopic將找到類似的主題并合并它們。 

model = BERTopic(nr_topics=20)

在上面的代碼中,將要生成的主題的數(shù)量是20。

(b)另一種選擇是自動(dòng)減少專題的數(shù)目。要使用這個(gè)選項(xiàng),你需要在訓(xùn)練模型之前將"nr_topics"設(shè)置為"auto"。 

model = BERTopic(nr_topics="auto")

(c)最后一種選擇是減少模型訓(xùn)練后的主題數(shù)量。這是一個(gè)很好的選擇,如果重新培訓(xùn)模型將花費(fèi)許多小時(shí)。 

new_topics, new_probs = model.reduce_topics(docs, topics, probabilities, nr_topics=15)

在上面的示例中,在訓(xùn)練模型之后,您將主題的數(shù)量減少到15個(gè)。

步驟6:做出預(yù)測(cè)

要預(yù)測(cè)新文檔的主題,需要在轉(zhuǎn)換方法上添加一個(gè)(或多個(gè))新實(shí)例。 

topics, probs = model.transform(new_docs)

步驟7:保存模型

你以使用save方法保存訓(xùn)練過的模型。

model.save("my_topics_model")

步驟8:加載模型

你可以使用load方法來加載模型。 

BerTopic_model = BERTopic.load("my_topics_model")

最后

在創(chuàng)建模型時(shí),BerTopic提供了許多特性。例如,如果您有一個(gè)特定語言的數(shù)據(jù)集(默認(rèn)情況下,它支持英語模型),您可以通過在配置模型時(shí)設(shè)置語言參數(shù)來選擇語言。 

model = BERTopic(language="German")

注意:請(qǐng)選擇其嵌入模型存在的語言。

如果你的文檔中混合了多種語言,你可以設(shè)置language="multilingual"以支持超過50種語言。 

【譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為.com】


文章題目:使用BerTopic在Python中進(jìn)行主題建模
分享地址:http://m.5511xx.com/article/djjheog.html