日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一種文本挖掘方法稱為主題建模,什么時候會用到主題建模?

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-10-10 09:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

你曾經(jīng)是否去過一家管理良好的圖書館?我常常被圖書館有秩序的書籍管理震驚到,他們可以根據(jù)書名、內(nèi)容或者其他主題把所有書排列整齊。但是如果你給圖書館提供了幾千本書,讓他們根據(jù)每本書的種類進(jìn)行管理,他們一定會累到吐血。

但如果你有這些書的電子格式,做起來似乎就簡單的多了,無需手動操作,幾秒鐘可能就完成了。NLP萬歲!

請看下面一小段話:

從三種顏色的高亮處我們得知,這里有三種主題(或者概念)。一個好的主題模型可以分辨出相似的單詞,并把它們歸到一個群組中。在上面這段話中,最主要的主題就是綠色的主題2,通過它我們可以了解到這段話的主要意思是有關(guān)假視頻的。

在這篇文章中,我們將學(xué)習(xí)一種文本挖掘方法,稱為主題建模(topic modeling)。這是提取主題的一種非常有用的技術(shù),在NLP問題中會經(jīng)常用到。

注:在閱讀這篇文章前,我強(qiáng)烈推薦我們此前的另一篇文章:《12種降維方法終極指南(含Python代碼)》,從中可以了解SVD、UMAP等概念,這些概念會在本文出現(xiàn)。

什么是主題模型?

主題模型可以看作是一種無監(jiān)督技術(shù),用于在多個文本文件中發(fā)現(xiàn)主題。但這些主題在自然中是抽象的,而且一段文本中可能含有多種主題。就目前來說,我們暫且將主題模型理解成一個黑箱,如下圖所示:

黑箱(主題模型)將很多相似相關(guān)的詞語聚集起來,稱為主題。這些主題在文本中有特定的分布形態(tài),每種主題都是通過它包含的不同單詞比例確定的。

什么時候會用到主題建模?

回到我們開頭說到的圖書館的例子,現(xiàn)在假設(shè)你要對幾個數(shù)字化文本進(jìn)行管理,如果數(shù)量不多,完全可以手動完成,但如果電子文本數(shù)量很大該怎么辦?

這就需要用到NLP技術(shù),對于這項任務(wù),主題建模是必須用到的。

主題建??梢詭椭褂谜咛幚泶罅课谋緮?shù)據(jù),找到文本中相似的多個詞語,確定抽象的主題。除此之外,主題模型還可以用于搜索引擎,讓搜索結(jié)果與搜索字符相匹配。

隱藏語義分析(LSA)概覽

所有語言都有自己細(xì)小的特征,機(jī)器難以分辨(有時連人類都會認(rèn)錯)。比如有時不同的單詞卻表達(dá)相同含義,或者同一個單詞卻表達(dá)不同意思。

例如,看以下兩個句子:

I liked his lastnovelquite a lot.

We would like to go for anovelmarketing campaign.

在第一句話中,“novel”指的是一本書、小說,而在第二句話中它是形容詞,意為“新的”。

我們可以輕易地分辨二者,因為我們理解了“novel”前后詞語的意思。但是,機(jī)器無法理解這些概念,所以也不能理解詞語所處的語境。這就需要用到隱藏語義分析(LSA)了,它通過分析詞語周圍的語境捕捉其中的隱藏概念,即主題。

所以,僅僅將詞語映射到文本中并不能起到太大幫助,我們真正要做的是弄清楚詞語背后隱藏的概念或主題,這就是LSA的目的。

實施LSA的步驟

假設(shè)我們有m個文本文檔,總共有n個不同的詞語,我們想從文檔中所有文本數(shù)據(jù)中提取出k個主題,而k是由用戶決定的。

生成一個文本-單詞矩陣,計算TF-IDF分?jǐn)?shù)。

之后,我們會將上述矩陣的維度降至k,利用奇異值分解(SVD)。

SVD將一個矩陣分解成三個其他的矩陣,假設(shè)我們想用SVD分解矩陣A,它就會將其分成矩陣U、S和VT(矩陣V的轉(zhuǎn)置矩陣)。

