国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

使用馬爾可夫鏈構建文本生成器

人工智能 機器學習
本文中將介紹一個流行的機器學習項目——文本生成器,你將了解如何構建文本生成器,并了解如何實現馬爾可夫鏈以實現更快的預測模型。

本文中將介紹一個流行的機器學習項目——文本生成器,你將了解如何構建文本生成器,并了解如何實現馬爾可夫鏈以實現更快的預測模型。

圖片

文本生成器簡介

文本生成在各個行業都很受歡迎,特別是在移動、應用和數據科學領域。甚至新聞界也使用文本生成來輔助寫作過程。

在日常生活中都會接觸到一些文本生成技術,文本補全、搜索建議,Smart Compose,聊天機器人都是應用的例子,

本文將使用馬爾可夫鏈構建一個文本生成器。這將是一個基于字符的模型,它接受鏈的前一個字符并生成序列中的下一個字母。

通過使用樣例單詞訓練我們的程序,文本生成器將學習常見的字符順序模式。然后,文本生成器將把這些模式應用到輸入,即一個不完整的單詞,并輸出完成該單詞的概率最高的字符。

文本生成是自然語言處理的一個分支,它根據之前觀察到的語言模式預測并生成下一個字符。

在沒有機器學習之前,NLP是通過創建一個包含英語中所有單詞的表,并將傳遞的字符串與現有的單詞匹配來進行文字生成的。這種方法有兩個問題。

  • 搜索成千上萬個單詞會非常慢。
  • 生成器只能補全它以前見過的單詞。

機器學習和深度學習的出現,使得NLP允許我們大幅減少運行時并增加通用性,因為生成器可以完成它以前從未遇到過的單詞。如果需要NLP可以擴展到預測單詞、短語或句子!

對于這個項目,我們將專門使用馬爾可夫鏈來完成。馬爾可夫過程是許多涉及書面語言和模擬復雜分布樣本的自然語言處理項目的基礎。

馬爾可夫過程是非常強大的,以至于它們只需要一個示例文檔就可以用來生成表面上看起來真實的文本。

什么是馬爾可夫鏈?

馬爾可夫鏈是一種隨機過程,它為一系列事件建模,其中每個事件的概率取決于前一個事件的狀態。該模型有一組有限的狀態,從一個狀態移動到另一個狀態的條件概率是固定的。

每次轉移的概率只取決于模型的前一個狀態,而不是事件的整個歷史。

例如,假設想要構建一個馬爾可夫鏈模型來預測天氣。

在這個模型中我們有兩種狀態,晴天或雨天。如果我們今天一直處于晴朗的狀態,明天就有更高的概率(70%)是晴天。雨也是如此;如果已經下過雨,很可能還會繼續下雨。

但是天氣會改變狀態是有可能的(30%),所以我們也將其包含在我們的馬爾可夫鏈模型中。

馬爾可夫鏈是我們這個文本生成器的完美模型,因為我們的模型將僅使用前一個字符預測下一個字符。使用馬爾可夫鏈的優點是,它是準確的,內存少(只存儲1個以前的狀態)并且執行速度快。

文本生成的實現

這里將通過6個步驟完成文本生成器:

  1. 生成查找表:創建表來記錄詞頻
  2. 將頻率轉換為概率:將我們的發現轉換為可用的形式
  3. 加載數據集:加載并利用一個訓練集
  4. 構建馬爾可夫鏈:使用概率為每個單詞和字符創建鏈
  5. 對數據進行采樣:創建一個函數對語料庫的各個部分進行采樣
  6. 生成文本:測試我們的模型

1、生成查找表

首先,我們將創建一個表,記錄訓練語料庫中每個字符狀態的出現情況。從訓練語料庫中保存最后的' K '字符和' K+1 '字符,并將它們保存在一個查找表中。

例如,想象我們的訓練語料庫包含,“the man was, they, then, the, the”。那么單詞的出現次數為:

  • “the” — 3
  • “then” — 1
  • “they” — 1
  • “man” — 1

下面是查找表中的結果:

圖片

在上面的例子中,我們取K = 3,表示將一次考慮3個字符,并將下一個字符(K+1)作為輸出字符。在上面的查找表中將單詞(X)作為字符,將輸出字符(Y)作為單個空格(" "),因為第一個the后面沒有單詞了。此外還計算了這個序列在數據集中出現的次數,在本例中為3次。

這樣就生成了語料庫中的每個單詞的數據,也就是生成所有可能的X和Y對。

