国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【NLP屠夫系列】- NER之實(shí)戰(zhàn)BILSTM

這篇具有很好參考價(jià)值的文章主要介紹了【NLP屠夫系列】- NER之實(shí)戰(zhàn)BILSTM。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【NLP屠夫系列】- NER之實(shí)戰(zhàn)BILSTM

本文學(xué)習(xí)目標(biāo)

  • 了解什么是命名實(shí)體識(shí)別
  • 了解命名實(shí)體識(shí)別的作用
  • 了解命名實(shí)體識(shí)別常用方法
  • 了解醫(yī)學(xué)文本特征

一. NER

1.1 什么是命名實(shí)體識(shí)別:

命名實(shí)體識(shí)別(Named Entity Recognition,NER)就是從一段自然語(yǔ)言文本中找出相關(guān)實(shí)體,并標(biāo)注出其位置以及類型。是信息提取, 問(wèn)答系統(tǒng), 句法分析, 機(jī)器翻譯等應(yīng)用領(lǐng)域的重要基礎(chǔ)工具, 在自然語(yǔ)言處理技術(shù)走向?qū)嵱没倪^(guò)程中占有重要地位. 包含行業(yè), 領(lǐng)域?qū)S忻~, 如人名, 地名, 公司名, 機(jī)構(gòu)名, 日期, 時(shí)間, 疾病名, 癥狀名, 手術(shù)名稱, 軟件名稱等。具體可參看如下示例圖:

【NLP屠夫系列】- NER之實(shí)戰(zhàn)BILSTM

1.2 命名實(shí)體識(shí)別的作用:

  • 識(shí)別專有名詞, 為文本結(jié)構(gòu)化提供支持.

  • 主體識(shí)別, 輔助句法分析.

  • 實(shí)體關(guān)系抽取, 有利于知識(shí)推理.

1.3 命名實(shí)體識(shí)別常用方法:

  1. 基于規(guī)則: 針對(duì)有特殊上下文的實(shí)體, 或?qū)嶓w本身有很多特征的文本, 使用規(guī)則的方法簡(jiǎn)單且有效. 比如抽取文本中物品價(jià)格, 如果文本中所有商品價(jià)格都是“數(shù)字+元”的形式, 則可以通過(guò)正則表達(dá)式”\d*.?\d+元”進(jìn)行抽取. 但如果待抽取文本中價(jià)格的表達(dá)方式多種多樣, 例如“一千八百萬(wàn)”, “伍佰貳拾圓”, “2000萬(wàn)元”, 遇到這些情況就要修改規(guī)則來(lái)滿足所有可能的情況. 隨著語(yǔ)料數(shù)量的增加, 面對(duì)的情況也越來(lái)越復(fù)雜, 規(guī)則之間也可能發(fā)生沖突, 整個(gè)系統(tǒng)也可能變得不可維護(hù). 因此基于規(guī)則的方式比較適合半結(jié)構(gòu)化或比較規(guī)范的文本中的進(jìn)行抽取任務(wù), 結(jié)合業(yè)務(wù)需求能夠達(dá)到一定的效果.
  • 缺點(diǎn): 適用性差, 維護(hù)成本高后期甚至不能維護(hù).

  • 優(yōu)點(diǎn): 簡(jiǎn)單, 快速.

  1. 基于模型: 從模型的角度來(lái)看, 命名實(shí)體識(shí)別問(wèn)題實(shí)際上是序列標(biāo)注問(wèn)題. 序列標(biāo)注問(wèn)題指的是模型的輸入是一個(gè)序列, 包括文字, 時(shí)間等, 輸出也是一個(gè)序列. 針對(duì)輸入序列的每一個(gè)單元, 輸出一個(gè)特定的標(biāo)簽. 以中文分詞任務(wù)進(jìn)行舉例, 例如輸入序列是一串文字: “我是中國(guó)人”, 輸出序列是一串標(biāo)簽: “OOBII”, 其中"BIO"組成了一種中文分詞的標(biāo)簽體系: B表示這個(gè)字是詞的開(kāi)始, I表示詞的中間到結(jié)尾, O表示其他類型詞. 因此我們可以根據(jù)輸出序列"OOBII"進(jìn)行解碼, 得到分詞結(jié)果"我\是\中國(guó)人".
  • 序列標(biāo)注問(wèn)題涵蓋了自然語(yǔ)言處理中的很多任務(wù), 包括語(yǔ)音識(shí)別, 中文分詞, 機(jī)器翻譯, 命名實(shí)體識(shí)別等, 而常見(jiàn)的序列標(biāo)注模型包括HMM, CRF, RNN, LSTM, GRU等模型.

  • 其中在命名實(shí)體識(shí)別技術(shù)上, 目前主流的技術(shù)是通過(guò)BiLSTM+CRF模型進(jìn)行序列標(biāo)注, 也是項(xiàng)目中要用到的模型.