矩陣UK的每一行都是對應(yīng)文本的向量表示,這些向量的長度是k,即目標(biāo)主題的數(shù)量。我們數(shù)據(jù)中的詞語的向量表示可以在矩陣VK中找到。

通過SVD,我們得到了我們的數(shù)據(jù)中每個文本和詞語的向量表示,然后用這些向量,我們可以找到相似的單詞,利用余弦相似性找到相似的文本。

用Python實現(xiàn)LSA

首先下載所需要的庫。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

pd.set_option("display.max_colwidth", 200)

在這篇文章中,我們會用到sklearn中的“20 Newsgroup”,下載地址:archive.ics.uci.edu/ml/datasets/Twenty+Newsgroups。代碼如下:

from sklearn.datasets import fetch_20newsgroups

dataset = fetch_20newsgroups(shuffle=True, random_state=1, remove=('headers', 'footers', 'quotes'))

documents = dataset.data

len(documents)

輸出:11314。

dataset.target_names

['alt.atheism',

'comp.graphics',

'comp.os.ms-windows.misc',

'comp.sys.ibm.pc.hardware',

'comp.sys.mac.hardware',

'comp.windows.x',

'misc.forsale',

'rec.autos',

'rec.motorcycles',

'rec.sport.baseball',

'rec.sport.hockey',

'sci.crypt',

'sci.electronics',

'sci.med',

'sci.space',

'soc.religion.christian',

'talk.politics.guns',

'talk.politics.mideast',

'talk.politics.misc',

'talk.religion.misc']

數(shù)據(jù)及共有11314個文本文檔,分布在20各不同的newsgroup中。

數(shù)據(jù)預(yù)處理

開始之前,我們先嘗試著清理文本數(shù)據(jù)。主要思想就是清除其中的標(biāo)點、數(shù)字和特殊字符。之后,我們需要刪除較短的單詞,因為通常它們不會包含什么有用的信息。最后,我們將文本變?yōu)椴粎^(qū)分大小寫。

news_df = pd.DataFrame({'document':documents})

# removing everything except alphabets`

news_df['clean_doc'] = news_df['document'].str.replace("[^a-zA-Z#]", " ")

# removing short words

news_df['clean_doc'] = news_df['clean_doc'].apply(lambda x: ' '.join([w for w in x.split() if len(w)>3]))

# make all text lowercase

news_df['clean_doc'] = news_df['clean_doc'].apply(lambda x: x.lower())

之后我們要刪除沒有特別意義的停止詞,例如“it”、“they”、“am”、“been”、“about”、“because”、“while”等等。為了實現(xiàn)這一目的,我們要對文本進(jìn)行標(biāo)記化,也就是將一串文本分割成獨(dú)立的標(biāo)記或單詞。刪除停止詞之后,再把這些標(biāo)記組合在一起。

from nltk.corpus import stopwords

stop_words = stopwords.words('english')

# tokenization

tokenized_doc = news_df['clean_doc'].apply(lambda x: x.split())

# remove stop-words

tokenized_doc = tokenized_doc.apply(lambda x: [item for item in x if item notin stop_words])

# de-tokenization

detokenized_doc = []

for i in range(len(news_df)):

t = ' '.join(tokenized_doc[i])

detokenized_doc.append(t)

news_df['clean_doc'] = detokenized_doc

文本-詞語矩陣

這是通向主題建模的第一步。我們要用sklearn的TfidfVectorizer給1000個詞語創(chuàng)造一個文本-詞語矩陣。如果你有足夠的計算力,可以增加更多數(shù)據(jù)。

from sklearn.feature_extraction.text importTfidfVectorizer

vectorizer = TfidfVectorizer(stop_words='english',

max_features= 1000, # keep top 1000 terms

max_df = 0.5,

smooth_idf=True)

X = vectorizer.fit_transform(news_df['clean_doc'])

X.shape # check shape of the document-term matrix

(11314, 1000)

主題建模

下一步是將每個詞語和文本用向量表示,我們會用到文本-詞語矩陣并對他們降維。這里會用到TruncatedSVD執(zhí)行矩陣的分解。

