中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

學(xué)生為學(xué)校做網(wǎng)站谷歌廣告代理商

學(xué)生為學(xué)校做網(wǎng)站,谷歌廣告代理商,網(wǎng)站收索功能怎么做,長沙芙蓉區(qū)網(wǎng)頁設(shè)計(jì)培訓(xùn)大家好,我是微學(xué)AI,今天給大家介紹一下自然語言處理實(shí)戰(zhàn)項(xiàng)目13-基于GRU模型與NER的關(guān)鍵詞抽取模型訓(xùn)練全流程。本文主要介紹關(guān)鍵詞抽取樣例數(shù)據(jù)、GRU模型模型構(gòu)建與訓(xùn)練、命名實(shí)體識(shí)別(NER)、模型評(píng)估與應(yīng)用,項(xiàng)目的目標(biāo)是通過訓(xùn)練一個(gè)GRU模型…

大家好,我是微學(xué)AI,今天給大家介紹一下自然語言處理實(shí)戰(zhàn)項(xiàng)目13-基于GRU模型與NER的關(guān)鍵詞抽取模型訓(xùn)練全流程。本文主要介紹關(guān)鍵詞抽取樣例數(shù)據(jù)、GRU模型模型構(gòu)建與訓(xùn)練、命名實(shí)體識(shí)別(NER)、模型評(píng)估與應(yīng)用,項(xiàng)目的目標(biāo)是通過訓(xùn)練一個(gè)GRU模型來實(shí)現(xiàn)準(zhǔn)確和魯棒的關(guān)鍵詞抽取,并通過集成NER模型提高關(guān)鍵詞抽取的效果。這個(gè)項(xiàng)目提供了一個(gè)完整的流程,可以根據(jù)實(shí)際需求進(jìn)行調(diào)整和擴(kuò)展。

目錄:
1.GRU模型介紹
2.NER方式提取關(guān)鍵詞
3.NER方式的代碼實(shí)現(xiàn)
4.總結(jié)

1.GRU模型介紹

GRU是一種遞歸神經(jīng)網(wǎng)絡(luò)的變種,用于處理序列數(shù)據(jù)的建模任務(wù)。與傳統(tǒng)的RNN結(jié)構(gòu)相比,GRU引入了門控機(jī)制,以解決長期依賴問題,并減輕了梯度消失和爆炸問題。

GRU模型的主要組成部分包括:

1.輸入門(Input Gate):決定了輸入信息中有哪些部分需要被更新到隱藏狀態(tài)。它通過一個(gè)sigmoid函數(shù)將輸入數(shù)據(jù)與先前的隱藏狀態(tài)進(jìn)行組合,輸出一個(gè)介于0和1之間的值,表示更新的權(quán)重。

2.更新門(Update Gate):控制是否更新隱藏狀態(tài)的值。它通過一個(gè)sigmoid函數(shù)評(píng)估當(dāng)前輸入和先前隱藏狀態(tài),以確定是否將新信息與之前的隱藏狀態(tài)進(jìn)行組合。

3.重置門(Reset Gate):評(píng)估當(dāng)前輸入和先前隱藏狀態(tài),決定隱藏狀態(tài)中要保留的信息和要忽略的信息。該門可以通過一個(gè)sigmoid函數(shù)和一個(gè)tanh函數(shù)獲得兩個(gè)不同的輸出,然后將它們相乘,得到最終的重置門結(jié)果。

4.隱藏狀態(tài)(Hidden State):用于存儲(chǔ)序列中的信息,并在每個(gè)時(shí)間步傳遞和更新。隱藏狀態(tài)根據(jù)輸入和先前的隱藏狀態(tài)進(jìn)行更新。通過使用輸入門和重置門對(duì)先前隱藏狀態(tài)進(jìn)行加權(quán)組合,然后使用tanh函數(shù)得到新的候選隱藏狀態(tài)。最后,更新門確定如何將新的候選隱藏狀態(tài)與先前的隱藏狀態(tài)進(jìn)行組合來獲得最終的隱藏狀態(tài)。

GRU模型在序列建模任務(wù)中具有以下優(yōu)勢:

處理長期依賴:GRU模型通過使用門控機(jī)制可以選擇性地更新和保留序列中的信息,從而更好地處理長期依賴關(guān)系。

減輕梯度問題:由于門控機(jī)制的存在,GRU模型能夠有效地減輕梯度消失和梯度爆炸等問題,提高模型的訓(xùn)練效果和穩(wěn)定性。