1.4 醫(yī)學(xué)文本特征:

【NLP屠夫系列】- NER之實(shí)戰(zhàn)BILSTM

  • 簡(jiǎn)短精煉

  • 形容詞相對(duì)較少

  • 泛化性相對(duì)較小

  • 醫(yī)學(xué)名詞錯(cuò)字率比較高

  • 同義詞、簡(jiǎn)稱比較多

二、 BiLSTM

2.1 學(xué)習(xí)目標(biāo):

  • 了解BiLSTM網(wǎng)絡(luò)結(jié)構(gòu).

  • 掌握BiLSTM模型實(shí)現(xiàn).

2.2 BiLSTM網(wǎng)絡(luò)結(jié)構(gòu):

  • 所謂的BiLSTM,就是(Bidirectional LSTM)雙向LSTM. 單向的LSTM模型只能捕捉到從前向后傳遞的信息, 而雙向的網(wǎng)絡(luò)可以同時(shí)捕捉正向信息和反向信息, 使得對(duì)文本信息的利用更全面, 效果也更好.

  • 在BiLSTM網(wǎng)絡(luò)最終的輸出層后面增加了一個(gè)線性層, 用來(lái)將BiLSTM產(chǎn)生的隱藏層輸出結(jié)果投射到具有某種表達(dá)標(biāo)簽特征意義的區(qū)間, 具體如下圖所示:
    【NLP屠夫系列】- NER之實(shí)戰(zhàn)BILSTM

2.3 BiLSTM模型實(shí)現(xiàn):

  • 第一步: 實(shí)現(xiàn)類的初始化和網(wǎng)絡(luò)結(jié)構(gòu)的搭建.

  • 第二步: 實(shí)現(xiàn)文本向量化的函數(shù).

  • 第三步: 實(shí)現(xiàn)網(wǎng)絡(luò)的前向計(jì)算.

2.3.1 第一步: 實(shí)現(xiàn)類的初始化和網(wǎng)絡(luò)結(jié)構(gòu)的搭建.

# 本段代碼構(gòu)建類BiLSTM, 完成初始化和網(wǎng)絡(luò)結(jié)構(gòu)的搭建
# 總共3層: 詞嵌入層, 雙向LSTM層, 全連接線性層
import torch
import torch.nn as nn


