91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 33.6MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-16
  • 語言: 其他
  • 標簽:

資源簡介

基于BiLSTM + Attention實現的簡單的關系抽取模型,代碼效果并不十分理想,代碼上傳目的是為大家提供基本的實現思路。

資源截圖

代碼片段和文件信息

import?torch
import?torch.nn?as?nn
import?torch.nn.functional?as?F
torch.manual_seed(1)??#為CPU設置種子用于生成隨機數,以使得結果是確定的

class?BiLSTM_ATT(nn.Module):
????def?__init__(selfinput_sizeoutput_sizeconfigpre_embedding):
????????super(BiLSTM_ATTself).__init__()
????????self.batch?=?config[‘BATCH‘]

????????self.input_size?=?input_size
????????self.embedding_dim?=?config[‘embedDING_DIM‘]?#?詞向量長度
????????
????????self.hidden_dim?=?config[‘HIDDEN_DIM‘]
????????self.tag_size?=?output_size?#?最終結果狀態數,即分類數
????????
????????self.pos_size?=?config[‘POS_SIZE‘]
????????self.pos_dim?=?config[‘POS_DIM‘]?#位置編碼向量長度
????????
????????self.pretrained?=?config[‘pretrained‘]

????????if?self.pretrained:
????????????#?freeze?=?False?表示訓練過程中會更新這些詞向量,默認為True?也就是不更新
????????????self.word_embeds?=?nn.embedding.from_pretrained(torch.FloatTensor(pre_embedding)freeze=False)
????????else:
????????????self.word_embeds?=?nn.embedding(self.input_sizeself.embedding_dim)

????????self.pos1_embeds?=?nn.embedding(self.pos_sizeself.pos_dim)?#?實體1的embedding
????????self.pos2_embeds?=?nn.embedding(self.pos_sizeself.pos_dim)?#?實體2的embedding
????????self.dense?=?nn.Linear(self.hidden_dimself.tag_sizebias=True)
????????self.relation_embeds?=?nn.embedding(self.tag_sizeself.hidden_dim)