下面是我們如何在代碼中生成查找表:

 def generateTable(data,k=4):

T = {}
for i in range(len(data)-k):
X = data[i:i+k]
Y = data[i+k]
#print("X %s and Y %s "%(X,Y))
if T.get(X) is None:
T[X] = {}
T[X][Y] = 1
else:
if T[X].get(Y) is None:
T[X][Y] = 1
else:
T[X][Y] += 1
return T
T = generateTable("hello hello helli")
print(T)

#{'llo ': {'h': 2}, 'ello': {' ': 2}, 'o he': {'l': 2}, 'lo h': {'e': 2}, 'hell': {'i': 1, 'o': 2}, ' hel': {'l': 2}}

代碼的簡單解釋:

在第3行,創建了一個字典,它將存儲X及其對應的Y和頻率值。第9行到第17行,檢查X和Y的出現情況,如果查找字典中已經有X和Y對,那么只需將其增加1。

2、將頻率轉換為概率

一旦我們有了這個表和出現的次數,就可以得到在給定x出現之后出現Y的概率。公式是:

例如如果X = the, Y = n,我們的公式是這樣的:

當X =the時Y = n的頻率:2,表中總頻率:8,因此:P = 2/8= 0.125= 12.5%

以下是我們如何應用這個公式將查找表轉換為馬爾科夫鏈可用的概率:

 def convertFreqIntoProb(T):    
for kx in T.keys():
s = float(sum(T[kx].values()))
for k in T[kx].keys():
T[kx][k] = T[kx][k]/s

return T

T = convertFreqIntoProb(T)
print(T)
#{'llo ': {'h': 1.0}, 'ello': {' ': 1.0}, 'o he': {'l': 1.0}, 'lo h': {'e': 1.0}, 'hell': {'i': 0.3333333333333333, 'o': 0.6666666666666666}, ' hel': {'l': 1.0}}

簡單解釋:

把一個特定鍵的頻率值加起來,然后把這個鍵的每個頻率值除以這個加起來的值,就得到了概率。

3、加載數據集

接下來將加載真正的訓練語料庫。可以使用任何想要的長文本(.txt)文檔。

為了簡單起見將使用一個政治演講來提供足夠的詞匯來教授我們的模型。

 text_path = "train_corpus.txt"
def load_text(filename):
with open(filename,encoding='utf8') as f:
return f.read().lower()

text = load_text(text_path)
print('Loaded the dataset.')

這個數據集可以為我們這個樣例的項目提供足夠的事件,從而做出合理準確的預測。與所有機器學習一樣,更大的訓練語料庫將產生更準確的預測。

4、建立馬爾可夫鏈

讓我們構建馬爾可夫鏈,并將概率與每個字符聯系起來。這里將使用在第1步和第2步中創建的generateTable()和convertFreqIntoProb()函數來構建馬爾可夫模型。

 def MarkovChain(text,k=4):
T = generateTable(text,k)
T = convertFreqIntoProb(T)
return T

model = MarkovChain(text)

第1行,創建了一個方法來生成馬爾可夫模型。該方法接受文本語料庫和K值,K值是告訴馬爾可夫模型考慮K個字符并預測下一個字符的值。第2行,通過向方法generateTable()提供文本語料庫和K來生成查找表,該方法是我們在上一節中創建的。第3行,使用convertFreqIntoProb()方法將頻率轉換為概率值,該方法也是我們在上一課中創建的。

5、文本采樣

創建一個抽樣函數,它使用未完成的單詞(ctx)、第4步中的馬爾可夫鏈模型(模型)和用于形成單詞基的字符數量(k)。

我們將使用這個函數對傳遞的上下文進行采樣,并返回下一個可能的字符,并判斷它是正確的字符的概率。

 import numpy as np

def sample_next(ctx,model,k):

ctx = ctx[-k:]
if model.get(ctx) is None:
return " "
possible_Chars = list(model[ctx].keys())
possible_values = list(model[ctx].values())

print(possible_Chars)
print(possible_values)

return np.random.choice(possible_Chars,p=possible_values)

sample_next("commo",model,4)

#['n']
#[1.0]

代碼解釋:

函數sample_next接受三個參數:ctx、model和k的值。

ctx是用來生成一些新文本的文本。但是這里只有ctx中的最后K個字符會被模型用來預測序列中的下一個字符。例如,我們傳遞common,K = 4,模型用來生成下一個字符的文本是是ommo,因為馬爾可夫模型只使用以前的歷史。