class BiLSTM(nn.Module):
    """
    description: BiLSTM 模型定義
    """
    def __init__(self, vocab_size, tag_to_id, input_feature_size, hidden_size,
                 batch_size, sentence_length, num_layers=1, batch_first=True):
        """
        description: 模型初始化
        :param vocab_size:          所有句子包含字符大小
        :param tag_to_id:           標(biāo)簽與 id 對(duì)照
        :param input_feature_size:  字嵌入維度( 即LSTM輸入層維度 input_size )
        :param hidden_size:         隱藏層向量維度
        :param batch_size:          批訓(xùn)練大小
        :param sentence_length      句子長(zhǎng)度
        :param num_layers:          堆疊 LSTM 層數(shù)
        :param batch_first:         是否將batch_size放置到矩陣的第一維度
        """
        # 類繼承初始化函數(shù)
        super(BiLSTM, self).__init__()
        # 設(shè)置標(biāo)簽與id對(duì)照
        self.tag_to_id = tag_to_id
        # 設(shè)置標(biāo)簽大小, 對(duì)應(yīng)BiLSTM最終輸出分?jǐn)?shù)矩陣寬度
        self.tag_size = len(tag_to_id)
        # 設(shè)定LSTM輸入特征大小, 對(duì)應(yīng)詞嵌入的維度大小
        self.embedding_size = input_feature_size
        # 設(shè)置隱藏層維度, 若為雙向時(shí)想要得到同樣大小的向量, 需要除以2
        self.hidden_size = hidden_size // 2
        # 設(shè)置批次大小, 對(duì)應(yīng)每個(gè)批次的樣本條數(shù), 可以理解為輸入張量的第一個(gè)維度
        self.batch_size = batch_size
        # 設(shè)定句子長(zhǎng)度
        self.sentence_length = sentence_length
        # 設(shè)定是否將batch_size放置到矩陣的第一維度, 取值True, 或False
        self.batch_first = batch_first
        # 設(shè)置網(wǎng)絡(luò)的LSTM層數(shù)
        self.num_layers = num_layers
        
        # 構(gòu)建詞嵌入層: 字向量, 維度為總單詞數(shù)量與詞嵌入維度
        # 參數(shù): 總體字庫(kù)的單詞數(shù)量, 每個(gè)字被嵌入的維度
        self.embedding = nn.Embedding(vocab_size, self.embedding_size)

        # 構(gòu)建雙向LSTM層: BiLSTM (參數(shù): input_size      字向量維度(即輸入層大小),
        #                               hidden_size     隱藏層維度,
        #                               num_layers      層數(shù),
        #                               bidirectional   是否為雙向,
        #                               batch_first     是否批次大小在第一位)
        self.bilstm = nn.LSTM(input_size=input_feature_size,
                              hidden_size=self.hidden_size,
                              num_layers=num_layers,
                              bidirectional=True,
                              batch_first=batch_first)

        # 構(gòu)建全連接線性層: 將BiLSTM的輸出層進(jìn)行線性變換
        self.linear = nn.Linear(hidden_size, self.tag_size)

輸入?yún)?shù):


# 參數(shù)1:碼表與id對(duì)照
char_to_id = {"雙": 0, "肺": 1, "見(jiàn)": 2, "多": 3, "發(fā)": 4, "斑": 5, "片": 6,
              "狀": 7, "稍": 8, "高": 9, "密": 10, "度": 11, "影": 12, "。": 13}

# 參數(shù)2:標(biāo)簽碼表對(duì)照
tag_to_id = {"O": 0, "B-dis": 1, "I-dis": 2, "B-sym": 3, "I-sym": 4}

# 參數(shù)3:字向量維度
EMBEDDING_DIM = 200

# 參數(shù)4:隱層維度
HIDDEN_DIM = 100

# 參數(shù)5:批次大小
BATCH_SIZE = 8

# 參數(shù)6:句子長(zhǎng)度
SENTENCE_LENGTH = 20

# 參數(shù)7:堆疊 LSTM 層數(shù)
NUM_LAYERS = 1

調(diào)用:


# 初始化模型
model = BiLSTM(vocab_size=len(char_to_id),
               tag_to_id=tag_to_id,
               input_feature_size=EMBEDDING_DIM,
               hidden_size=HIDDEN_DIM,
               batch_size=BATCH_SIZE,
               sentence_length=SENTENCE_LENGTH,
               num_layers=NUM_LAYERS)
print(model)

輸出效果:

BiLSTM(
  (embedding): Embedding(14, 200)
  (bilstm): LSTM(200, 50, batch_first=True, bidirectional=True)
  (linear): Linear(in_features=100, out_features=5, bias=True)
)

2.3.2 第二步:實(shí)現(xiàn)文本向量化的函數(shù)


