1. 程式人生 > >基於神經網路的文字相似度計算【醫療大資料】

基於神經網路的文字相似度計算【醫療大資料】

任務描述

問句匹配是自然語言處理的最基本任務之一,是自動問答,聊天機器人,資訊檢索,機器翻譯等各種自然語言處理任務基礎。問句匹配的主要目的是判斷兩個問句之間的語義是否等價。判別標準主要根據主句(即提問者)所蘊含的意圖來判斷兩個語句是否等價,而不直接判斷兩個語句是否表達相同的語義。因此,其核心是語句的意圖匹配。由於來源於真實問答語料庫,該任務更加接近於智慧醫療助手等自然語言處理任務的實際需求。

本次評測任務的主要目標是針對中文的真實患者健康諮詢語料,進行問句意圖匹配。給定兩個語句,要求判定兩者意圖是否相同或者相近。所有語料來自網際網路上患者真實的問題,並經過了篩選和人工的意圖匹配標註。平安雲將為報名的隊伍提供GPU的訓練環境。

資料說明

本次測評資料主要來自於人工構建與標註。

訓練集和驗證集

訓練集包含20000條左右標註好的資料(經過脫敏處理,包含標點符號),供參賽人員進行訓練和測試。測試集包含10000條左右無標籤的資料(經過脫敏處理,包含標點符號)。選手需要對測試集資料的標籤進行預測並提交。測試集資料作為AB榜的評測依據。

資料格式

給參賽選手的檔案由question_id.csv,word_embedding,char_embedding,train.csv,test.csv五個檔案構成.question_id.csv為所有脫敏後的問句和其ID,有分詞和分字兩種形式(包含標點符號).word_embedding和char_embedding分別為預訓練好的詞和字的嵌入(經過脫敏處理,由一個超過200萬條醫療問句構成的語料庫訓練而成)。

train.csv和test.csv分別為訓練集和測試集,包含若干對由問題ID組成的一對。以標籤表示問句之間的語義是否相同。若相同,標為1,若不相同,標為0.其中,訓練集標籤已知,測試集標籤未知。

示例

問句1:糖尿病吃什麼?

問句2:糖尿病的食譜?

標籤:1

問句1:糖尿病的危害?

問句2:糖尿病腎病的危害?

標籤:0

每個問句均有其唯一的ID,選手最終按照以下格式提交評測檔案:

網路圖:

訓練演算法結果:

直接訓練詞向量有點容易過擬合,資料量太小了就1萬

改成訓練字向量,前期看起來 還可以

增長的比較穩

其實做這種 文字相似度匹配的任務,有很多種思路

主要是三種:

1.分類

2.計算距離

3.特徵工程

找到問題所在了,要用共享權值的思路去做。

提交了一波,目前排名第19。想到一個思路,自定義一個merge層,採用特殊的融合方式。

加了一套自己搞的merge層以後,val acc能達到80%+了

但是依然會存在過擬合,沒辦法去掉驗證集以後,訓練集就1萬個句子,實在太少了,網路稍微深一點就過擬合。

看看能不能在預處理上做一些操作。

提交以後,有一點提升