在第 9 行和第 10 行,打印了可能的字符及其概率值,因為這些字符也存在于我們的模型中。我們得到下一個預測字符為n,其概率為1.0。因為 commo 這個詞在生成下一個字符后更可能是更常見的

在第12行,我們根據上面討論的概率值返回一個字符。

6、生成文本

最后結合上述所有函數來生成一些文本。

def generateText(starting_sent,k=4,maxLen=1000):

sentence = starting_sent
ctx = starting_sent[-k:]

for ix in range(maxLen):
next_prediction = sample_next(ctx,model,k)
sentence += next_prediction
ctx = sentence[-k:]
return sentence

print("Function Created Successfully!")

text = generateText("dear",k=4,maxLen=2000)
print(text)

結果如下:

dear country brought new consciousness. i heartily great service of their lives, our country, many of tricoloring a color flag on their lives independence today.my devoted to be oppression of independence.these day the obc common many country, millions of oppression of massacrifice of indian whom everest.
my dear country is not in the sevents went was demanding and nights by plowing in the message of the country is crossed, oppressed, women, to overcrowding for years of the south, it is like the ashok chakra of constitutional states crossed, deprived, oppressions of freedom, i bow my heart to proud of our country.my dear country, millions under to be a hundred years of the south, it is going their heroes.

上面的函數接受三個參數:生成文本的起始詞、K的值以及需要文本的最大字符長度。運行代碼將得到一個以“dear”開頭的2000個字符的文本。

雖然這段講話可能沒有太多意義,但這些詞都是完整的,通常模仿了單詞中熟悉的模式。

接下來要學什么

這是一個簡單的文本生成項目。通過這個項目可以了解自然語言處理和馬爾可夫鏈實際工作模式,可以在繼續您的深度學習之旅時使用。

本文只是為了介紹馬爾可夫鏈來進行的實驗項目,因為它不會再實際應用中起到任何的作用,如果你想獲得更好的文本生成效果,那么請學習GPT-3這樣的工具。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2024-12-23 08:00:00

2009-10-12 13:10:58

馬爾可夫鏈

2024-03-28 14:29:52

人工智能

2018-03-27 13:33:48

百度

2025-12-16 09:09:35

2024-02-23 15:53:13

OpenAISora人工智能

2016-01-08 10:55:31

PHP莫斯電碼生成器

2016-12-21 10:55:55

PHP莫斯電碼生成器

2022-12-15 08:49:58

ReactQR生成器

2024-03-07 20:35:20

微軟人工智能

2021-12-10 09:45:19

生成器配置代碼

2022-10-17 18:29:55

2022-02-15 10:30:58

UUID

2022-08-28 19:10:37

JavaScript二維碼源碼

2025-01-23 08:36:27

CSS開發工具

2015-08-25 11:07:58

2017-07-01 16:02:39

分布式ID生成器

2021-04-22 21:15:38

Generator函數生成器

2011-12-23 13:42:05

JavaScript

2010-09-07 16:31:17

SQL語句insert
點贊
收藏

51CTO技術棧公眾號