# 本函數(shù)實(shí)現(xiàn)將中文文本映射為數(shù)字化的張量
def sentence_map(sentence_list, char_to_id, max_length):
    """
    description: 將句子中的每一個(gè)字符映射到碼表中
    :param sentence: 待映射句子, 類型為字符串或列表
    :param char_to_id: 碼表, 類型為字典, 格式為{"字1": 1, "字2": 2}
    :return: 每一個(gè)字對(duì)應(yīng)的編碼, 類型為tensor
    """
    # 字符串按照逆序進(jìn)行排序, 不是必須操作
    sentence_list.sort(key=lambda c:len(c), reverse=True)
    # 定義句子映射列表
    sentence_map_list = []
    for sentence in sentence_list:
        # 生成句子中每個(gè)字對(duì)應(yīng)的 id 列表
        sentence_id_list = [char_to_id[c] for c in sentence]
        # 計(jì)算所要填充 0 的長(zhǎng)度
        padding_list = [0] * (max_length-len(sentence))
        # 組合
        sentence_id_list.extend(padding_list)
        # 將填充后的列表加入句子映射總表中
        sentence_map_list.append(sentence_id_list)
    # 返回句子映射集合, 轉(zhuǎn)為標(biāo)量
    return torch.tensor(sentence_map_list, dtype=torch.long)

輸入?yún)?shù):


# 參數(shù)1:句子集合
sentence_list = [
    "確診彌漫大b細(xì)胞淋巴瘤1年",
    "反復(fù)咳嗽、咳痰40年,再發(fā)伴氣促5天。",
    "生長(zhǎng)發(fā)育遲緩9年。",
    "右側(cè)小細(xì)胞肺癌第三次化療入院",
    "反復(fù)氣促、心悸10年,加重伴胸痛3天。",
    "反復(fù)胸悶、心悸、氣促2多月,加重3天",
    "咳嗽、胸悶1月余, 加重1周",
    "右上肢無(wú)力3年, 加重伴肌肉萎縮半年"]

# 參數(shù)2:碼表與id對(duì)照
char_to_id = {"<PAD>":0}

# 參數(shù)3:句子長(zhǎng)度
SENTENCE_LENGTH = 20

調(diào)用:


if __name__ == '__main__':
    for sentence in sentence_list:
        # 獲取句子中的每一個(gè)字
        for _char in sentence:
            # 判斷是否在碼表 id 對(duì)照字典中存在
            if _char not in char_to_id:
                # 加入字符id對(duì)照字典
                char_to_id[_char] = len(char_to_id)

    # 將句子轉(zhuǎn)為 id 并用 tensor 包裝
    sentences_sequence = sentence_map(sentence_list, char_to_id, SENTENCE_LENGTH)
    print("sentences_sequence:\n", sentences_sequence)

輸出效果:


sentences_sequence:
tensor([[14, 15, 16, 17, 18, 16, 19, 20, 21, 13, 22, 23, 24, 25, 26, 27, 28, 29, 30,  0],
        [14, 15, 26, 27, 18, 49, 50, 12, 21, 13, 22, 51, 52, 25, 53, 54, 55, 29, 30,  0],
        [14, 15, 53, 56, 18, 49, 50, 18, 26, 27, 57, 58, 59, 22, 51, 52, 55, 29, 0,  0],
        [37, 63, 64, 65, 66, 55, 13, 22, 61, 51, 52, 25, 67, 68, 69, 70, 71, 13, 0,  0],
        [37, 38, 39,  7,  8, 40, 41, 42, 43, 44, 45, 46, 47, 48,  0,  0,  0,  0, 0,  0],
        [16, 17, 18, 53, 56, 12, 59, 60, 22, 61, 51, 52, 12, 62,  0,  0,  0,  0, 0,  0],
        [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13,  0,  0,  0,  0,  0, 0,  0],
        [31, 32, 24, 33, 34, 35, 36, 13, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0]])

2.3.3 第三步: 實(shí)現(xiàn)網(wǎng)絡(luò)的前向計(jì)算