參數(shù)較少:相比長短時(shí)記憶網(wǎng)絡(luò)(LSTM),GRU模型的參數(shù)更少,更容易訓(xùn)練和調(diào)整。
在這里插入圖片描述

2.NER方式提取關(guān)鍵詞

NER可以用于關(guān)鍵詞抽取,通過識(shí)別文本中的命名實(shí)體,從中提取出關(guān)鍵詞。與傳統(tǒng)的關(guān)鍵詞抽取方法相比,NER具有以下優(yōu)勢:

1.精確性:NER可以準(zhǔn)確定位文本中的具體實(shí)體,提供更精確的關(guān)鍵詞抽取結(jié)果。

2.上下文理解:NER不僅僅是簡單地提取詞語,還能夠根據(jù)上下文理解實(shí)體的含義,提高關(guān)鍵詞抽取的準(zhǔn)確性。

3.適應(yīng)多領(lǐng)域:由于NER對(duì)上下文的理解能力,它可以用于不同領(lǐng)域的關(guān)鍵詞抽取,如新聞、醫(yī)學(xué)、法律等。

NER的工作流程通常包括以下步驟:

1.數(shù)據(jù)準(zhǔn)備:收集并準(zhǔn)備標(biāo)注好的訓(xùn)練數(shù)據(jù),其中標(biāo)注好的數(shù)據(jù)應(yīng)包含實(shí)體的起始位置和對(duì)應(yīng)的標(biāo)簽。

2.特征提取:從文本中選擇適當(dāng)?shù)奶卣鱽肀硎緦?shí)體,如詞性、上下文等。這些特征通常用于訓(xùn)練模型。

3.模型訓(xùn)練:使用標(biāo)注好的訓(xùn)練數(shù)據(jù),訓(xùn)練一個(gè)機(jī)器學(xué)習(xí)模型,如條件隨機(jī)場(Conditional Random Field, CRF)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks, RNN)等。

4.標(biāo)注預(yù)測:使用訓(xùn)練好的模型,對(duì)新的文本進(jìn)行預(yù)測,并標(biāo)注出實(shí)體的位置和類別。

5.后處理:根據(jù)任務(wù)需求,對(duì)NER的結(jié)果進(jìn)行后處理,如過濾掉不相關(guān)的實(shí)體、合并相鄰的實(shí)體等。

6.關(guān)鍵詞抽取:從提取出的實(shí)體中,選擇具有關(guān)鍵意義的實(shí)體作為關(guān)鍵詞。

3.NER方式的代碼實(shí)現(xiàn)