????????‘‘‘
????????????LSTM?輸入變為?pos1_dim?+?pos2_dim?+?embedding_dim
????????????LSTM的output?保存了最后一層,每個time?step的輸出h,如果是雙向LSTM,每個time?step的輸出h?=?[h正向?h逆向]
????????????TODO?這里hidden_size=hidden_dim/2?保證了后面BiLSTM輸出的維度為(seq_lenbatch_sizehidden_dim)
????????????注意hidden_size?與?hidden_dim的區分
????????????hidden_size是單向的LSTM輸出的維度
????????‘‘‘
????????self.lstm?=?nn.LSTM(input_size=self.embedding_dim+self.pos_dim*2hidden_size=self.hidden_dim//2num_layers=1?bidirectional=True)
????????self.hidden2tag?=?nn.Linear(self.hidden_dimself.tag_size)

????????‘‘‘
????????????在嵌入層,LSTM層和倒數第二層上使用drop_out。?
????????‘‘‘
????????self.dropout_emb?=?nn.Dropout(p=0.5)
????????self.dropout_lstm?=?nn.Dropout(p=0.5)
????????self.dropout_att?=?nn.Dropout(p=0.5)
????????
????????self.hidden?=?self.init_hidden()

????????#?nn.Parameter?類型表示會算入計算圖內進行求梯度
????????self.att_weight?=?nn.Parameter(torch.randn(self.batch1self.hidden_dim))
????????self.relation_bias?=?nn.Parameter(torch.randn(self.batchself.tag_size1))
????????
????def?init_hidden(self):
????????return?torch.randn(2?self.batch?self.hidden_dim?//?2)
????????
????def?init_hidden_lstm(self):
????????return?(torch.randn(2?self.batch?self.hidden_dim?//?2)
????????????????torch.randn(2?self.batch?self.hidden_dim?//?2))
????‘‘‘
????????BiLSTM?最后一層的輸出?(seq_lenbatch_sizehidden_dim)
????????attention的參數H是經過轉置的結果:(batch_sizehidden_dimseq_len)
????????attention?目的就是根據不同詞得到不同詞的權重,然后根據權重組合得到整個句子級別的表示?
????‘‘‘
????def?attention(selfH):
????????M?=?torch.tanh(H)?#?非線性變換?size:(batch_sizehidden_dimseq_len)
????????a?=?F.softmax(torch.bmm(self.att_weightM)dim=2)?#?a.Size?:?(batch_size1seq_len)
????????a?=?torch.transpose(a12)?#?(batch_sizeseq_len1)
????????return?to

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-10-26?19:33??ChineseNRE\
?????目錄???????????0??2019-10-30?11:37??ChineseNRE\.idea\
?????文件?????????478??2019-10-24?10:38??ChineseNRE\.idea\ChineseNRE-master.iml
?????文件?????????138??2019-10-24?10:35??ChineseNRE\.idea\encodings.xml
?????文件?????????301??2019-10-24?10:35??ChineseNRE\.idea\misc.xml
?????文件?????????293??2019-10-24?10:35??ChineseNRE\.idea\modules.xml
?????文件???????29995??2019-10-30?11:37??ChineseNRE\.idea\workspace.xml
?????文件????????5300??2019-10-26?19:33??ChineseNRE\BiLSTM_ATT.py
?????文件????????2069??2019-10-26?12:37??ChineseNRE\README.md
?????目錄???????????0??2019-10-26?13:52??ChineseNRE\__pycache__\
?????文件????????3192??2019-10-26?13:52??ChineseNRE\__pycache__\BiLSTM_ATT.cpython-36.pyc
?????文件????????4628??2019-10-26?10:06??ChineseNRE\__pycache__\main.cpython-36.pyc
?????文件?????????450??2019-10-26?13:46??ChineseNRE\__pycache__\params_config.cpython-36.pyc
?????文件????????6247??2019-10-26?11:39??ChineseNRE\__pycache__\utils.cpython-36.pyc
?????目錄???????????0??2019-10-26?09:50??ChineseNRE\backup\
?????文件?????2943945??2019-10-26?04:00??ChineseNRE\backup\model_0005_no_drop_att_score55.pkl
?????文件?????2943943??2019-10-26?01:39??ChineseNRE\backup\model_lr_0001.pkl
?????文件?????2943959??2019-10-25?23:00??ChineseNRE\backup\model_lr_005.pkl
?????目錄???????????0??2019-10-26?12:35??ChineseNRE\data\
?????目錄???????????0??2019-10-28?18:45??ChineseNRE\data\people-relation\
?????文件????????8213??2019-10-28?18:45??ChineseNRE\data\people-relation\data_util.py
?????文件?????????119??2019-10-26?10:13??ChineseNRE\data\people-relation\relation2id.txt
?????文件????32392893??2019-04-21?14:41??ChineseNRE\data\people-relation\train.txt
?????文件?????2909442??2019-10-26?12:35??ChineseNRE\data\people_relation_test.pkl
?????文件????13815237??2019-10-26?12:35??ChineseNRE\data\people_relation_train.pkl
?????文件?????2909442??2019-10-26?12:35??ChineseNRE\data\people_relation_validate.pkl
?????文件????????9047??2019-10-26?15:41??ChineseNRE\main.py
?????目錄???????????0??2019-10-26?15:07??ChineseNRE\model\
?????文件?????2948058??2019-10-26?15:07??ChineseNRE\model\model_best.pkl
?????文件?????2948058??2019-10-26?15:07??ChineseNRE\model\model_final.pkl
?????文件?????????772??2019-10-26?13:45??ChineseNRE\params_config.py
............此處省略2個文件信息

評論

共有 條評論

相關資源