# 本函數(shù)實(shí)現(xiàn)類BiLSTM中的前向計(jì)算函數(shù)forward()
def forward(self, sentences_sequence):
    """
    description: 將句子利用BiLSTM進(jìn)行特征計(jì)算,分別經(jīng)過(guò)Embedding->BiLSTM->Linear,
                 獲得發(fā)射矩陣(emission scores)
    :param sentences_sequence: 句子序列對(duì)應(yīng)的編碼,
                               若設(shè)定 batch_first 為 True,
                               則批量輸入的 sequence 的 shape 為(batch_size, sequence_length)
    :return:    返回當(dāng)前句子特征,轉(zhuǎn)化為 tag_size 的維度的特征
    """
    # 初始化隱藏狀態(tài)值
    h0 = torch.randn(self.num_layers * 2, self.batch_size, self.hidden_size)
    # 初始化單元狀態(tài)值
    c0 = torch.randn(self.num_layers * 2, self.batch_size, self.hidden_size)
    # 生成字向量, shape 為(batch, sequence_length, input_feature_size)
    # 注:embedding cuda 優(yōu)化僅支持 SGD 、 SparseAdam
    input_features = self.embedding(sentences_sequence)
    
    # 將字向量與初始值(隱藏狀態(tài) h0 , 單元狀態(tài) c0 )傳入 LSTM 結(jié)構(gòu)中
    # 輸出包含如下內(nèi)容:
    # 1, 計(jì)算的輸出特征,shape 為(batch, sentence_length, hidden_size)
    #    順序?yàn)樵O(shè)定 batch_first 為 True 情況, 若未設(shè)定則 batch 在第二位
    # 2, 最后得到的隱藏狀態(tài) hn , shape 為(num_layers * num_directions, batch, hidden_size)
    # 3, 最后得到的單元狀態(tài) cn , shape 為(num_layers * num_directions, batch, hidden_size)
    output, (hn, cn) = self.bilstm(input_features, (h0, c0))
    # 將輸出特征進(jìn)行線性變換,轉(zhuǎn)為 shape 為 (batch, sequence_length, tag_size) 大小的特征
    sequence_features = self.linear(output)
    # 輸出線性變換為 tag 映射長(zhǎng)度的特征
    return sequence_features

輸入?yún)?shù):


# 參數(shù)1:標(biāo)簽碼表對(duì)照
tag_to_id = {"O": 0, "B-dis": 1, "I-dis": 2, "B-sym": 3, "I-sym": 4}

# 參數(shù)2:字向量維度
EMBEDDING_DIM = 200

# 參數(shù)3:隱層維度
HIDDEN_DIM = 100

# 參數(shù)4:批次大小
BATCH_SIZE = 8

# 參數(shù)5:句子長(zhǎng)度
SENTENCE_LENGTH = 20

# 參數(shù)6:堆疊 LSTM 層數(shù)
NUM_LAYERS = 1

char_to_id = {"<PAD>":0}
SENTENCE_LENGTH = 20

調(diào)用:

if __name__ == '__main__':
    for sentence in sentence_list:
        for _char in sentence:
            if _char not in char_to_id:
                char_to_id[_char] = len(char_to_id)
    sentence_sequence = sentence_map(sentence_list, char_to_id, SENTENCE_LENGTH)

    model = BiLSTM(vocab_size=len(char_to_id), tag_to_id=tag_to_id, input_feature_size=EMBEDDING_DIM, \
    hidden_size=HIDDEN_DIM, batch_size=BATCH_SIZE, sentence_length=SENTENCE_LENGTH, num_layers=NUM_LAYERS)

    sentence_features = model(sentence_sequence)
    print("sequence_features:\n", sentence_features)

輸出效果:

