您當前的位置:首頁 > 攝影

深度學習分句技術 [ALBERT+BiLSTM+CRF]

作者:由 HelloNLP 發表于 攝影時間:2021-09-30

文章目的:當提取長文字的標籤時,解決標籤定位到具體子句的問題。

1。 簡介

目前,主流的中文分句技術絕大部分還是基於規則的。一方面,就技術而言容易實現;其次,邏輯簡單,便於理解。但是,完全基於規則的分句方法往往存在侷限性,對具體專案而言並不友好。

其次,也有透過unigram language model(ULM)或者 byte-pair-encoding (BPE)的方法來實現分句的技術。例如google做的sentencepiece ,雖然是用來分詞的,但是改造一下也可以成為分詞的技術。這種型別的方法簡稱為傳統的機器學習方法。

那麼,融入一部分

主觀的分句想法

一種完全基於規則分句的方法

中,無論是從技術方案的角度,還是實現演算法的角度,都是一件值得探討的工作。同時,我們會發現在一些具體專案中,這樣做顯得尤為重要。

下面,我們會透過引入深度學習的方法,從而實現融入的操作。

2。 演算法

我們將標點符號劃分為兩個型別,一個是確定可分的,另一個是非確定可分的。假設現在要對一個原始的句子或者文章進行分句,首先,在確定可分的位置基於規則演算法進行分句;其次,在非確定可分的位置使用深度學習模型來分句。

下面分別介紹下“確定可分”和“非確定可分”這兩個方法。

2.1. 確定可分

確定可分的標點符號可以理解為,當遇到這個標點符號時,即預設為當前位置必須分句。

對於確定可分的標點符號,使用了基於正則表示式的分句方法,其中包含標點符號:。!!??;;\n…~等

實現程式碼:

深度學習分句技術 [ALBERT+BiLSTM+CRF]

2.2.

非確定可分

非確定可分的標點符號則可以理解為,當遇到這個標點符號時,不能確定當前位置是否可分,那麼就存在可分和不可分兩種情況。

對於非確定可分的標點符號,使用了有監督的深度學習方法,其中包含3個標點符號:,, (分別為中文逗號、英文逗號、空格)

注意:對非確定可分的標點符號可根據專案需求制定。

2.1.1. ALBERT+BiLSTM+CRF

型別序列標註框架,我們構建了一個ALBERT+BiLSTM+CRF的深度學習框架。同時,我們使用了“BE”的思想,其中“B”表示拒句首或者句中的位置,“E”表示需要分句的位置(句尾)。

下面我們簡單看下實現的程式碼:

ALBERT token-vectors

深度學習分句技術 [ALBERT+BiLSTM+CRF]

BiLSTM Network

深度學習分句技術 [ALBERT+BiLSTM+CRF]

Full connection

深度學習分句技術 [ALBERT+BiLSTM+CRF]

Input length

深度學習分句技術 [ALBERT+BiLSTM+CRF]

Transition parameters

深度學習分句技術 [ALBERT+BiLSTM+CRF]

Load model

深度學習分句技術 [ALBERT+BiLSTM+CRF]

CRF Decoder

深度學習分句技術 [ALBERT+BiLSTM+CRF]

2.2.2. 標註

基於規則分句後,我們會得到大量的樣本。這時候,需要人工判斷這些樣本在指定的一些位置是否可分,這部分工作需要大量的人力資源。下面,我們給幾個標註的例子:

1。 繼續使用一段時間看看,後續有問題再來追評

2。 續航滿意,用一整天沒問題

3。 可以看到三星 Galaxy Note 系列的智慧型

4。 能正常開機,手感很好

深度學習分句技術 [ALBERT+BiLSTM+CRF]

其中,“B”表示不可分的位置,“E”表示可分的位置。

2.3. 規則分句+深度學習分句

例子:“續航滿意,用一整天沒問題。能正常開機,手感很好。”

首先,在兩個“。”的地方,是確定可分的。那麼,經過

規則分句

後,就得到了2個句子:“續航滿意,用一整天沒問題”和“能正常開機,手感很好”。

其次,對於這2個非確定可分的句子,需要分別使用到

深度學習

的方法。第1個句子經過深度學習的方法後,得到的還是1個句子:“續航滿意,用一整天沒問題”,第2個句子經過深度學習的方法後,得到了2個句子:“能正常開機”和“手感很好”。

最後,得到了3個句子,分別為:“續航滿意,用一整天沒問題”、“能正常開機”和“手感很好”。

3。 模型框架及收斂圖

3.1. 框架圖

深度學習分句技術 [ALBERT+BiLSTM+CRF]

3.2. 模型Loss變化曲線圖

深度學習分句技術 [ALBERT+BiLSTM+CRF]

從圖中可以看到,大概loss=0。2附近模型收斂。上圖中,是針對不同的引數做的訓練,所以收斂速度有所差異。

4。 結果展示

下面,透過兩個例子,我們來看一下在實際專案中的使用情況。在這個專案中,分句目的是為了精準定位標籤的位置。

例1,“趁著活動入手,最後實付八十一點多”,其中的前半句和後半句都是描述的“活動”相關的內容;

例2,“家裡現在用的一款已經服役七八年了,該換了”,其中的前半句和後半句都在描述“使用年限”的相關內容;

例3,“可摺疊攜帶方便,另外風力夠用,還有負離子功能。”。其中,“可摺疊攜帶方便”、“另外風力夠用”和“還有負離子功能”分別描述了3個不同的聚焦點。

例1:

深度學習分句技術 [ALBERT+BiLSTM+CRF]

例2:

深度學習分句技術 [ALBERT+BiLSTM+CRF]

5。 原始碼

深度學習分句

標簽: 分句  可分  標點符號  確定  句子