成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 BerTopic 在 Python 中進行主題建模

譯文
開發 開發工具
主題建模是一種無監督的機器學習技術,它可以自動識別文檔(文本數據)中的不同主題。

【51CTO.com快譯】通過主題建模,你可以收集非結構化數據集,分析文檔,并獲得相關和所需的信息,這些信息能幫你做出更好的決策。 

??

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

什么是 BerTopic?

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

BerTopic算法包含三個階段:

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

默認情況下,它使用下面的句子轉換器

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

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

3.創建主題表示:利用基于類的TF-IDF進行主題提取和精簡,提高最大邊緣關聯詞的一致性。

??

如何安裝 BerTopic

可以通過 pip 安裝軟件包: 

pip install bertopic

如果你對可視化選項感興趣,你需要按照如下方式安裝它們。 

pip install bertopic[visualization]

BerTopic支持不同的轉換器和語言后端,你可以使用它們來創建模型。你可以根據下面可用的選項安裝一個。

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

我們將使用以下庫來幫助我們加載數據并從BerTopic創建模型。 

#import packages

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

步驟1:加載數據

在本NLP教程中,我們將使用2020年東京奧運會推文,目標是創建一個模型,該模型可以根據推文的主題自動分類。 

#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]

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

步驟2:創建模型

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

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

model = BERTopic(verbose=True)

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

topics, probabilities = model.fit_transform(docs)

 ??

步驟3:選擇高級主題

訓練模型后,可以按降序訪問主題的大小。 

model.get_topic_freq().head(11)

 ??

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

步驟4:選擇一個主題

你可以選擇一個特定的主題,并得到該主題的前n個單詞和他們的c-TF-IDF分數。 

model.get_topic(6)

 ??

對于這個選定的話題,常用詞是瑞典,目標,羅爾夫,瑞典人,目標,足球。很明顯,這個話題的重點是“瑞典隊的足球”。

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

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

可視化的話題

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

model.visualize_topics()

 ??

可視化術語

visualize_barchart方法將通過創建c-TF-IDF分數的條形圖來顯示選定的幾個主題術語。然后,您可以比較彼此的主題表示,并從生成的主題中獲得更多的見解。 

model.visualize_barchart()

 ??

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

可視化主題相似性

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

model.visualize_heatmap()

??

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

主題減少

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

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

model = BERTopic(nr_topics=20)

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

(b)另一種選擇是自動減少專題的數目。要使用這個選項,你需要在訓練模型之前將"nr_topics"設置為"auto"。 

model = BERTopic(nr_topics="auto")

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

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

在上面的示例中,在訓練模型之后,您將主題的數量減少到15個。

步驟6:做出預測

要預測新文檔的主題,需要在轉換方法上添加一個(或多個)新實例。 

topics, probs = model.transform(new_docs)

步驟7:保存模型

你以使用save方法保存訓練過的模型。

model.save("my_topics_model")

步驟8:加載模型

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

BerTopic_model = BERTopic.load("my_topics_model")

最后

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

model = BERTopic(language="German")

注意:請選擇其嵌入模型存在的語言。

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

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】


責任編輯:黃顯東 來源: hackernoon
相關推薦

2019-04-18 09:15:05

DaskPython計算

2020-03-07 18:00:17

logzeroPython日志記錄

2023-10-18 18:31:04

SQL查詢數據

2023-08-02 08:02:30

Redis數據原生方法

2020-06-30 08:23:00

JavaScript開發技術

2024-05-06 13:34:28

WireGoogleGo

2009-06-22 10:29:11

集成測試Spring

2011-08-01 10:41:59

Xcode 條件編譯

2009-12-28 13:59:12

ADO調用存儲過程

2009-03-03 09:00:57

Silverlight數據驗證UI控件

2021-03-24 09:30:02

Jupyter not單元測試代碼

2020-08-11 13:00:34

GNU bcLinuxShell

2011-11-30 15:18:06

JavaJBossJ2EE

2016-08-22 11:46:53

GitLinux開源

2009-12-11 09:43:43

靜態路由配置

2023-06-08 14:10:00

VSCodePython代碼

2010-03-30 18:48:24

Oracle 學習

2012-04-09 13:39:37

ibmdw

2025-02-10 10:29:32

2020-09-17 06:42:31

ReactStoreon前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产综合久久婷婷香蕉 | 国产美女在线免费观看 | 又黄又色 | 亚洲在线成人 | 不卡av在线 | 精品久久久久久国产 | 亚洲一区二区三区免费视频 | 久久国产精品视频 | 欧美 日韩 国产 成人 | 麻豆成人在线视频 | 狠狠操狠狠操 | 午夜码电影| 欧美日韩中文字幕在线 | 国产福利二区 | 久久久久久久99 | 亚洲视频免费观看 | 国产精品一区二 | 日日夜夜天天干 | 久久a久久 | k8久久久一区二区三区 | 亚洲www| 伊人久久综合 | 久久国产精品一区二区三区 | 亚洲精品 在线播放 | 99pao成人国产永久免费视频 | 国产成人99久久亚洲综合精品 | 久久久久国产一区二区三区 | 欧美日韩毛片 | 久久a久久| 久久精品国产99国产精品 | 91在线视频精品 | 久草精品视频 | 成人福利网| 波多野结衣一区二区三区 | 亚洲精品9999 | 久久视频免费观看 | 国产黄色一级电影 | 在线免费黄色小视频 | 免费视频99 | 国产日韩欧美在线观看 | 一区二区三区视频 |