sequence_features:
tensor([[[ 4.0880e-02, -5.8926e-02, -9.3971e-02,  8.4794e-03, -2.9872e-01],
         [ 2.9434e-02, -2.5901e-01, -2.0811e-01,  1.3794e-02, -1.8743e-01],
         [-2.7899e-02, -3.4636e-01,  1.3382e-02,  2.2684e-02, -1.2067e-01],
         [-1.9069e-01, -2.6668e-01, -5.7182e-02,  2.1566e-01,  1.1443e-01],
                           ...
         [-1.6844e-01, -4.0699e-02,  2.6328e-02,  1.3513e-01, -2.4445e-01],
         [-7.3070e-02,  1.2032e-01,  2.2346e-01,  1.8993e-01,  8.3171e-02],
         [-1.6808e-01,  2.1454e-02,  3.2424e-01,  8.0905e-03, -1.5961e-01],
         [-1.9504e-01, -4.9296e-02,  1.7219e-01,  8.9345e-02, -1.4214e-01]],
        ...
        [[-3.4836e-03,  2.6217e-01,  1.9355e-01,  1.8084e-01, -1.6086e-01],
         [-9.1231e-02, -8.4838e-04,  1.0575e-01,  2.2864e-01,  1.6104e-02],
         [-8.7726e-02, -7.6956e-02, -7.0301e-02,  1.7199e-01, -6.5375e-02],
         [-5.9306e-02, -5.4701e-02, -9.3267e-02,  3.2478e-01, -4.0474e-02],
         [-1.1326e-01,  4.8365e-02, -1.7994e-01,  8.1722e-02,  1.8604e-01],
                        ...
         [-5.8271e-02, -6.5781e-02,  9.9232e-02,  4.8524e-02, -8.2799e-02],
         [-6.8400e-02, -9.1515e-02,  1.1352e-01,  1.0674e-02, -8.2739e-02],
         [-9.1461e-02, -1.2304e-01,  1.2540e-01, -4.2065e-02, -8.3091e-02],
         [-1.5834e-01, -8.7316e-02,  7.0567e-02, -8.8845e-02, -7.0867e-02]],

        [[-1.4069e-01,  4.9171e-02,  1.4314e-01, -1.5284e-02, -1.4395e-01],
         [ 6.5296e-02,  9.3255e-03, -2.8411e-02,  1.5143e-01,  7.8252e-02],
         [ 4.1765e-03, -1.4635e-01, -4.9798e-02,  2.7597e-01, -1.0256e-01],
         ...
         [-3.9810e-02, -7.6746e-03,  1.2418e-01,  4.9897e-02, -8.4538e-02],
         [-3.4474e-02, -1.0586e-02,  1.3861e-01,  4.0395e-02, -8.3676e-02],
         [-3.4092e-02, -2.3208e-02,  1.6097e-01,  2.3498e-02, -8.3332e-02],
         [-4.6900e-02, -5.0335e-02,  1.8982e-01,  3.6287e-03, -7.8078e-02],
         [-6.4105e-02, -4.2628e-02,  1.8999e-01, -2.9888e-02, -1.1875e-01]]],
       grad_fn=<AddBackward0>)

輸出結(jié)果說(shuō)明: 該輸出結(jié)果為輸入批次中句子的特征, 利用線性變換分別對(duì)應(yīng)到每個(gè)tag的得分. 例如上述標(biāo)量第一個(gè)值:[ 4.0880e-02, -5.8926e-02, -9.3971e-02, 8.4794e-03, -2.9872e-01]表示的意思為第一個(gè)句子第一個(gè)字分別被標(biāo)記為[“O”, “B-dis”, “I-dis”, “B-sym”, “I-sym”]的分?jǐn)?shù), 由此可以判斷, 在這個(gè)例子中, 第一個(gè)字被標(biāo)注為"O"的分?jǐn)?shù)最高.

總結(jié):

  • 添加文本向量化的輔助函數(shù), 注意padding填充為相同長(zhǎng)度的Tensor

  • 要注意forward函數(shù)中不同張量的形狀約定

  • 設(shè)置隱藏層維度的時(shí)候, 需要將hidden_size // 2

  • 總共有3層需要構(gòu)建, 分別是詞嵌入層, 雙向LSTM層, 全連接線性層

  • 在代碼層面, 雙向LSTM就是將nn.LSTM()中的參數(shù)bidirectional設(shè)置為True


【NLP屠夫系列】- NER之實(shí)戰(zhàn)BILSTM文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-410973.html