由于數(shù)據(jù)來自20個不同的分組,我們就假設(shè)文本數(shù)據(jù)有20個不同主題。

from sklearn.decomposition importTruncatedSVD

# SVD represent documents and terms in vectors

svd_model = TruncatedSVD(n_components=20, algorithm='randomized', n_iter=100, random_state=122)

svd_model.fit(X)

len(svd_model.components_)

20

svdmodel中的元素就是我們的主題,我們可以用svdmodel.components_查看。最后,在20個主題中輸入幾個重要單詞,看模型會做出什么反應(yīng)。

terms = vectorizer.get_feature_names()

for i, comp in enumerate(svd_model.components_):

terms_comp = zip(terms, comp)

sorted_terms = sorted(terms_comp, key= lambda x:x[1], reverse=True)[:7]

print("Topic "+str(i)+": ")

for t in sorted_terms:

print(t[0])

print(" ")

Topic0: like know people think good time thanks

Topic1: thanks windows card drive mail file advance

Topic2: game team year games season players good

Topic3: drive scsi disk hard card drives problem

Topic4: windows file window files program using problem

Topic5: government chip mail space information encryption data

Topic6: like bike know chip sounds looks look

Topic7: card sale video offer monitor price jesus

Topic8: know card chip video government people clipper

Topic9: good know time bike jesus problem work

Topic10: think chip good thanks clipper need encryption

Topic11: thanks right problem good bike time window

Topic12: good people windows know file sale files

Topic13: space think know nasa problem year israel

Topic14: space good card people time nasa thanks

Topic15: people problem window time game want bike

Topic16: time bike right windows file need really

Topic17: time problem file think israel long mail

Topic18: file need card files problem right good

Topic19: problem file thanks used space chip sale

主題可視化

為了更方便地探索主題,我們應(yīng)該對其可視化。當(dāng)然,可是話不能大于三維,但是PCA或t-SNE等技術(shù)可以幫我們將高維數(shù)據(jù)降成低維進(jìn)行可視化。這里,我們用另一種相對較新的技術(shù),稱作UMAP(Uniform Manifold Approximation and Projection)。

import umap

X_topics = svd_model.fit_transform(X)

embedding = umap.UMAP(n_neighbors=150, min_dist=0.5, random_state=12).fit_transform(X_topics)

plt.figure(figsize=(7,5))

plt.scatter(embedding[:, 0], embedding[:, 1],

c = dataset.target,

s = 10, # size

edgecolor='none'

)

plt.show()

如上所示,結(jié)果非常明顯,每個點代表一段文本,不同的顏色表示20個分組。

完整代碼地址:github.com/prateekjoshi565/latentsemanticanalysis

LSA的優(yōu)缺點

如上所示,隱藏語義分析非常有用,但是它也有自己的缺點。在使用它之前,還需要了解它的優(yōu)缺點。

優(yōu)點:

LSA非常快,并且易于實施。

結(jié)果很清晰,比單一的向量空間模型好得多。

缺點:

由于它是一個線性模型,可能在非線性數(shù)據(jù)集上表現(xiàn)的不是很好。

LSA假設(shè)文本中的詞語是高斯分布,可能不適用于所有問題。

LSA中涉及SVD,可能在出現(xiàn)新數(shù)據(jù)或更新時需要大量計算力。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3831

    瀏覽量

    52287
  • SVD
    SVD
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    12493