import torch
import torch.nn as nn
from torch.optim import Adam# 定義模型
class KeywordExtractor(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(KeywordExtractor, self).__init__()self.hidden_size = hidden_sizeself.embedding = nn.Embedding(input_size, hidden_size)self.gru = nn.GRU(hidden_size, hidden_size)self.linear = nn.Linear(hidden_size, output_size)def forward(self, input):embedded = self.embedding(input)output, hidden = self.gru(embedded)output = self.linear(output.view(-1, self.hidden_size))return output.view(len(input), -1, output.size(1))# 準(zhǔn)備訓(xùn)練數(shù)據(jù)
train_data = [("我 愛 北京", ["O", "O", "B-LOC"]),("張三 是 中國 人", ["B-PER", "O", "B-LOC", "O"]),("李四 是 美國 人", ["B-PER", "O", "B-LOC", "O"]),("我 來自 北京", ["O", "O", "B-LOC"]),("我 來自 廣州", ["O", "O", "B-LOC"]),("王五 去 英國 玩", ["B-PER", "O", "B-LOC", "O"]),("我 喜歡 上海", ["O", "O", "B-LOC"]),("劉東 是 北京 人", ["B-PER", "O", "B-LOC", "O"]),("李明 來自 深圳", ["B-PER", "O", "B-LOC"]),("我 計(jì)劃 去 香港 旅行", ["O", "O","O", "B-LOC", "O"]),("你 想去 法國 嗎", ["O", "O", "B-LOC", "O"]),("福州 是 你的 家鄉(xiāng) 嗎", ["B-LOC", "O", "O", "O", "O"]),("張偉 和 王芳 一起 去 新加坡", ["B-PER", "O", "B-PER", "O", "O", "B-LOC"]),# 其他訓(xùn)練樣本...
]# 構(gòu)建詞匯表
word2idx = {"<PAD>": 0, "<UNK>": 1}
tag2idx = {"O": 0, "B-LOC": 1, "B-PER":2}
for sentence, tags in train_data:for word in sentence.split():if word not in word2idx:word2idx[word] = len(word2idx)for tag in tags:if tag not in tag2idx:tag2idx[tag] = len(tag2idx)
idx2word = {idx: word for word, idx in word2idx.items()}
idx2tag = {idx: tag for tag, idx in tag2idx.items()}# 超參數(shù)
input_size = len(word2idx)
output_size = len(tag2idx)
hidden_size = 128
num_epochs = 100
batch_size = 2
learning_rate = 0.001# 實(shí)例化模型和損失函數(shù)
model = KeywordExtractor(input_size, hidden_size, output_size)
criterion = nn.CrossEntropyLoss()# 定義優(yōu)化器
optimizer = Adam(model.parameters(), lr=learning_rate)# 準(zhǔn)備訓(xùn)練數(shù)據(jù)的序列張量和標(biāo)簽張量
def prepare_sequence(seq, to_idx):idxs = [to_idx.get(token, to_idx["<UNK>"]) for token in seq.split()]return torch.tensor(idxs, dtype=torch.long)# 填充數(shù)據(jù)
def pad_sequences(data):# 計(jì)算最長句子的長度max_length = max(len(item[0].split()) for item in data)aligned_data = []for sentence, tags in data:words = sentence.split()word_s = words + ['O'] * (max_length - len(tags))sentence = ' '.join(word_s)aligned_tags = tags + ['O'] * (max_length - len(tags))aligned_data.append((sentence, aligned_tags))return aligned_data# 訓(xùn)練模型
for epoch in range(num_epochs):for i in range(0, len(train_data), batch_size):batch_data = train_data[i:i + batch_size]batch_data = pad_sequences(batch_data)inputs = torch.stack([prepare_sequence(sentence, word2idx) for sentence, _ in batch_data])targets = torch.LongTensor([tag2idx[tag] for _, tags in batch_data for tag in tags])# 前向傳播outputs = model(inputs)loss = criterion(outputs.view(-1, output_size), targets)# 反向傳播和優(yōu)化optimizer.zero_grad()loss.backward()optimizer.step()print('Epoch [{}/{}], Step [{}/{}], Loss: {:.4f}'.format(epoch + 1, num_epochs, i + 1, len(train_data) // batch_size, loss.item()))# 測試模型
test_sentence = "李明 想去 北京 游玩"
with torch.no_grad():inputs = prepare_sequence(test_sentence, word2idx).unsqueeze(0)outputs = model(inputs)_, predicted = torch.max(outputs.data, 2)tags = [idx2tag[idx.item()] for idx in predicted.squeeze()]print('輸入句子:', test_sentence)print('關(guān)鍵詞標(biāo)簽:', tags)

運(yùn)行結(jié)果:

Epoch [99/100], Step [3/6], Loss: 0.0006
Epoch [99/100], Step [5/6], Loss: 0.0002
Epoch [99/100], Step [7/6], Loss: 0.0002
Epoch [99/100], Step [9/6], Loss: 0.0006
Epoch [99/100], Step [11/6], Loss: 0.0006
Epoch [99/100], Step [13/6], Loss: 0.0009
Epoch [100/100], Step [1/6], Loss: 0.0003
Epoch [100/100], Step [3/6], Loss: 0.0006
Epoch [100/100], Step [5/6], Loss: 0.0002
Epoch [100/100], Step [7/6], Loss: 0.0002
Epoch [100/100], Step [9/6], Loss: 0.0005
Epoch [100/100], Step [11/6], Loss: 0.0006
Epoch [100/100], Step [13/6], Loss: 0.0009輸入句子: 李明 想去 北京 游玩
關(guān)鍵詞標(biāo)簽: ['B-PER', 'O', 'B-LOC', 'O']

4.總結(jié)

命名實(shí)體識(shí)別(NER)是自然語言處理中的一項(xiàng)技術(shù),目的是從文本中識(shí)別和提取出具有特定意義的命名實(shí)體。這些命名實(shí)體可以是人名、地名、組織機(jī)構(gòu)名、時(shí)間、日期等具有特定含義的詞匯。

NER的任務(wù)是將文本中的每個(gè)詞標(biāo)注為預(yù)定義的命名實(shí)體類別,常見的類別有人名(PERSON)、地名(LOCATION)、組織機(jī)構(gòu)名(ORGANIZATION)等。通過NER技術(shù),可以提取出文本中的關(guān)鍵信息,幫助理解文本的含義和上下文。

NER的核心思想是結(jié)合機(jī)器學(xué)習(xí)和自然語言處理技術(shù),利用訓(xùn)練好的模型對(duì)文本進(jìn)行分析和處理。通常使用的方法包括基于規(guī)則的方法、統(tǒng)計(jì)方法和基于機(jī)器學(xué)習(xí)的方法。其中,基于機(jī)器學(xué)習(xí)的方法在大規(guī)模標(biāo)注好的數(shù)據(jù)集上進(jìn)行訓(xùn)練,通過學(xué)習(xí)識(shí)別命名實(shí)體的模式和規(guī)律,從而提高識(shí)別的準(zhǔn)確性。

NER在實(shí)際應(yīng)用中有廣泛的應(yīng)用場景,包括信息抽取、智能搜索、問答系統(tǒng)等。通過NER技術(shù)提取出的關(guān)鍵詞可以被用于進(jìn)一步的信息處理和分析,有助于提高對(duì)文本的理解和處理效果。

總之,命名實(shí)體識(shí)別(NER)是一項(xiàng)重要的自然語言處理技術(shù),能夠從文本中提取出具有特定含義的命名實(shí)體。它在各種應(yīng)用場景中發(fā)揮著重要作用,為文本分析和信息提取提供了有力的支持。

http://www.risenshineclean.com/news/8588.html

相關(guān)文章:

  • java 制作網(wǎng)站開發(fā)莆田seo推廣公司
  • 做資源網(wǎng)站怎么不封抖音關(guān)鍵詞挖掘工具
  • 中鐵快運(yùn)關(guān)于網(wǎng)站建設(shè)企業(yè)網(wǎng)站推廣優(yōu)化公司
  • word文檔怎么做網(wǎng)站跳轉(zhuǎn)鏈接關(guān)鍵詞排名優(yōu)化官網(wǎng)
  • 哪些網(wǎng)站可以做微商品牌宣傳軟文營銷的案例
  • 用一個(gè)域名免費(fèi)做網(wǎng)站怎么做一個(gè)網(wǎng)站
  • 肇東網(wǎng)站制作廣州優(yōu)化網(wǎng)站排名
  • 商丘幼兒園網(wǎng)站建設(shè)策劃方案廊坊網(wǎng)絡(luò)推廣公司
  • 做網(wǎng)站的成本網(wǎng)站項(xiàng)目開發(fā)流程
  • 制作網(wǎng)站需要學(xué)什么軟件有哪些廣州seo服務(wù)
  • html5手機(jī)網(wǎng)站返回頂部類似58的推廣平臺(tái)有哪些平臺(tái)
  • 廈門網(wǎng)站開發(fā)網(wǎng)站建設(shè)網(wǎng)站目前病毒的最新情況
  • 國外免費(fèi)搭建網(wǎng)站源碼創(chuàng)建網(wǎng)址鏈接
  • 合肥網(wǎng)站建設(shè)多少錢自己做網(wǎng)站的軟件
  • 網(wǎng)站如何做搜索功能的深圳網(wǎng)絡(luò)seo推廣
  • 關(guān)于建設(shè)官方網(wǎng)站的申請品牌如何做推廣
  • 網(wǎng)站內(nèi)鏈符號(hào)迅雷bt磁力鏈 最好用的搜索引擎
  • 網(wǎng)站建設(shè)的重點(diǎn)零食軟文范例300字
  • 如何做網(wǎng)站的書籍百度廣告推廣怎么收費(fèi)
  • 無錫設(shè)計(jì)公司有哪些廊坊百度推廣seo
  • 越南網(wǎng)站建設(shè)營銷型網(wǎng)站重要特點(diǎn)是
  • 濰坊網(wǎng)站建設(shè)費(fèi)用十大最靠譜it培訓(xùn)機(jī)構(gòu)
  • 韓國有哪些專業(yè)做汽車的網(wǎng)站?sem代運(yùn)營公司
  • 有關(guān)做內(nèi)購的網(wǎng)站岳陽seo公司
  • 不知此網(wǎng)站枉做男人百度推廣一個(gè)月多少錢
  • c 做彩票網(wǎng)站seo關(guān)鍵詞排名優(yōu)化系統(tǒng)源碼
  • 網(wǎng)站廣告設(shè)計(jì)怎么做精準(zhǔn)推廣的渠道有哪些
  • 企業(yè)郵箱怎么注冊?廣州王牌seo
  • 什么網(wǎng)站不用備案外鏈網(wǎng)址
  • qt做網(wǎng)站界面購物鏈接