到了這里,關(guān)于【NLP屠夫系列】- NER之實(shí)戰(zhàn)BILSTM的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【AI實(shí)戰(zhàn)】大語(yǔ)言模型(LLM)有多強(qiáng)?還需要做傳統(tǒng)NLP任務(wù)嗎(分詞、詞性標(biāo)注、NER、情感分類、知識(shí)圖譜、多倫對(duì)話管理等)

    【AI實(shí)戰(zhàn)】大語(yǔ)言模型(LLM)有多強(qiáng)?還需要做傳統(tǒng)NLP任務(wù)嗎(分詞、詞性標(biāo)注、NER、情感分類、知識(shí)圖譜、多倫對(duì)話管理等)

    大語(yǔ)言模型(LLM)是指使用大量文本數(shù)據(jù)訓(xùn)練的深度學(xué)習(xí)模型,可以生成自然語(yǔ)言文本或理解語(yǔ)言文本的含義。大語(yǔ)言模型可以處理多種自然語(yǔ)言任務(wù),如文本分類、問(wèn)答、對(duì)話等,是通向人工智能的一條重要途徑。來(lái)自百度百科 發(fā)展歷史 2020年9月,OpenAI授權(quán)微軟使用GPT-3模

    2024年02月10日
    瀏覽(16)
  • 【NLP】一項(xiàng)NER實(shí)體提取任務(wù)

    ????????從文本中提取實(shí)體是一項(xiàng)主要的自然語(yǔ)言處理 (NLP) 任務(wù)。由于深度學(xué)習(xí)(DL)的最新進(jìn)展使我們能夠?qū)⑺鼈冇糜贜LP任務(wù),并且與傳統(tǒng)方法相比,在準(zhǔn)確性上產(chǎn)生了巨大的差異。 ????????我試圖使用深度學(xué)習(xí)和傳統(tǒng)方法從文章中提取信息。結(jié)果是驚人的,因?yàn)?/p>

    2024年02月16日
    瀏覽(21)
  • 中文自然語(yǔ)言處理(NLP)的命名實(shí)體識(shí)別(NER)任務(wù)常見(jiàn)序列標(biāo)注方法

    中文NLP的NER任務(wù)中的數(shù)據(jù)集序列標(biāo)注方法,主要有以下幾種常用的標(biāo)注方案: BIO標(biāo)注法(Begin-Inside-Outside) : B (Begin)表示實(shí)體的開(kāi)始部分。 I (Inside)表示實(shí)體的中間部分。 O (Outside)表示非實(shí)體部分。 例如,“北京是中國(guó)的首都”,如果要標(biāo)注“北京”為地名,會(huì)標(biāo)

    2024年01月23日
    瀏覽(30)
  • NLP之LSTM與BiLSTM

    NLP之LSTM與BiLSTM

    首先,我們來(lái)總結(jié)這段代碼的流程: 導(dǎo)入了必要的TensorFlow Keras模塊。 初始化了一個(gè)Sequential模型,這表示我們的模型會(huì)按順序堆疊各層。 添加了一個(gè)Embedding層,用于將整數(shù)索引(對(duì)應(yīng)詞匯)轉(zhuǎn)換為密集向量。 添加了一個(gè)雙向LSTM層,其中包含100個(gè)神經(jīng)元。 添加了兩個(gè)Dense全連

    2024年02月06日
    瀏覽(17)
  • IDCNN(迭代擴(kuò)張卷積神經(jīng)網(wǎng)絡(luò))在NLP-NER任務(wù)中的應(yīng)用

    IDCNN(迭代擴(kuò)張卷積神經(jīng)網(wǎng)絡(luò))在NLP-NER任務(wù)中的應(yīng)用 IDCNN(Iterated Dilated Convolutional Neural Network)是一種特別設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)(CNN),用于處理自然語(yǔ)言處理(NLP)中的序列標(biāo)注問(wèn)題,例如命名實(shí)體識(shí)別(NER)。IDCNN的關(guān)鍵特點(diǎn)是使用了擴(kuò)張卷積(Dilated Convolution),這是一

    2024年01月23日
    瀏覽(16)
  • NLP NER 任務(wù)中的精確度(Precision)、召回率(Recall)和F1值

    在自然語(yǔ)言處理(NLP)中的命名實(shí)體識(shí)別(NER)任務(wù)中,精確度(Precision)、召回率(Recall)和F1值是評(píng)估模型性能的關(guān)鍵指標(biāo)。這些指標(biāo)幫助我們了解模型在識(shí)別正確實(shí)體方面的效率和準(zhǔn)確性。 精確度(Precision) : 精確度是指模型正確識(shí)別的命名實(shí)體數(shù)與模型總共識(shí)別出

    2024年01月23日
    瀏覽(37)
  • 中文自然語(yǔ)言處理(NLP)中的命名實(shí)體識(shí)別(NER)任務(wù)中,加入注意力(attention)機(jī)制

    在中文自然語(yǔ)言處理(NLP)中的命名實(shí)體識(shí)別(NER)任務(wù)中,加入注意力(attention)機(jī)制可以極大地提升模型的性能。注意力機(jī)制可以幫助模型更好地捕捉序列中的關(guān)鍵信息和上下文依賴關(guān)系,從而提高對(duì)命名實(shí)體的識(shí)別準(zhǔn)確度。下面是一些關(guān)于注意力機(jī)制的具體作用和不同

    2024年01月25日
    瀏覽(23)
  • 對(duì)話式 AI 項(xiàng)目實(shí)戰(zhàn)系列 NLP 篇 (173)

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 隨著人工智能技術(shù)的發(fā)展和落地,對(duì)話系統(tǒng)、機(jī)器學(xué)習(xí)和自然語(yǔ)言處理等新興領(lǐng)域成為熱門研究方向。而在此過(guò)程中,數(shù)據(jù)積累、訓(xùn)練模型和部署上線都是一個(gè)非常復(fù)雜的過(guò)程,如何更加有效、準(zhǔn)確地完成這些任務(wù)就成為了一個(gè)重要問(wèn)題。本期

    2024年02月07日
    瀏覽(17)
  • 機(jī)器學(xué)習(xí)&&深度學(xué)習(xí)——NLP實(shí)戰(zhàn)(情感分析模型——數(shù)據(jù)集)

    機(jī)器學(xué)習(xí)&&深度學(xué)習(xí)——NLP實(shí)戰(zhàn)(情感分析模型——數(shù)據(jù)集)

    ?????作者簡(jiǎn)介:一位即將上大四,正專攻機(jī)器學(xué)習(xí)的保研er ??上期文章:機(jī)器學(xué)習(xí)深度學(xué)習(xí)——BERT(來(lái)自transformer的雙向編碼器表示) ??訂閱專欄:機(jī)器學(xué)習(xí)深度學(xué)習(xí) 希望文章對(duì)你們有所幫助 預(yù)訓(xùn)練文本表示可以通過(guò)不同模型架構(gòu),放入不同的下游自然語(yǔ)言處理任務(wù)。

    2024年02月11日
    瀏覽(26)
  • 機(jī)器學(xué)習(xí)&&深度學(xué)習(xí)——NLP實(shí)戰(zhàn)(情感分析模型——RNN實(shí)現(xiàn))

    機(jī)器學(xué)習(xí)&&深度學(xué)習(xí)——NLP實(shí)戰(zhàn)(情感分析模型——RNN實(shí)現(xiàn))

    ?????作者簡(jiǎn)介:一位即將上大四,正專攻機(jī)器學(xué)習(xí)的保研er ??上期文章:機(jī)器學(xué)習(xí)深度學(xué)習(xí)——NLP實(shí)戰(zhàn)(情感分析模型——數(shù)據(jù)集) ??訂閱專欄:機(jī)器學(xué)習(xí)深度學(xué)習(xí) 希望文章對(duì)你們有所幫助 與詞相似度和類比任務(wù)一樣,我們也可以將預(yù)先訓(xùn)練的詞向量應(yīng)用于情感分析。

    2024年02月11日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包