原文標(biāo)題:用隱藏語義分析(LSA)進(jìn)行主題建模(附Python代碼)

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    [VirtualLab] 真實結(jié)構(gòu)下的目鏡混合衍射透鏡的效果建模

    摘要 具有折射表面和衍射表面的混合透鏡在不同應(yīng)用中已成為一種很有前途的解決方案。在這里,我們展示了個混合目鏡的例子,其中個用真實表面建模的衍射透鏡被用來糾正色差。利用局部線性光柵近
    發(fā)表于 04-29 08:25

    [VirtualLab] 薄元近似(TEA)與傅里葉模態(tài)法(FMM)的光柵建模

    ,也稱為RCWA)對傾斜光柵的優(yōu)化方法。優(yōu)化后的光柵的衍射效率超過90%。此外,還研究了其對光柵的傾角偏差和圓角邊緣的影響。 建模任務(wù) **優(yōu)化 ** 為了為傾斜光柵找到組優(yōu)化的
    發(fā)表于 04-22 08:21

    【分享】告別盲目建模!Simcenter Simlab PCB建模的6大高效策略,助您事半功倍!

    。如何在保留關(guān)鍵物理特性的前提下,實現(xiàn)大規(guī)模數(shù)組的快速運(yùn)算。從傳統(tǒng)的均質(zhì)化材料到精細(xì)的3D細(xì)節(jié)建模,選擇合適的建模策略(ModelingStrategy)不僅關(guān)乎精
    的頭像 發(fā)表于 04-02 10:21 ?170次閱讀
    【分享】告別盲目<b class='flag-5'>建模</b>!Simcenter Simlab PCB<b class='flag-5'>建模</b>的6大高效策略,助您事半功倍!

    VirtualLab:泰伯效應(yīng)的建模

    VirtualLab:泰伯效應(yīng)的建模
    的頭像 發(fā)表于 03-18 16:59 ?125次閱讀
    VirtualLab:泰伯效應(yīng)的<b class='flag-5'>建模</b>

    文讀懂LSTM與RNN:從原理到實戰(zhàn),掌握序列建模核心技術(shù)

    在AI領(lǐng)域,文本翻譯、語音識別、股價預(yù)測等場景都離不開序列數(shù)據(jù)處理。循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)作為最早的序列建模工具,開創(chuàng)了“記憶歷史信息”的先河;而長短期記憶網(wǎng)絡(luò)(LSTM)則通過創(chuàng)新設(shè)計,突破
    的頭像 發(fā)表于 12-09 13:56 ?1909次閱讀
    <b class='flag-5'>一</b>文讀懂LSTM與RNN:從原理到實戰(zhàn),掌握序列<b class='flag-5'>建模</b>核心技術(shù)

    技術(shù)資訊 I 多板系統(tǒng) 3D 建模,提升設(shè)計精度和性能

    本文要點了解3D建模流程。洞悉多板系統(tǒng)3D建模如何提高設(shè)計精度、性能和成本效益。掌握3D建模在制造工藝中的優(yōu)勢。在PCBA領(lǐng)域,仿真與建模是實現(xiàn)精準(zhǔn)高效設(shè)計的基石。在量產(chǎn)前構(gòu)建并復(fù)用原
    的頭像 發(fā)表于 11-21 17:45 ?2682次閱讀
    技術(shù)資訊 I 多板系統(tǒng) 3D <b class='flag-5'>建模</b>,提升設(shè)計精度和性能

    哪些電子產(chǎn)品會用到貼片Y電容?

    貼片Y電容,又稱為表面貼裝Y電容,外觀通常為扁平的矩形,是一種特殊的電容器類型。由于其獨(dú)特的性能優(yōu)勢用于許多電子產(chǎn)品。哪些電子產(chǎn)品會用到貼片Y電容呢?
    的頭像 發(fā)表于 11-13 11:05 ?679次閱讀
    哪些電子產(chǎn)品<b class='flag-5'>會用到</b>貼片Y電容?

    華為陳實出席AfricaCom 2025并發(fā)表主題演講

    在AfricaCom 2025展會期間,華為無線網(wǎng)絡(luò)產(chǎn)品線營銷副總裁陳實出席以“推動智能連接,實現(xiàn)商業(yè)成功”為主題的MBB峰會,并發(fā)表“創(chuàng)新開啟非洲移動產(chǎn)業(yè)黃金十年”主題演講,以“新流量、新體驗、新商業(yè)、新聯(lián)接、新節(jié)能”五大場景化創(chuàng)新,攜手產(chǎn)業(yè)解鎖增長新動能,助力非洲移動
    的頭像 發(fā)表于 11-12 11:26 ?1112次閱讀

    測量誤差溯源:系統(tǒng)誤差與隨機(jī)誤差的數(shù)學(xué)建模與分離方法

    校準(zhǔn)不當(dāng)或環(huán)境因素,具有重復(fù)性;而隨機(jī)誤差則由隨機(jī)噪聲引起,呈現(xiàn)離散分布。本文將通過數(shù)學(xué)建模揭示這些誤差的本質(zhì),并討論高效分離方法,為提升測量精度(如電流測量中的數(shù)值穩(wěn)定性)提供理論支持。接下來,我們將深入探討建模
    的頭像 發(fā)表于 07-25 09:36 ?1464次閱讀

    多溫區(qū)可變建模的SMT回流焊溫度曲線智能仿真方法研究

    基于多溫區(qū)可變建模理念,開發(fā)了套先進(jìn)的“SMT焊溫度曲線智能仿真系統(tǒng)”。系統(tǒng)充分考慮不同回流爐結(jié)構(gòu)中溫區(qū)數(shù)量的多樣性,采用動態(tài)建模方法,實現(xiàn)溫區(qū)數(shù)量的靈活配置與
    的頭像 發(fā)表于 07-17 10:20 ?822次閱讀
    多溫區(qū)可變<b class='flag-5'>建模</b>的SMT回流焊溫度曲線智能仿真<b class='flag-5'>方法</b>研究

    工業(yè)RTU會用到哪些芯片

    工業(yè)RTU(遠(yuǎn)程終端單元)通常會用到處理器芯片、通信芯片、數(shù)據(jù)采集芯片、存儲芯片和電源管理芯片等。
    的頭像 發(fā)表于 07-05 09:15 ?874次閱讀

    VirtualLab Fusion應(yīng)用:多反射系統(tǒng)的非序列建模

    嗎,還是向后反射也很有趣?)增強(qiáng)了方法的靈活性,使您能夠獲得盡可能準(zhǔn)確和快速的結(jié)果。 我們以兩不同的場景為例演示了這概念。首先,我們展示了赫里奧特池的情況,這是一種充滿弱吸收氣體的
    發(fā)表于 06-12 08:49

    VirtualLab Fusion應(yīng)用:Herriott池的建模

    摘要 在氣體光譜學(xué)中,為了獲得足夠靈敏的吸收測量,通常要求具有較長的光程長度。充氣體積包裹在反射鏡之間的多通道單元是滿足這要求的一種方式,同時在途中控制光束發(fā)散,避免了對超大設(shè)備的需求
    發(fā)表于 06-11 08:52

    SOLIDWORKS建模秘籍——必學(xué)的五個草圖與建模技巧

    SOLIDWORKS作為款功能強(qiáng)大的三維CAD軟件,廣泛應(yīng)用于各種設(shè)計和產(chǎn)品開發(fā)領(lǐng)域。掌握SOLIDWORKS的草圖與建模技巧,能夠顯著提升設(shè)計效率,減少錯誤,并快速將創(chuàng)意轉(zhuǎn)化為現(xiàn)實。以下是五個必學(xué)的SOLIDWORKS草圖與建模
    的頭像 發(fā)表于 05-26 13:17 ?1458次閱讀
    SOLIDWORKS<b class='flag-5'>建模</b>秘籍——必學(xué)的五個草圖與<b class='flag-5'>建模</b>技巧

    車用鋰離子電池機(jī)理建模與并聯(lián)模組不致性研究

    車用鋰離子電池機(jī)理建模與并聯(lián)模組不致性研究
    發(fā)表于 05-16 21:02
    吕梁市| 金塔县| 霍林郭勒市| 宽城| 从化市| 斗六市| 马鞍山市| 盘山县| 彩票| 德令哈市| 乌海市| 伊宁县| 晴隆县| 淮阳县| 天镇县| 和平区| 都兰县| 盖州市| 瓮安县| 海伦市| 沧源| 沂水县| 曲麻莱县| 普兰店市| 天气| 舞阳县| 平利县| 湾仔区| 凤翔县| 隆子县| 房产| 鄂托克前旗| 黄陵县| 扶风县| 旬阳县| 温宿县| 阿鲁科尔沁旗| 鹿邑县| 横山县| 灌云县| 陇西县|