黃治 周勁 何葉
摘 要:無人駕駛汽車的測試技術(shù)主要是通過虛擬測試和場地測試的方法來檢測無人駕駛汽車的智能化水平,通過不斷的學習和總結(jié)經(jīng)驗來提高無人駕駛的安全性, 這種方法耗費大量的人力物力以及時間。為此,從文本的角度出發(fā),利用駕駛行為相關(guān)文本,通過NLP技術(shù)和基于規(guī)則的方法構(gòu)建一個無人駕駛規(guī)則庫,依據(jù)這個規(guī)則庫來輔助測試無人駕駛汽車能否滿足道路安全要求。實驗結(jié)果表明,對《中華人民共和國道路交通安全法實施條例》處理后規(guī)則提取的正確率為 89.85%,駕考題庫文本的正確率為87.33%。
關(guān)鍵詞:駕駛規(guī)則庫;自然語言處理;提取
中圖分類號:TP181????? 文獻標識碼:A
Research on Automatic Extraction Method of Driverless Rules
HUANG Zhi1 ,ZHOU Jin1 ,HE Ye2
(1.State Grid Hunan Electric Power Limited Company,Changsha, Hunan 410014,China;
2.China Merchants Bank Network Technology Co. LTD,Shenzhen, Guangdong 518057,China)
Abstract:Nowadays, the test technology of driverless vehicle mainly tests the intelligent level of driverless vehicle by means of virtual test and field test, and improves the safety of driverless vehicle by continuous learning and summarizing experience. This method consumes a lot of manpower, material resources and time. Therefore, from the perspective of text, this paper uses the driving behavior related text, through NLP technology and rule-based method to build an driverless rule base, according to which to help test whether the driverless vehicle can meet the requirements of road safety. The experimental results show that the accuracy rate of rule extraction is 89.85% and the accuracy rate of driving test database text is 87.33%.
Key words:driving rule base; natural language processing;extraction
隨著人工智能的不斷進步和在汽車領(lǐng)域的應(yīng)用,汽車的智能水平正逐步提高,無人駕駛汽車的測試方法也在不斷的更新[1]。無人駕駛汽車作為解決智能交通、安全出行的重要方案,保證其不會造成交通事故并能夠避免危險的發(fā)生是無人駕駛汽車測試的重要目標。
從已發(fā)布的無人駕駛汽車的安全性和可靠性評估中,為了測試事故率極低的目標汽車,僅道路測試就需要行駛不計其數(shù)的里程數(shù)[2]。而隨著虛擬現(xiàn)實技術(shù)的發(fā)展,虛擬測試逐漸成為主流測試方法之一,對不同駕駛情況進行仿真,針對仿真結(jié)果來優(yōu)化無人駕駛汽車[3]。一些測試研究人員從傳統(tǒng)軟件測試的角度出發(fā),通過對交通規(guī)則進行形式化分析來對無人駕駛車輛行為進行驗證。如文獻[4]提出一種形式化方式來驗證自動車輛安全性。文獻[5]使用基于邏輯的方法,確定無人駕駛車輛在事故中應(yīng)承擔的責任。文獻[6]利用線性時序邏輯(LTL)形式化了部分德國超車交通規(guī)則。目前國內(nèi)對于交通法規(guī)在無人駕駛汽車測試方面的研究主要放在了無人駕駛汽車造成的犯罪和認定[7]。而對于交通法規(guī)上的應(yīng)用,研究重點放在了信息的抽取和使用上,如文獻[8]利用NLP技術(shù)構(gòu)建了一個開源交通信息采集及分析系統(tǒng)來幫助道路的規(guī)劃。
自然語言處理(NLP)相關(guān)的技術(shù)研究不斷創(chuàng)新和發(fā)展,其應(yīng)用也擴展到社會的各個方面。文獻[9]通過Stanford NLP工具包對winemag網(wǎng)站上的7萬多條葡萄酒評論,通過顏色、氣味、城市等關(guān)鍵詞進行文本分類處理,從而對葡萄酒進行評級。文獻[10]開發(fā)一套自然語言處理工具,用于識別和注釋意大利語文本報告中的各種考古實體。文獻[11]利用NLP技術(shù)處理早期的軟件需求,包括實現(xiàn)劃分需求優(yōu)先級和分類等目標,并提出了9種建議使用的NLP相關(guān)工具。而隨著深度學習的研究并不斷進步,人們利用深度學習的模型來解決各種NLP問題,并取得了巨大的成功。文獻[12]總結(jié)了產(chǎn)生對抗性文本的最新方法,并提出了一個分類法來對文本進行分類。文獻[13]提出了一個基于深度學習的NLP本體種群系統(tǒng)來填充生物分子網(wǎng)絡(luò)本體,從文本數(shù)據(jù)中識別、提取和分類涉及生物分子網(wǎng)絡(luò)本體概念的新實例。文獻[14]利用神經(jīng)網(wǎng)絡(luò)在漢語分詞中的應(yīng)用,提出了一種利用高資源語料庫改進低資源分詞的轉(zhuǎn)移學習方法。文獻[15]對web上大量的醫(yī)學診斷的相關(guān)信息進行提取,開發(fā)了一個智能系統(tǒng),通過患者對病痛的描述,智能為患者推薦藥物。文獻[16]利用開放式信息抽取模型和詞匯特征以及語義關(guān)系,從哈薩克雙語新聞網(wǎng)站的文本中提取句子中的主謂賓,并以RDF三元組格式表示。
上述文獻研究了無人駕駛汽車的測試方法和自然語言處理的應(yīng)用,但是在國內(nèi)并沒有某項研究是利用交通法規(guī)來生成規(guī)則庫來輔助無人駕駛汽車測試。因此本研究提出一種利用NLP技術(shù)和基于規(guī)則的無人駕駛規(guī)則庫的生成方法。
1 相關(guān)研究
1.1 NLP
自然語言處理技術(shù)服務(wù)于大數(shù)據(jù)的文本處理,它的主要任務(wù)包括分詞和詞性標注,對句法、語義、篇章的分析,文本的分類以及自然語言的生成,以及信息的檢索和抽取等等。自然語言處理的基礎(chǔ)流程主要是下面五個步驟:
1)獲取語料。語料是在實際生活中使用過的語言材料,語料的集合稱為語料庫。語料庫就是一個電子文本集合。實驗中的語料庫來源主要有三種:一是公司或者組織積累或者整理的大量紙質(zhì)材料或者電子文檔;二是選擇國內(nèi)外研究人員歸納總結(jié)的開放數(shù)據(jù)集;三是通過爬蟲,在網(wǎng)頁中抓取自己所需要的數(shù)據(jù)。
2)語料預(yù)處理。對語料進行預(yù)處理主要包括四個步驟:語料清洗、分詞、詞性標注和去停用詞。語料清洗是將現(xiàn)有語料中,不符合研究內(nèi)容或者視為噪音的部分去除掉;分詞主要是將句子拆分成一個個單獨的詞;詞性標注是將每個詞標注上詞性標簽,如a、v、p等等;清除停用詞是將文本中一些標點符號、語氣詞、助詞等不影響句子語義的詞語去掉,方便之后處理,這一步驟是否需要根據(jù)任務(wù)目標來看。
3)特征化,也稱為向量化。主要把字詞表示成向量,這樣可以通過計算機計算向量的偏差來表現(xiàn)不同詞之間的相似性。在這個階段常用是詞向量和詞袋模型(BOW)這兩種方法。
4)模型訓練。在構(gòu)造好特征向量之后,使用不同的機器學習如KNN、K-meand或者深度學習模型如CNN、RNN、LSTM來進行訓練。在實驗主要通過調(diào)節(jié)參數(shù)來提高模型的泛化能力。
5)對模型的效果進行評估。主要通過準確率、召回率和F值等指標來衡量模型的好壞。
在駕駛規(guī)則庫提取中,只進行了前兩步流程,之后并未構(gòu)建相應(yīng)的模型,而是直接使用LTP訓練好的數(shù)據(jù)模型對字詞進行標注。
1.2 LTP
LTP語言技術(shù)平臺(Language Technology Platform),是哈爾濱工業(yè)大學開發(fā)的一套中文語言處理系統(tǒng),它包括了詞性標注、角色標注等中文語言處理模塊。并且LTP提供基于動態(tài)鏈接庫(DLL)的API,網(wǎng)絡(luò)服務(wù)以及可視化工具來分析結(jié)果。
LTP是一套高性能的中文NLP分析工具,它將一系列底層的自然語言處理任務(wù)進行封裝,通過接口的方式對外提供服務(wù),使上層研究人員可以在底層任務(wù)的基礎(chǔ)上開始進行研究而無需訓練相應(yīng)的模型,節(jié)省了大量研究時間和減少了學習成本。針對除C++之外的不同開發(fā)語言,官方對LTP的接口進行了相對應(yīng)的再次封裝的,如Java語言的ltp4j,Python語言的PyLTP。本課題主要開發(fā)語言是Python,因此選擇了PyLTP。在后續(xù)實驗中,都將使用LTP工具進行分詞、詞性標注、語義角色標注等工作。
2 規(guī)則提取方法
2.1 駕駛規(guī)則提取流程
在獲得文本的語料庫之后,將對語料庫進行語義角色標注,并對標注進行去冗余處理。在本課題的方法中,將給出兩種去冗余標注的方法以及對應(yīng)的提取規(guī)則。通過自定義提取規(guī)則對標注文本進行提取。
2.2 過濾冗余標注
LTP進行角色標注的結(jié)果是有多種情況的,且存在同一條語料在不同標注場次有不同結(jié)果,只有先選出最完整的能夠準確表達語義的標注,才能進行之后的分析。這一步至關(guān)重要,因為如果缺少句子成分,那么之后的提取變得毫無意義。這種影響語義理解的標注結(jié)果我們稱之為錯誤角色標注。下面提供了兩種過濾冗余標注的方法。
方法一:整行標注清除。
該方法主要是用于從多行標注結(jié)果中選擇出最合適的一條或者幾條標注。該方法主要實現(xiàn)邏輯如下:
1)保存每一個role的最小序列號start和最大序列號end,作為下一個role的min、max的數(shù)值。
2)當滿足start <= min<= max <= end 時,表示上一個role的內(nèi)容不如當前role,刪除掉上一輪role。
3)當滿足max >= end 時,說明這個標注的區(qū)間已經(jīng)在上一個role中存在了,舍棄這個標注。
4)對角色標注有錯誤的語料打上標記,輸出過濾結(jié)果。
方法二:單個標注清除。
與方法一刪去整一條role不同,該方法對每一條role中的標注進行判斷,最后得到的結(jié)果中沒有重復的標注區(qū)間。該方法主要實現(xiàn)邏輯如下:
1)將多個role中的標注都放到詞典中,以動詞序列+短語起始序列+短語終止序列號為鍵,以標注+標注區(qū)間為值。
2)當某個區(qū)間是另一個區(qū)間的子集,刪除該區(qū)間。
3)重新構(gòu)建role數(shù)據(jù)格式,每個role中按標注區(qū)間的起始序號升序排序。
4)對角色標注有錯誤的語料打上標記,結(jié)果role按動詞序列升序排序,輸出結(jié)果。
2.3 提取規(guī)則
根據(jù)過濾冗余標注的第一種方法——整行標注清除法,該方法會對整行標注進行刪除,它的結(jié)果特點在于在去重的基礎(chǔ)上最大化的保留了原始的角色標注結(jié)果。根據(jù)標注過濾結(jié)果的特點進行分析,可以構(gòu)建相應(yīng)的提取規(guī)則來提取條件短語和行為短語。提取規(guī)則一流程如圖2所示。
根據(jù)過濾冗余標注的第二種方法——單個標注清除法,該方法對全部的標注進行了篩選、排序,并重新構(gòu)建輸出格式,這樣的結(jié)果去除了重復成分,且按照詞語的初始序列范圍的初始序列來對標注排序,保證了詞語標注在原語料中的順序。單個標注清除法得到的結(jié)果標注可以分為兩類處理,一類是只有一行role的情況,另一類是有多行role的情況。這兩種提取流程組成提取規(guī)則二。
當標注結(jié)果只有一行role時,駕駛條件和行為的提取流程如圖3所示。
當結(jié)果是有多行role時,不用再單獨考慮每一類標注類型,直接利用標注和詞語特征提取條件和行為短語。每一行role的處理如流程圖4所示。
2.4 提取后處理
在根據(jù)角色標注特征將短語放入條件隊列和行為隊列之后,可以根據(jù)自定義的條件詞詞典和行為詞詞典對結(jié)果進行進一步分類處理。由于在過濾冗余標注處理中,動詞并未進入去重標準,因此存在多余的動詞,所以需要對條件隊列和行為隊列中的短語去重。并且可以刪除“駕駛?cè)恕薄ⅰ榜{駛?cè)艘边@種主語或者主謂短語等等無效詞,這些詞語的去除不會影響提取結(jié)果,保留下來拼接語句時反而導致語句不通順。
2.5 標注錯誤語句處理方法
由于在過濾冗余標注階段,被標記為錯誤標注的句子過多,針對這些句子繼續(xù)提取駕駛條件和行為。觀察文本發(fā)現(xiàn)以‘,為分割符對句子分塊,大多數(shù)情況下,最后一塊的短語一定是駕駛行為,并且部分句子以逗號分隔條件和行為,如“準備超車,應(yīng)當提前開啟左轉(zhuǎn)向燈?!?,逗號之前是條件,逗號之后是行為。而對于除最后一塊短語的前面所有的語句塊先全部看做駕駛條件。之后,通過行為詞詞典構(gòu)建正則表達式,將捕獲到行為詞的條件隊列中的語句塊移動至行為隊列中。
3 實驗結(jié)果
3.1 數(shù)據(jù)獲取
從華律網(wǎng)中的民商法類部分,通過直接復制文本的方法獲取到《安全條例》文本,獲取的文本存為TXT格式。
駕考題庫文本的獲取,可在聚合數(shù)據(jù)官網(wǎng)注冊登陸之后,申請唯一appKey作為用戶憑證,之后進行數(shù)據(jù)請求獲得所有題庫,以JSON形式存儲。
3.2 預(yù)處理
《安全條例》中部分文本與駕駛規(guī)則無關(guān),部分條例是關(guān)于非機動車、行人等等,這些內(nèi)容直接過濾。之后對剩余的文本進行標準化處理,主要過程如下:
分句。對于一條安全條例,可能存在多個句子。因此,以標點符號“?!被蛘摺?”來切分句子。
關(guān)聯(lián)語句處理。在一些安全條例中可能存在在多類條件下,車輛需滿足的同一駕駛行為。比如:“機動車在行駛過程中遇到以下情形之一時”。這需要將多類條件與相應(yīng)行為合并成一條語句。也可能存在一個大條件下,多個小條件下的駕駛行為,如:“機動車轉(zhuǎn)彎時要恪守以下規(guī)定”等條例。處理文本時,將大條件放入每一條規(guī)定的最前面。
句子拆分。條例中當有多個并列詞語時,將其拆成多個以并列詞之一為主語的句子。一般來說,并列詞語都是以“、”分隔詞語,當分隔詞之間是“或”的關(guān)系,就可通過字符串切割加文本拼接進行處理,然后人工調(diào)整結(jié)果。但如果詞之間是“與”的關(guān)系,就不能拆分,而是作為一條語句處理。
去除多余主語。在文本中,所有的行為的發(fā)起者都是機動車,因此去除“機動車”不會影響語義,且有利于之后的語義角色分析的準確度。
而關(guān)于駕考題庫的預(yù)處理,由于圖片無法處理,所以JSON數(shù)據(jù)中的圖片類型的題目不在本課題研究的考慮范圍內(nèi)。其次,很多駕考題目是關(guān)于扣分、罰款的刑罰條例,駕駛?cè)嘶緝渲R,以及一些危險操作的危害等,這些與本課題的研究的駕駛行為關(guān)系不大,均通過過濾詞將這些題目過濾掉。之后通過答案映射表,將每條數(shù)據(jù)的question字段和answer字段進行拼接,將問題和答案合并成一條通順的語句。這個過程主要通過正則表達式的匹配和字符串的拼接來進行。
在對文本進行過濾和標準化之后,即可利用LTP工具進行分詞,在分詞后將駕駛專業(yè)術(shù)語重新拼接,之后進行詞性標注,至此,我們得到了《安全條例》語料庫和駕考題庫語料庫。
3.3 實驗結(jié)果
1)《安全條例》文本規(guī)則提取結(jié)果
注意:上表中標注錯誤語句條數(shù)的數(shù)量在±2中浮動,錯誤提取語句條數(shù)也在±2中浮動。
從實驗數(shù)據(jù)來看,由于《安全條例》文本數(shù)量較少,兩種方式的規(guī)則提取正確率差別不大。但從結(jié)果來看,對《安全條例》文本的規(guī)則提取選擇方式一,即整行標注清除的方法清除冗余標注,并選擇相對應(yīng)的抽取規(guī)則一。
發(fā)現(xiàn)標注錯誤語句中可正確提取語句的情況如表2所示。
經(jīng)過方式一對文本進行規(guī)則提取,并對LTP工具標注錯誤的語句進行進一步處理,最終從《安全條例》文本中提取規(guī)則的情況如表3所示。
通過處理,最后對《安全條例》文本的駕駛規(guī)則提取準確率為89.85%。
2)駕考題庫文本規(guī)則提取結(jié)果
注意:上表中標注錯誤語句條數(shù)的數(shù)量在±4中浮動,錯誤提取語句條數(shù)也在±4中浮動。
綜上數(shù)據(jù),對駕考題庫文本的規(guī)則提取選擇方式二,即單個標注清除的方法清除冗余標注,并選擇相對應(yīng)的抽取規(guī)則二。
對標注錯誤的語句進行處理后得到數(shù)據(jù)如表5所示。
經(jīng)過方式二對駕考題庫文本進行規(guī)則提取,并對標注錯誤的語句進行了進一步處理,最終從架考題庫文本中提取規(guī)則的情況如表6所示。
由實驗結(jié)果可知,經(jīng)過處理,對駕考題庫文本的駕駛規(guī)則提取準確率提升為87.33%。
3.4 駕駛規(guī)則庫展示
駕駛規(guī)則庫最終可展示為兩種形式,一種是以TXT文件形式存儲駕駛規(guī)則,另一種則是在數(shù)據(jù)庫中存儲,后者主要是為了之后方便利用提取的規(guī)則數(shù)據(jù)。TXT文件形式如圖5所示。
4 結(jié) 論
主要對無人駕駛規(guī)則庫的規(guī)則提取方法進行研究。通過網(wǎng)頁爬蟲和API接口調(diào)用獲取了《安全條例》和駕考題庫兩類與交通規(guī)則相關(guān)的文本,通過選定過濾詞典將不相關(guān)的文本去除,最后通過人工和程序?qū)ΜF(xiàn)有文本進行標準化。之后通過哈工大語言技術(shù)平臺LTP中已經(jīng)訓練好的數(shù)據(jù)模型對語料進行分詞和詞性標注處理。通過基于規(guī)則的方式對語料標注結(jié)果進行駕駛條件和駕駛行為的提取。提出了兩種過濾冗余標注的方法,并針對不同的方法處理的結(jié)果,又提出了兩種相應(yīng)的提取規(guī)則。實驗數(shù)據(jù)表明,該方法在駕駛規(guī)則的提取上取得了不錯的效果,也為后續(xù)無人駕駛測試工作提供一條新思路。
本研究仍存在一些不足,如LTP工具在角色標注方面存在著不確定性,對提取規(guī)則的準確率有限制。之后可以嘗試使用其他的語言處理工具如 ICTCLAS、HaNLP、斯坦福分詞系統(tǒng)等等。另外,提出的方法對一些特殊的句子無法進行提取,之后可以擴充相應(yīng)的提取規(guī)則或者使用其他方法來優(yōu)化系統(tǒng)。其次,本研究只對《安全條例》和駕考題庫進行了處理,在以后的研究中,要擴充語料的來源。比如可以針對錯誤的行為進行相應(yīng)的提取,并且可以從交通事故等文本中來提取駕駛規(guī)則。
參考文獻
[1] 吳海飛,宋雪松,曹寅. 自動駕駛汽車測試評價方法體系研究[J]. 質(zhì)量與標準化, 2018, (5):50-52.
[2] 范志翔,孫巍,潘漢中,等.自動駕駛汽車測試技術(shù)發(fā)展現(xiàn)狀與思考[J].中國標準化,2017,(20):47-48.
[3] ZHANG Shou-wen, HU Jia-hao, WANG Zi-ran. Autonomous-driving vehicle test technology based on virtual reality[J].The Journal of Engineering, 2018, (16):1768-1771.
[4] ALTHOFF M, JOHN M. D. Online verification of automated road vehicles using reachability analysis[J]. IEEE Transactions on Robotics. 2014,30(4): 903-918.
[5] RIZALDI A,MATTHIAS A. Formalising traffic rules for accountability of autonomous vehicles[C]. IEEE 18th International Conference on Intelligent Transportation Systems,2015: 1658-1665.
[6] RIZALDI A, KEINLOLZ J. Formalising and monitoring traffic rules for autonomous vehicles in Isabelle/HOL[C]. International Conference on Integrated Formal Methods 2017: Integrated Formal Methods ,2017:50-66.
[7] 時怡.自動駕駛汽車的交通事故責任分析及規(guī)則應(yīng)對[J].六盤水師范學院學報,2019,31(05):72-78.
[8] 呂宜生,陳圓圓,趙學亮,等.開源交通信息獲取及分析系統(tǒng)[A]. 2017中國自動化大會(CAC2017)暨國際智能制造創(chuàng)新大會(CIMIC2017)論文集[C]. 2017:942-949.
[9] HENDRICKX I, LEFEVER E, CROIJMANS I, et al. Antal van den Bosch:very quaffable and great fun: applying NLP to wine reviews[C]. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics, 2016:306-312.
[10]FELICETTI A, WILLIAMS D, GALLUCCIO I, et al. NLP tools for knowledge extraction from Italian archaeological free text[C]. 2018 3rd Digital Heritage International Congress (Digital HERITAGE) held jointly with 2018 24th International Conference on Virtual Systems & Multimedia (VSMM 2018), San Francisco, CA, USA, 2018: 1-8.
[11]NAZIR F, BUTT W H, ANWAR M.W, et al. (2017) The applications of natural language processing (NLP) for software requirement engineering -a systematic literature review[C]. In: Kim K., Joukov N. (eds) Information Science and Applications 2017. ICISA 2017. Lecture Notes in Electrical Engineering, Springer, Singapore,2017,424:1-10.
[12]ALSHEMAL I, JUGAI KALITA B.Improving the reliability of deep neural networks in NLP: a review[J]. Knowledge-Based Systems,2020,105210 :1-19.
[13]AYADI? A, SAMET A,? ZANNI-MERK C.Ontology population with deep learning-based NLP: a case study on the Biomolecular Network Ontology[C]. 23rd International Conference on Knowledge-Based and Intelligent Information & Engineering Systems,KES:2019: 572-581.
[14]XU Jing-jing, MA Shu-ming, ZHANG Yi, et al. Transfer deep learning for low-resource Chinese word segmentation with a novel neural network. NLPCC 2017: 721-730.
[15]PRIYADARSHI A, KUMAR SAHA S.Web information extraction for finding remedy based on a patient-authored text: A Study on Homeopathy[J]. NetMAHIB,2020, 9(1): 1-12.
[16]KHAIROVA N, PETRASOVA S, MAMYRBAYEV O, et al. Open information extraction as additional source for Kazakh ontology generation[J]. ACIIDS ,2020: 86-96.