顶级嫩模精品视频在线看| 国产精品色网| 亚洲精品久久嫩草网站秘色| 精品999在线播放| 欧美一区二区三区免费观看| 国产精品福利视频| 日韩免费影院| 亚洲免费精品| 亚洲一区二区三区精品在线| 日韩av在线网| caoporn国产精品免费公开| 欧美aaa一级| 网友自拍亚洲| 美女黄色成人网| 欧美日韩精品是欧美日韩精品| 国产精品一区二区三区在线播放| 黄色成人在线看| 日本在线播放| 另类图片国产| 欧美午夜片在线免费观看| 久久久久久这里只有精品| 国产精品videossex国产高清| 宅男网站在线免费观看| 亚洲裸体俱乐部裸体舞表演av| 亚洲品质自拍视频网站| a级国产乱理论片在线观看99| 在线三级av| 欧美日韩日本国产亚洲在线| 亚洲免费色视频| 成人av电影天堂| 亚洲精华国产| 日韩av自拍| 久久久亚洲欧洲日产国码αv| 51精品在线观看| 久久久久免费精品| 玖玖玖电影综合影院| 午夜视频在线观看一区二区三区 | 精品一二三四五区| 日韩黄色三级| 中文字幕一区在线| 国产乱人伦真实精品视频| 天堂а√在线8种子蜜桃视频 | 91色九色蝌蚪| 91精品国产高清久久久久久久久| 99热免费观看| 97精品一区二区| 日本精品视频一区二区三区| 成人免费看片视频| 成人黄色在线| 最新热久久免费视频| 97av在线视频| 日本亚洲精品| 久久久综合视频| 91精品久久久久久久久| 欧美高清视频| 久久久久国产成人精品亚洲午夜| 日韩免费av片在线观看| 国产在线播放av| 97精品国产97久久久久久久久久久久 | 欧美丰满老妇| 亚洲国产精品电影| 一卡二卡三卡视频| 亚洲伊人春色| 久久精品人人爽| 男人午夜天堂| 欧美激情在线| 欧美第一黄网免费网站| 91久久影院| 毛片不卡一区二区| 国产精品三级网站| 精品三区视频| 亚洲妇熟xx妇色黄| 免费看成人av| 成年人深夜视频| 日日碰狠狠丁香久燥| 日韩在线黄色| 欧美精品xxxxbbbb| 成人一对一视频| 久久综合av| 亚洲色图50p| 91官网在线| 亚洲午夜羞羞片| 日日碰狠狠添天天爽超碰97| 日韩国产欧美视频| 成人做爽爽免费视频| 欧美色婷婷久久99精品红桃| 亚洲人成电影在线播放| 国产高清美女一级毛片久久| 久久久久久久久久久久久女国产乱 | 国产色一区二区| 尤物av无码色av无码| 性一交一乱一区二区洋洋av| 国产精品久久久久久久久久三级 | 精品视频1区2区3区| 日韩欧美黄色大片| 日韩中文字幕区一区有砖一区| 91aaaa| 91精品天堂福利在线观看| 日本高清不卡的在线| 日本一区福利在线| 日韩视频免费在线观看| 第一福利在线视频| 日韩精品在线观| av网站观看| 黄色欧美日韩| 成人女保姆的销魂服务| 精品免费一区二区| 欧美一区二粉嫩精品国产一线天| 国产91一区| 91日本在线观看| 成人在线电影在线观看视频| 久久久久久亚洲精品不卡| 青草伊人久久| 久久精品亚洲94久久精品| 国产精品第一| 日本高清视频一区| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲最新在线| 国产午夜精品久久| 360天大佬第二季在线观看| 亚洲第一福利一区| 国产日本在线视频| 日韩www在线| 亚洲精品福利| 欧美激情奇米色| 精品国产91| 你懂的视频在线一区二区| 免费精品视频在线| 成年人午夜视频在线观看| 国产精品欧美一级免费| eeuss影院在线播放| 久久久久久久久久久免费| 欧美深夜视频| 国产日韩在线看片| 在线欧美亚洲| 色噜噜狠狠色综合网| 久久综合资源网| 日韩三级电影网| 日韩一区二区影院| 成人午夜在线影视| 亚洲精品久久在线| h片在线观看视频免费| 中日韩美女免费视频网址在线观看| 精品三级国产| 亚洲人a成www在线影院| 午夜日韩成人影院| 日韩毛片中文字幕| 在线看片福利| www日韩欧美| 成人免费毛片嘿嘿连载视频…| 日韩毛片在线观看| 高清av一区二区三区| 国产精品www网站| 国产精品magnet| 亚洲午夜精品福利| 亚洲人成小说网站色在线| 国产剧情在线| 操91在线视频| 日韩精品国产精品| 亚洲一级片网站| 91精品国产入口| 久久久久毛片免费观看| 久久综合福利| 亚洲精品乱码久久久久久久久| 少妇精品视频一区二区免费看| 欧美最顶级的aⅴ艳星| 日韩中文字幕区一区有砖一区| 91大神影片| 亚洲深夜福利在线| 国产精品婷婷| 在线免费黄色毛片| 一区二区三区黄色| 午夜电影亚洲| 日本搞黄视频| 欧美成人精品h版在线观看| 久热精品视频| 欧美videos另类精品| 亚洲一区中文字幕在线观看| 国产精品欧美一区二区三区| 色偷偷色偷偷色偷偷在线视频| caoporn国产精品免费公开| 一区二区三区国产豹纹内裤在线 | 亚洲欧美另类中文字幕| 亚洲精品偷拍| 李宗瑞系列合集久久| 91最新国产视频| 日韩久久一区二区| 日韩在线电影| 18黄暴禁片在线观看| 日韩精品在线免费| 免费成人av在线播放| 成人国产综合| 午夜精品久久久久久久无码| 国产视频亚洲视频| 久草这里只有精品视频| 竹内纱里奈兽皇系列在线观看| 婷婷五月综合缴情在线视频| 亚洲精品一区中文| av在线综合网| 欧美影院视频|