包含hmm的python實現的詞條

本文目錄一覽:

Python hmmlearn中的混淆矩陣是怎麼表示的

hmmlearn這個庫有三種模型,分別是Gaussian,Multinomial和GMMHMM。這三種模型對應的就是三種emission matrix(即混淆矩陣,也就是隱狀態到觀察態的概率)。Gaussian就是說混淆矩陣是一個高斯分布,即觀察態是連續的。Multinomiual就是說混淆矩陣事一個Multibimiual distribution,即觀察態勢離散的。GMMHMM則是說混淆矩陣是遵循gaussinan mixture 分布,也是連續的。

題主問如何把混淆矩陣輸入到模型裡面。首先你要確定你的混淆矩陣的類型。對於Gaussian類型,就是把你希望的 mean和variance值放到模型裡面。我就直接把文檔裡面的例子搬過來,例子里是建立了一個高斯分布的隱馬爾科夫模型。

import numpy as np

from hmmlearn import hmm

#一個隱馬爾科夫模型由(p向量,狀態轉移矩陣,混淆矩陣)來定義。

startprob = np.array([0.6, 0.3, 0.1])

# 定義初始狀態的概率

transmat = np.array([[0.7, 0.2, 0.1], [0.3, 0.5, 0.2], [0.3, 0.3, 0.4]])#定義轉移矩陣的概率

means = np.array([[0.0, 0.0], [3.0, -3.0], [5.0, 10.0]])

#定義混淆矩陣的均值

covars = np.tile(np.identity(2), (3, 1, 1))# 定義混淆矩陣的方差

model = hmm.GaussianHMM(3, “full”, startprob, transmat)# 定義一個混淆矩陣為高斯分布的隱馬爾科夫模型。 這裡『full』的意思就是說你輸入的方差矩陣每個元素都給出了,不是一個只是對角線上的元素為0的矩陣

model.means_ = means

model.covars_ = covars#把你希望的均值方差輸入你定義的模型裡面,到此你就把混淆矩陣輸入進模型了

X, Z = model.sample(100)

對於Multinomial 和 GMM,我還沒用,不過Multinomial應該是需要你自己手動輸入隱狀態到觀察態的概率的,而GMM應該是和Gaussian類型類似,只是需要多輸入一個權重因子。

對於第二個問題,covariance_type意思是你的混淆矩陣的covariance matrix是什麼類型,比如若只是對角線上的元素不為0,則把covariance_type設為『diag』。

python中怎樣處理漢語的同義詞用結巴分詞

python中文分詞:結巴分詞

中文分詞是中文文本處理的一個基礎性工作,結巴分詞利用進行中文分詞。其基本實現原理有三點:

基於Trie樹結構實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖(DAG)

採用了動態規劃查找最大概率路徑, 找出基於詞頻的最大切分組合

對於未登錄詞,採用了基於漢字成詞能力的HMM模型,使用了Viterbi演算法

安裝(Linux環境)

下載工具包,解壓後進入目錄下,運行:python setup.py install

模式

默認模式,試圖將句子最精確地切開,適合文本分析

全模式,把句子中所有的可以成詞的詞語都掃描出來,適合搜索引擎

介面

組件只提供jieba.cut 方法用於分詞

cut方法接受兩個輸入參數:

第一個參數為需要分詞的字元串

cut_all參數用來控制分詞模式

待分詞的字元串可以是gbk字元串、utf-8字元串或者unicode

jieba.cut返回的結構是一個可迭代的generator,可以使用for循環來獲得分詞後得到的每一個詞語(unicode),也可以用list(jieba.cut(…))轉化為list

實例

#! -*- coding:utf-8 -*-

import jieba

seg_list = jieba.cut(“我來到北京清華大學”, cut_all = True)

print “Full Mode:”, ‘ ‘.join(seg_list)

seg_list = jieba.cut(“我來到北京清華大學”)

print “Default Mode:”, ‘ ‘.join(seg_list)

Python 畫好看的雲詞圖

詞雲圖是數據分析中比較常見的一種可視化手段。詞雲圖,也叫文字雲,是對文本中出現頻率較高的 關鍵詞 予以視覺化的展現,出現越多的詞,在詞雲圖中展示越顯眼。詞雲圖過濾掉大量低頻低質的文本信息,因此只要一眼掃過文本就可 領略文章主旨 。

例如?上面這張圖,看一眼就知道肯定是新華網的新聞。

那生成一張詞雲圖的主要步驟有哪些?這裡使用 Python 來實現,主要分三步:

首先是「結巴」中文分詞 jieba 的安裝。

對於英文文本,word_cloud 可以直接對文本源生成詞雲圖。但是對中文的支持沒有那麼給力,所以需要先使用 jieba 對中文文本進行分詞,把文章變成詞語,然後再生成詞雲圖。例如:

jieba.cut 分詞:方法接受三個輸入參數,sentence 需要分詞的字元串;cut_all 用來控制是否採用全模式;HMM 用來控制是否使用 HMM 模型。

jieba.cut_for_search 分詞:方法接受兩個參數,sentence 需要分詞的字元串;是否使用 HMM 模型。該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細。

jieba.analyse.textrank 使用 TextRank 演算法從句子中提取關鍵詞。

然後安裝 wordcloud 詞雲圖庫。

如果執行上面命令後,顯示 success,那麼恭喜你,安裝成功了。

我就遇到了 Failed building wheel for wordcloud 的錯誤。於是先安裝 xcode-select, 再安裝 wordcloud 即可(無需安裝 Xcode)。

wordcloud 庫把詞雲當作一個 WordCloud 對象,wordcloud.WordCloud() 代表一個文本對應的詞雲,可以根據文本中詞語出現的頻率等參數繪製詞雲,繪製詞雲的形狀、尺寸和顏色。

1、首先導入文本數據並進行簡單的文本處理

2、分詞

3、設置遮罩

注意:

1、默認字體不支持中文,如果需要顯示中文,需要設置中文字體,否則會亂碼。

2、設置遮罩時,會自動將圖片非白色部分填充,且圖片越清晰,運行速度越快

其中 WordCloud 是雲詞圖最重要的對象,其主要參數描述如下:

效果如下圖:

上小結是將文章中所有內容進行分詞,輸出了所有詞,但很多時候,我們有進一步的需求。例如:

1、只需要前 100 個關鍵詞就夠了。

2、不需要五顏六色的詞語,應與遮罩圖片顏色一致。

100個關鍵詞,我們在分詞時使用 TextRank 演算法從句子中提取關鍵詞。

遮罩顏色可通過設置 WordCloud 的 color_func 屬性。

最終效果如下:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192126.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-30 15:14
下一篇 2024-11-30 15:14

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論