家好,我是海擁,專注于前端知識(shí)的分享。今天將給大家?guī)淼氖?400 個(gè)最常見的 JavaScript 面試問答第一部分。接下來我會(huì)持續(xù)更新(爭(zhēng)取日更,也可能每周3-5篇),每小節(jié)大概 10 道題左右,總共會(huì)有 400 多道。
大家一定要記得點(diǎn)贊收藏呀!!!
有很多方法可以在 javascript 中創(chuàng)建對(duì)象,如下所示
創(chuàng)建空對(duì)象的最簡(jiǎn)單方法是使用 Object 構(gòu)造函數(shù)。目前不推薦這種方法。
var object = new Object();
Object 的 create 方法通過將原型對(duì)象作為參數(shù)傳遞來創(chuàng)建一個(gè)新對(duì)象
var object = Object.create(null);
當(dāng)傳遞 null 作為參數(shù)時(shí),對(duì)象字面量語法等效于 create 方法
var object = {};
創(chuàng)建任何函數(shù)并應(yīng)用 new 運(yùn)算符來創(chuàng)建對(duì)象實(shí)例,
function Person(name){
var object = {};
object.name=name;
object.age=21;
return object;
}
var object = new Person("Sudheer");
這類似于函數(shù)構(gòu)造函數(shù),但它使用原型作為其屬性和方法,
function Person(){}
Person.prototype.name = "Sudheer";
var object = new Person();
這等效于使用具有函數(shù)原型的對(duì)象創(chuàng)建方法創(chuàng)建的實(shí)例,然后使用實(shí)例和參數(shù)作為參數(shù)調(diào)用該函數(shù)。
function func {};
new func(x, y, z);
(或者)
// 使用函數(shù)原型創(chuàng)建一個(gè)新實(shí)例。
var newInstance = Object.create(func.prototype)
// 調(diào)用函數(shù)
var result = func.call(newInstance, x, y, z),
// 如果結(jié)果是非空對(duì)象,則使用它,否則只使用新實(shí)例。
console.log(result && typeof result === 'object' ? result : newInstance);
ES6 引入類特性來創(chuàng)建對(duì)象
class Person {
constructor(name) {
this.name = name;
}
}
var object = new Person("Sudheer");
Singleton 是一個(gè)只能實(shí)例化一次的對(duì)象。對(duì)其構(gòu)造函數(shù)的重復(fù)調(diào)用返回相同的實(shí)例,這樣可以確保它們不會(huì)意外創(chuàng)建多個(gè)實(shí)例。
var object = new function(){
this.name = "Sudheer";
}
原型鏈用于基于現(xiàn)有對(duì)象構(gòu)建新類型的對(duì)象。它類似于基于類的語言中的繼承。
對(duì)象實(shí)例上的原型可通過Object.getPrototypeOf(object)或proto屬性獲得,而構(gòu)造函數(shù)上的原型可通過Object.prototype 獲得。
Call、Apply 和 Bind 之間的區(qū)別可以用下面的例子來解釋,
call: call() 方法調(diào)用一個(gè)函數(shù),給定的this值和參數(shù)一一提供
var employee1 = {firstName: 'Haiyong', lastName: 'Rodson'};
var employee2 = {firstName: 'Jimmy', lastName: 'Baily'};
function invite(greeting1, greeting2) {
console.log(greeting1 + ' ' + this.firstName + ' ' + this.lastName+ ', '+ greeting2);
}
invite.call(employee1, 'Hello', 'How are you?'); // Hello Haiyong Rodson, How are you?
invite.call(employee2, 'Hello', 'How are you?'); // Hello Jimmy Baily, How are you?
apply:調(diào)用具有給定this值的函數(shù),并允許你將參數(shù)作為數(shù)組傳入
var employee1 = {firstName: 'Haiyong', lastName: 'Rodson'};
var employee2 = {firstName: 'Jimmy', lastName: 'Baily'};
function invite(greeting1, greeting2) {
console.log(greeting1 + ' ' + this.firstName + ' ' + this.lastName+ ', '+ greeting2);
}
invite.apply(employee1, ['Hello', 'How are you?']); // Hello Haiyong Rodson, How are you?
invite.apply(employee2, ['Hello', 'How are you?']); // Hello Jimmy Baily, How are you?
bind:返回一個(gè)新函數(shù),允許你傳遞任意數(shù)量的參數(shù)
var employee1 = {firstName: 'Haiyong', lastName: 'Rodson'};
var employee2 = {firstName: 'Jimmy', lastName: 'Baily'};
function invite(greeting1, greeting2) {
console.log(greeting1 + ' ' + this.firstName + ' ' + this.lastName+ ', '+ greeting2);
}
var inviteEmployee1 = invite.bind(employee1);
var inviteEmployee2 = invite.bind(employee2);
inviteEmployee1('Hello', 'How are you?'); // Hello Haiyong Rodson, How are you?
inviteEmployee2('Hello', 'How are you?'); // Hello Jimmy Baily, How are you?
Call 和 apply 可以互換。兩者都立即執(zhí)行當(dāng)前函數(shù)。你需要決定是發(fā)送數(shù)組還是逗號(hào)分隔的參數(shù)列表更容易。你可以通過處理 Call 用于逗號(hào)(分隔列表)和 Apply 用于Array來記住。
而 Bind 創(chuàng)建一個(gè)新函數(shù),該函數(shù)將this設(shè)置為傳遞給 bind() 的第一個(gè)參數(shù)。
JSON是一種基于文本的數(shù)據(jù)格式,遵循 JavaScript 對(duì)象語法,由道格拉斯·克羅克福德 (Douglas Crockford) 推行。 當(dāng)你想通過網(wǎng)絡(luò)傳輸數(shù)據(jù)時(shí)它很有用,它基本上只是一個(gè)擴(kuò)展名為 .json 的文本文件,以及一個(gè) MIME 類型的 application/json
解析:將字符串轉(zhuǎn)換為原生對(duì)象
JSON.parse(text)
字符串化:將本機(jī)對(duì)象轉(zhuǎn)換為字符串,以便可以通過網(wǎng)絡(luò)傳輸
JSON.stringify(object)
所述slice()方法返回在數(shù)組作為新的數(shù)組對(duì)象中選定的元件。它選擇從給定開始參數(shù)開始的元素,并在給定的可選結(jié)束參數(shù)處結(jié)束,不包括最后一個(gè)元素。如果省略第二個(gè)參數(shù),則它會(huì)一直選擇到最后。
這種方法的一些例子是,
let arrayIntegers = [1, 2, 3, 4, 5];
let arrayIntegers1 = arrayIntegers.slice(0,2); // returns [1,2]
let arrayIntegers2 = arrayIntegers.slice(2,3); // returns [3]
let arrayIntegers3 = arrayIntegers.slice(4); //returns [5]
==注意==: Slice 方法不會(huì)改變?cè)紨?shù)組,而是將子集作為新數(shù)組返回。
splice() 方法用于向/從數(shù)組添加/刪除項(xiàng)目,然后返回被刪除的項(xiàng)目。第一個(gè)參數(shù)指定插入或刪除的數(shù)組位置,而選項(xiàng)第二個(gè)參數(shù)指示要?jiǎng)h除的元素?cái)?shù)。每個(gè)附加參數(shù)都添加到數(shù)組中。
這種方法的一些例子是,
let arrayIntegersOriginal1 = [1, 2, 3, 4, 5];
let arrayIntegersOriginal2 = [1, 2, 3, 4, 5];
let arrayIntegersOriginal3 = [1, 2, 3, 4, 5];
let arrayIntegers1 = arrayIntegersOriginal1.splice(0,2); // returns [1, 2]; original array: [3, 4, 5]
let arrayIntegers2 = arrayIntegersOriginal2.splice(3); // returns [4, 5]; original array: [1, 2, 3]
let arrayIntegers3 = arrayIntegersOriginal3.splice(3, 1, "a", "b", "c"); //returns [4]; original array: [1, 2, 3, "a", "b", "c", 5]
==注意==: Splice 方法修改原始數(shù)組并返回刪除的數(shù)組。
表格形式的一些主要區(qū)別
slice() | splice() |
不修改原始數(shù)組(不可變) | 修改原始數(shù)組(可變) |
返回原始數(shù)組的子集 | 將刪除的元素作為數(shù)組返回 |
用于從數(shù)組中選取元素 | 用于在數(shù)組中插入或刪除元素 |
Object 與Maps 的相似之處在于,它們都允許您將鍵設(shè)置為值、檢索這些值、刪除鍵以及檢測(cè)某個(gè)鍵是否存儲(chǔ)了某些內(nèi)容。由于這個(gè)原因,對(duì)象在歷史上被用作地圖。但是在某些情況下,使用 Map 有一些重要的區(qū)別。
JavaScript 提供了嚴(yán)格(===, !==) 和類型轉(zhuǎn)換(==, !=) 相等比較。嚴(yán)格運(yùn)算符考慮變量的類型,而非嚴(yán)格運(yùn)算符根據(jù)變量的值進(jìn)行類型校正/轉(zhuǎn)換。嚴(yán)格的運(yùn)算符遵循以下不同類型的條件,
NaN 不等于任何東西,包括 NaN。
正零和負(fù)零彼此相等。
0 == false // true
0 === false // false
1 == "1" // true
1 === "1" // false
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
[]==[] or []===[] //false, 引用內(nèi)存中的不同對(duì)象
{}=={} or {}==={} //false, 引用內(nèi)存中的不同對(duì)象
箭頭函數(shù)是函數(shù)表達(dá)式的較短語法,沒有自己的this、arguments、super 或 new.target。這些函數(shù)最適合非方法函數(shù),它們不能用作構(gòu)造函數(shù)。
希望大家能夠給海海 點(diǎn)贊+收藏+關(guān)注 ,你的支持是海海更新的動(dòng)力!后面我會(huì)持續(xù)分享面試經(jīng)驗(yàn) & 前端相關(guān)的專業(yè)知識(shí)。
最后祝大家都能找到滿意的實(shí)習(xí)和 offer!
位小伙伴們,繼續(xù)。接下來講解html基礎(chǔ)里面的簡(jiǎn)答題的內(nèi)容。
·什么是未否標(biāo)準(zhǔn)以及未否標(biāo)準(zhǔn)的構(gòu)成?在這里面未否標(biāo)準(zhǔn)也稱之為王爺標(biāo)準(zhǔn),它是有一系列的標(biāo)準(zhǔn)構(gòu)成。這個(gè)地方有沒有問題?沒有。
·接下來主要講當(dāng)前對(duì)應(yīng)的內(nèi)容,就是結(jié)構(gòu)表現(xiàn)跟行為結(jié)構(gòu)。在這里面是干什么的?比如主要分為hxml和hxmtml兩部分。表現(xiàn)用來是做裝飾,裝飾哪些?板式顏色大小及外觀樣式。則css行為。
·網(wǎng)頁模型里面定義和交互編寫,通常包括動(dòng)模和ecmsk部分。在這里面可以演什么?叫做gs。
·在html中type標(biāo)記常用的屬性有哪些?這個(gè)東西就是屬于日常里面一定要會(huì)的alone水平對(duì)齊方式,寬度、高度、背景顏色、邊框。sailor spacex指的是單元格跟單元格之間的間距。sailor pending叫做表格內(nèi)部之間的邊距。在這里面之間解析過九十五的邊緣。
·這一部分內(nèi)容指的是什么?就是pending。sailor pendingfund在這里面可以理解什么?表格外部的框架。
·在這里面有對(duì)應(yīng)的內(nèi)容,基本上都有下列選項(xiàng)中填上正確代碼。我是et標(biāo)題,是不是只要寫個(gè)h1開頭,h1結(jié)尾,文字是不是寫p標(biāo)簽?這個(gè)應(yīng)該沒問題。
·減速html在vip標(biāo)準(zhǔn)中屬于哪個(gè)分層其作用?在這里面html是超文本標(biāo)記語言的簡(jiǎn)寫,是網(wǎng)頁三層中屬于當(dāng)前對(duì)應(yīng)的結(jié)構(gòu)層負(fù)責(zé)。在這里面定義當(dāng)前的內(nèi)容和羽翼不負(fù)責(zé)樣式跟行為樣式對(duì)應(yīng)的是css,行為對(duì)應(yīng)的是js。
·減速網(wǎng)頁中常用的三種圖像格式:gp、png跟jpg、png和gp的公優(yōu)點(diǎn)。在這里面gp優(yōu)點(diǎn)是什么?常用的圖片格式,而且質(zhì)量小便于傳輸,而且顏色會(huì)更加的逼真。
·缺點(diǎn)什么?不只是透明透明度,png是什么?就是支持透明透明度,有png-8跟png-24。
·缺點(diǎn)是什么?對(duì)瀏覽器的低端瀏覽器適應(yīng)不好。gp圖片支持透明且是動(dòng)效圖片,但缺點(diǎn)是什么?只能存不超過二五六顏色的內(nèi)容。
·在這里面對(duì)應(yīng)的信息可以暫停一下再讀一遍。如果想耍賴,其實(shí)在這里面把對(duì)方的優(yōu)點(diǎn)寫成對(duì)應(yīng)的缺點(diǎn)其實(shí)好像也是可以的,但是盡可能描述正確。
接下來請(qǐng)舉例常用的單標(biāo)跟雙標(biāo)。在這里面常用的雙標(biāo)就是所見到的這一系列常用的單標(biāo)是當(dāng)前的BR跟HE。
·在這里面也可以去補(bǔ)充一些,但是算不算常用其實(shí)應(yīng)該是主要一應(yīng)該叫什么,主要在寫的時(shí)候過程當(dāng)中知道的。
·在這里面請(qǐng)描述動(dòng)態(tài)資源跟靜態(tài)資源。首先要知道什么叫動(dòng)態(tài),什么叫靜態(tài)。
→第一個(gè)要理解一個(gè)誤區(qū),動(dòng)態(tài)不是指指的會(huì)動(dòng)就叫動(dòng)態(tài)。動(dòng)態(tài)一般指的是有數(shù)據(jù)的交互,數(shù)據(jù)的交互通常是網(wǎng)頁跟服務(wù)器之間的數(shù)據(jù)的發(fā)送信息,在這里面會(huì)導(dǎo)致頁面數(shù)據(jù)的更改。
→靜態(tài)資源是什么?就是直接加載會(huì)有一個(gè)具體的產(chǎn)線的內(nèi)容,所以在這里面可以看到天臺(tái)資源有未可服務(wù)器讀取后直接返回,只要服務(wù)器沒有修改這些文件,用戶每次訪問都是一模一樣的。
→而動(dòng)態(tài)資源是什么?隨著每次請(qǐng)求都需要計(jì)算,所以服務(wù)器里面如果在這里面當(dāng)前的人員對(duì)當(dāng)前的頁面已經(jīng)改變,就會(huì)在服務(wù)器上面對(duì)應(yīng)改,而下次傳回來的時(shí)候就有對(duì)應(yīng)的改變的內(nèi)容。
·接下來在這里面讀取當(dāng)前對(duì)應(yīng)的代碼。在這里面可以看到imagehrc這一整個(gè),其實(shí)這里應(yīng)該是多了一個(gè)符號(hào),這個(gè)符號(hào)應(yīng)該刪掉,所以它有點(diǎn)問題。這個(gè)表示加載不出來的時(shí)候顯示對(duì)應(yīng)內(nèi)容,這個(gè)是高度、寬度,這個(gè)是高度。
·這個(gè)波的是不是寫一個(gè)三對(duì)不對(duì)?完了之后在這里面懸停狀態(tài)時(shí)顯示logo的一個(gè)文本,這里面就推頭,在這里面就有對(duì)應(yīng)的效果。記住這里面一般不要加服,不要加單位,hcss的時(shí)候是一定要加單位的,h t m 5的時(shí)候是可以不加。
解釋一下什么是h5,在這里面h5不僅練習(xí)到新標(biāo)準(zhǔn)而且是h t m l和x h t m l的繼承跟發(fā)展。h5是一個(gè)向下兼容的版本,本質(zhì)上并不是什么新技術(shù),而是在這個(gè)功能上做了一個(gè)極大的豐富,相當(dāng)于一個(gè)方案的整合。
分析下列代碼并回答問題,僅減速代碼的作用,并且描述每個(gè)標(biāo)記及其屬性的意義跟作用。
·首先p就是文本文檔里面展示了正在學(xué)習(xí)嵌套標(biāo)記,同時(shí)這里面的文本的對(duì)齊屬性按照居中文字傾斜且文字加粗的效果,就這樣子。
·在這里面什么什么描述等于什么什么什么什么什么描述等于什么,給它講清楚。
·請(qǐng)簡(jiǎn)要的描述htm語言中table常用的屬性有哪些?這個(gè)在題目里面其實(shí)已經(jīng)講了很多次了。對(duì)應(yīng)的邊框?qū)?yīng)的單元格跟單元格之間的距離,單元格內(nèi)部跟單元格邊框的距離,寬度、高度以及水平對(duì)齊方式。
·背景顏色和當(dāng)前的單音表格的背景。
·請(qǐng)簡(jiǎn)要描述定義列表的簽到形式。在這里面定義列表就是d l d t跟d d 其中d l,只能有一個(gè)d,d可以有多個(gè),在這里面就有對(duì)應(yīng)的內(nèi)容不做描述,各位可以暫停簡(jiǎn)單的看一下。
·接下來是常用的圖像格式,分別減速它們的作用。其實(shí)這道題目講過了,常用的圖像有三種:png、png。png就是動(dòng)畫最多就二五六顏色,png常用于logo小圖標(biāo)和單一的顏色。其實(shí)游戲網(wǎng)頁里面gif用的會(huì)比較多,因?yàn)榭梢陨蓜?dòng)效的效果又是小動(dòng)效,而且加載的時(shí)候資源也不會(huì)占用很大。
如果放視頻,視頻再小也是很大的。png在這里面有png-8和png-24,當(dāng)然還有個(gè)png-32,一般用的比較少,默認(rèn)png-24。png的優(yōu)勢(shì)就是體積更小而且支持半透明,全透明和不透明都支持。
·接下來jpg,jpg的顏色會(huì)比gif和png來的更多,而且本身超過二五六顏色,所以基本上網(wǎng)頁里面的banana和商品圖片還有較大的圖片都常用jpg來進(jìn)行保存。
描述gif、mr與h5的區(qū)別,h5文檔格式與gif、mr文檔格式基本沒有太大差異,僅僅只是gif、mr5的文檔更加的簡(jiǎn)明扼要,以及文檔類型的聲明和編碼格式略有區(qū)別,其實(shí)gif、mr5的羽翼化更加明顯。
·接下來是什么叫相對(duì)路徑?什么叫絕對(duì)路徑?簡(jiǎn)單的說相對(duì)路徑就是通過當(dāng)前的文件去找對(duì)應(yīng)的內(nèi)容,上級(jí)點(diǎn)點(diǎn)斜杠,下級(jí)斜杠,等級(jí)直接找文件以及后綴名。而絕對(duì)路徑是通過盤符進(jìn)行指定查找,但是一般在做絕對(duì)路徑的時(shí)候不太建議,理由很簡(jiǎn)單,上傳到服務(wù)器的時(shí)候有些盤在服務(wù)器上面不一定有,就像前面講過的,常用的就在常用的瀏覽器有哪些,并不表示。
現(xiàn)實(shí)中常用的瀏覽器就是這些,我喜歡用qq瀏覽器,我喜歡用搜狐瀏覽器,這是常用的瀏覽器,但是它屬于五大瀏覽器嗎?它不屬于,就這么理解。怎樣的描述相對(duì)路徑?其實(shí)已經(jīng)描述過了,在這里看到的是一模一樣的。各位可以暫停稍微看一遍。
請(qǐng)描述htm文檔中注視標(biāo)記的作用,在這里面注視標(biāo)記是方便去理解當(dāng)前文檔里面的基本的代碼內(nèi)容,就是方便查找和理解,就這么簡(jiǎn)單。
接下來內(nèi)容也就講完了,希望各希望當(dāng)前的視頻對(duì)在座各位有一點(diǎn)點(diǎn)的幫助,謝謝。
讀:智能問答是人工智能領(lǐng)域中一個(gè)比較受關(guān)注的方向,目前廣泛應(yīng)用于各種垂直或綜合的搜索引擎、智能客服、智能助手以及智能手機(jī)、車載音箱等。本次分享的主題是QQ瀏覽器搜索中的智能問答技術(shù),主要分為以下幾個(gè)部分:
1.背景介紹
2.關(guān)鍵技術(shù)
3.前沿研究
01
背景介紹
1. 問答在搜索中的應(yīng)用
問答的核心是通過理解語言和運(yùn)用知識(shí)來進(jìn)行提問和回答。從應(yīng)用角度看,由于人類有獲取信息的需求和旺盛的好奇心,問答的場(chǎng)景無處不在;從研究角度看,問答是認(rèn)知智能的前沿之一。
問答在搜索場(chǎng)景的應(yīng)用可以分為兩類。一類是滿足用戶的直接搜索需求,即在搜索結(jié)果頁給用戶提供精準(zhǔn)的答案,例如Top1問答卡片。另一類是通過問答的方式與用戶交互,來幫助用戶澄清、細(xì)化和延伸需求,例如推薦和對(duì)話形式的問答。
2. 搜索中的Top1問答
下圖展示了QQ瀏覽器搜索中Top1問答的一些產(chǎn)品形態(tài),包括短答案、長(zhǎng)答案、列表答案、視頻答案、集合和圖片答案。
--
02
關(guān)鍵技術(shù)
1. 搜索問答技術(shù)與系統(tǒng)
搜索中問答的明確需求占比接近1/4。這些問題不限領(lǐng)域,不限類型,一般可分成事實(shí)類和非事實(shí)類。搜索中問答的數(shù)據(jù)源是多種多樣的。從資源類型上看,包括網(wǎng)頁、UGC(用戶生產(chǎn)內(nèi)容,如社區(qū)問答)和PGC(專業(yè)生產(chǎn)內(nèi)容,例如自媒體號(hào))。從文本的組織形態(tài)上來講,數(shù)據(jù)可以分成結(jié)構(gòu)化、半結(jié)構(gòu)化和無結(jié)構(gòu)化三種。結(jié)構(gòu)化的數(shù)據(jù)具有一定約束,以知識(shí)圖譜為代表;半結(jié)構(gòu)化數(shù)據(jù)的典型代表是開放生態(tài)構(gòu)建或者從社區(qū)問答抽取的具有一定格式的問答對(duì)數(shù)據(jù);無結(jié)構(gòu)化數(shù)據(jù)廣泛存在,例如普通的網(wǎng)頁文本。
搜索中的問答技術(shù)主要分為KBQA和DeepQA。
KBQA指基于知識(shí)圖譜的問答,面向的是結(jié)構(gòu)化數(shù)據(jù),底層是離線構(gòu)建的知識(shí)圖譜,在線通過問題解析、圖譜查詢和推理得到答案,主要適用于事實(shí)類問題。
DeepQA是一系列基于搜索和機(jī)器閱讀理解(MRC)的問答技術(shù),可以處理更廣泛的非結(jié)構(gòu)化數(shù)據(jù),基于離線問答內(nèi)容構(gòu)建和理解,在線通過搜索獲得候選文檔、使用機(jī)器閱讀理解技術(shù)來抽取答案,能解決更多問題需求類型。在實(shí)際應(yīng)用中,針對(duì)不同類型的數(shù)據(jù),我們構(gòu)建了三套DeepQA系統(tǒng),分別是優(yōu)質(zhì)問答數(shù)據(jù)源上的獨(dú)立檢索系統(tǒng)、全網(wǎng)搜索結(jié)合在線MRC的通用問答系統(tǒng)、以及端到端問答系統(tǒng)。
下圖右側(cè)展示的是搜索問答系統(tǒng)的整體架構(gòu)。離線部分是問答內(nèi)容的構(gòu)建和理解,比如對(duì)專業(yè)生產(chǎn)內(nèi)容做質(zhì)量和權(quán)威性分析、從全網(wǎng)數(shù)據(jù)中進(jìn)行問答對(duì)的挖掘和選取等;數(shù)據(jù)源包括網(wǎng)頁庫、優(yōu)質(zhì)問答庫和知識(shí)圖譜;在線部分包括搜索問答結(jié)果的召回和排序、段落匹配和答案抽取、知識(shí)圖譜檢索和推理計(jì)算等,以及問答融合決策從多源結(jié)果中決定最終展現(xiàn)給用戶的答案。
2. KBQA:基于知識(shí)圖譜的問答系統(tǒng)
圖譜問答系統(tǒng)的數(shù)據(jù)依據(jù)不同實(shí)體更新的要求分為三路,數(shù)據(jù)通過直接的三元組索引查詢或者圖數(shù)據(jù)庫存儲(chǔ)檢索系統(tǒng)應(yīng)用。
在線圖譜問答的流水線之一是語義解析的方法,系統(tǒng)先對(duì)查詢進(jìn)行領(lǐng)域分類以裝配不同類型的處理流程(例如漢語詩詞類、單實(shí)體類、多實(shí)體關(guān)系類),然后對(duì)查詢進(jìn)行語法樹分析和形式邏輯規(guī)約,在三元組中遞歸查詢和拼裝得到最終答案。該方法的優(yōu)點(diǎn)是支持一些復(fù)雜的查詢推理,且在規(guī)則適用的范疇內(nèi)準(zhǔn)確率較高。另一種流水線是基于深度學(xué)習(xí)的方法,系統(tǒng)首先識(shí)別出具有問答意圖的查詢,然后通過深度模型識(shí)別查詢問題中的實(shí)體,對(duì)實(shí)體屬性和查詢表達(dá)進(jìn)行深度語義匹配映射,計(jì)算出候選結(jié)果并進(jìn)行清洗和排序得到答案。該方法的優(yōu)點(diǎn)是對(duì)查詢語義理解較好,泛化性強(qiáng),召回率較高。
3. DeepQA:基于搜索+機(jī)器閱讀理解的問答系統(tǒng)
下面主要圍繞DeepQA相關(guān)工作展開介紹。
早期的DeepQA系統(tǒng)具有非常復(fù)雜的流水線,例如IBM的Waston,以及2017年第一版“立知“問答。系統(tǒng)包括多個(gè)數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)模塊,在問題分析、答案候選的特征抽取、評(píng)分排序等諸多環(huán)節(jié)都可能有錯(cuò)誤的傳播和積累,可擴(kuò)展性不強(qiáng)。2017年以后,斯坦福的陳丹琦等人提出了一個(gè)面向規(guī)模文檔集的開放域問答系統(tǒng)——DrQA,系統(tǒng)定義了一種新的開放域問答實(shí)現(xiàn)方式,即通過檢索和深度機(jī)器閱讀理解(MRC)產(chǎn)生答案。在SQuAD等公開數(shù)據(jù)集和評(píng)測(cè)的推動(dòng)下,深度機(jī)器閱讀理解發(fā)展迅速,在查詢和文檔語義建模、上下文信息交互建模、答案抽取和預(yù)測(cè)方式建模上都不斷涌現(xiàn)新的方法,2019年機(jī)器閱讀理解系統(tǒng)甚至在事實(shí)類問答上超過了人類水平。
然而在真實(shí)的搜索場(chǎng)景中,DeepQA仍然面臨著很多挑戰(zhàn)。首先是用戶的需求紛繁復(fù)雜,表達(dá)方式也千差萬別,而互聯(lián)網(wǎng)數(shù)據(jù)規(guī)模巨大,需求檢索匹配的難度很大。其次是網(wǎng)頁數(shù)據(jù)多種多樣,頁面類型和格式繁多、質(zhì)量參差、答案的形式不一,機(jī)器閱讀理解面臨較大的挑戰(zhàn)。
下面介紹一些應(yīng)對(duì)搜索場(chǎng)景的問題我們所做的工作。
(1)短答案MRC
短答案MRC任務(wù)的定義是從搜索結(jié)果的多個(gè)文檔中抽取唯一的答案片段,并提供支持答案的文本來源。這個(gè)任務(wù)會(huì)面臨以下一些挑戰(zhàn):
①搜索結(jié)果噪聲過多
噪聲包括不相關(guān)結(jié)果、不一致答案等。短答案抽取模型是一個(gè)多文檔段落抽取的模型,我們將搜索排名topN(常用N=10)的文檔段落輸入到BERT中進(jìn)行表示建模,然后預(yù)測(cè)段落中答案的起始位置。為了解決輸入文檔不相關(guān)的問題,我們將“答案存在性判別”和“答案起止位置預(yù)測(cè)”兩個(gè)目標(biāo)進(jìn)行聯(lián)合訓(xùn)練;為了應(yīng)對(duì)各文檔的答案不一致問題,我們加入了多文檔交互,將多個(gè)文檔中包含答案概率最大的片段拼接起來進(jìn)行建模,信息融合之后再預(yù)測(cè)文檔包含答案的概率。
②答案出現(xiàn)常識(shí)性錯(cuò)誤
常識(shí)性錯(cuò)誤即模型輸出無意義答案,例如邊界錯(cuò)誤、答案類型錯(cuò)誤。我們的做法是引入一些外部知識(shí),例如百科、知識(shí)圖譜等,給候選文檔中符合答案類型的實(shí)體打上特殊的標(biāo)記,在建模過程中加強(qiáng)對(duì)它們的關(guān)注。
③魯棒性問題
這里魯棒性問題指的是由于過擬合導(dǎo)致模型輸出不穩(wěn)定。Dropout是一種有效的減少過擬合的方式,但它的缺點(diǎn)是不能保持輸出的一致性。我們應(yīng)用了R-Drop,通過將Dropout作用于輸出層,降低了訓(xùn)練和測(cè)試的不一致性,同時(shí)引入對(duì)稱KL散度作為正則項(xiàng),增強(qiáng)了輸出的穩(wěn)定性。在實(shí)驗(yàn)過程中,我們發(fā)現(xiàn)對(duì)輸出層使用兩次dropout效果較好。此外我們還對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行了同語義問題的數(shù)據(jù)增強(qiáng),加入相同語義query下的段落輸出部分的KL-Loss,增強(qiáng)了模型的穩(wěn)定性。
④答案歸一化和多span問題
在抽取式閱讀理解中,由于多文檔表述的不一致,往往會(huì)遇到答案歸一化的問題,比如“安全帶使用期限是幾年”的問題答案可能有“3到5年”、“3年至5年等”;而且還有答案并不是連續(xù)判斷,比如“沉魚落雁指的是誰”這個(gè)問題中,答案可能對(duì)應(yīng)文檔中兩個(gè)片段(span)。為了解決上述問題,我們嘗試用生成式閱讀理解方法,以Fusion-in-Decoder(FiD)為例,將檢索得到的多文檔分別進(jìn)行編碼表示,拼接起來輸入到decoder生成統(tǒng)一的答案。
實(shí)踐中利用大規(guī)模點(diǎn)擊日志文檔生成查詢進(jìn)行預(yù)訓(xùn)練,利用短答案日志構(gòu)建大量弱監(jiān)督數(shù)據(jù)進(jìn)行自訓(xùn)練,有效提升了生成式閱讀理解的效果。由于生成模型輸出的答案得分其實(shí)是語言模型的困惑度,不能很好地刻畫答案本身的置信度,我們訓(xùn)練了一個(gè)生成答案的置信度預(yù)測(cè)模型,對(duì)答案輸出進(jìn)行決策。
(2)長(zhǎng)答案MRC
相比短答案,長(zhǎng)答案MRC受到的研究關(guān)注相對(duì)較少,一方面因?yàn)閱栴}更加復(fù)雜,數(shù)據(jù)集稀缺,另一方面因?yàn)殚L(zhǎng)答案在內(nèi)容和表達(dá)方式上有不確定性,評(píng)價(jià)起來也相對(duì)較難。
搜索場(chǎng)景中長(zhǎng)答案和短答案主要有以下幾個(gè)方面的差異:
①長(zhǎng)答案MRC-組合式問答
針對(duì)長(zhǎng)答案包含信息量大、不連續(xù)的特點(diǎn),我們提出了一種“組合式問答”的任務(wù)形式:從搜索結(jié)果的單個(gè)文檔中抽取出一組片段來合成精選摘要答案。任務(wù)輸入為給定問題和文檔的完整片段組合,輸出為答案片段組合。評(píng)價(jià)方式為片段預(yù)測(cè)的F1和人工評(píng)價(jià)相結(jié)合。
組合式問答模型的整體框架基于BERT,輸入是問題和進(jìn)行了啟發(fā)式分句的文檔句子序列,輸出是每個(gè)句子是否是答案的概率。我們引入了兩個(gè)非常有用的設(shè)計(jì)。
第一個(gè)是引入頁面的結(jié)構(gòu)信息。由于網(wǎng)頁的HTML能夠一定程度上反映頁面結(jié)構(gòu)、文本關(guān)聯(lián)以及展示內(nèi)容的重要度等特征,我們選擇了部分網(wǎng)頁標(biāo)簽作為符號(hào)輸入到模型中。
第二個(gè)是引入針對(duì)性的預(yù)訓(xùn)練任務(wù)。—般預(yù)訓(xùn)練都是建模句子級(jí)別的關(guān)系,沒有有效挖掘文檔結(jié)構(gòu)的信息;我們引入了兩類相關(guān)的預(yù)訓(xùn)練任務(wù),一類是問題選擇(QS),即隨機(jī)替換一個(gè)問題并預(yù)測(cè);另一類是節(jié)點(diǎn)選擇(NS),可以對(duì)句子和符號(hào)進(jìn)行隨機(jī)替換或打亂順序。這樣的預(yù)訓(xùn)練任務(wù)可以讓模型更深刻地理解問題和長(zhǎng)文本的內(nèi)容。
由于文檔具有層級(jí)結(jié)構(gòu),一個(gè)自然的想法是利用圖網(wǎng)絡(luò)來建模。我們嘗試在模型輸出側(cè)增加圖網(wǎng)絡(luò),將句子中詞的連接、句子之間的連接以及問題和句子的連接用圖結(jié)構(gòu)表示并通過Attention Mask實(shí)現(xiàn),實(shí)驗(yàn)表明加入層次結(jié)構(gòu)信息的效果提升明顯。
長(zhǎng)答案閱讀理解中同樣可以采用短答案閱讀理解類似的思路:(1)同時(shí)預(yù)測(cè)文檔可答概率和答案句子概率;(2)引入門機(jī)制學(xué)習(xí)文檔和句子的關(guān)系;(3)使用R-drop提升魯棒性。
我們發(fā)現(xiàn)模型對(duì)問題的理解仍然不夠充分。舉一個(gè)極端的例子:當(dāng)不輸入問題,直接針對(duì)文檔預(yù)測(cè)長(zhǎng)答案,模型仍然能夠達(dá)到一定的抽取效果。說明閱讀理解模型輸出的答案受到文檔本身的影響較大,而對(duì)問題的關(guān)注不夠。為了解決這個(gè)問題,我們做了一些數(shù)據(jù)樣本增強(qiáng)和對(duì)抗的工作。一方面通過主動(dòng)學(xué)習(xí)不斷優(yōu)化訓(xùn)練數(shù)據(jù),讓模型學(xué)習(xí)到更多不會(huì)的能力,另一方面通過點(diǎn)擊日志挖掘同一個(gè)文檔下語義相同或不同的query。由于同一個(gè)文檔中的不同部分可以回答不同的問題,這樣可以讓模型更關(guān)注問題相關(guān)的信息,而不是文檔本身。
(3)長(zhǎng)答案MRC-判斷類觀點(diǎn)問答
對(duì)于判斷類觀點(diǎn)問答任務(wù),考慮到用戶不會(huì)僅僅滿足于論斷,而會(huì)更關(guān)心論據(jù),我們?cè)O(shè)計(jì)了一個(gè)模型,首先抽取能夠回答問題的長(zhǎng)答案,即論據(jù),然后根據(jù)該論據(jù)做論斷的分類,產(chǎn)生一個(gè)短答案。
模型的整體結(jié)構(gòu)是基于長(zhǎng)答案模型結(jié)構(gòu)的改進(jìn),在抽取長(zhǎng)答案的同時(shí),將query、title和長(zhǎng)答案抽取過程中最高概率答案句拼接起來輸入判斷模塊。通過論據(jù)抽取和論點(diǎn)分類兩個(gè)目標(biāo)的聯(lián)合學(xué)習(xí),模型可以解決短答案抽取無法解決的問題。比如在下圖的例子中,對(duì)于“把兔子關(guān)在籠子里好嗎”這個(gè)問題,短答案抽取并不能直接抽取出“好”或者“不好”的答案片段,而通過分類可以知道它是一個(gè)否定的回答。
(4)問答式搜索
DeepQA的一個(gè)重要部分是從大規(guī)模數(shù)據(jù)檢索出相關(guān)候選文檔,才能通過閱讀理解模型抽取答案。傳統(tǒng)搜索更關(guān)注相關(guān)性,即文檔和問題相關(guān),而問答更關(guān)注檢索結(jié)果是否能回答問題,這是問答式搜索和傳統(tǒng)搜索的不同。
問答式搜索系統(tǒng)需要一種更細(xì)粒度、更精準(zhǔn)的語義檢索匹配方式。稠密段落檢索,即通過深度語義表示學(xué)習(xí),從大規(guī)模文本中檢索出和查詢相關(guān)的段落,包括自然段、任意句子、詞片段。稠密段落檢索是稠密向量檢索的一種。傳統(tǒng)基于關(guān)鍵字詞構(gòu)建的倒排檢索(稀疏檢索),雖能精確地召回結(jié)果,但是會(huì)面臨比較嚴(yán)重的語義鴻溝問題;而稠密向量檢索是解決查詢和文檔之間語義鴻溝的有效手段,但是從符號(hào)到向量的表示過程損失了一定的語義。所以需要對(duì)稠密向量表示進(jìn)行優(yōu)化,并設(shè)計(jì)合適的向量檢索和語義匹配方法。
問答式搜索也是一個(gè)從大規(guī)模數(shù)據(jù)到少量能抽取答案的文檔的金字塔式篩選過程。為了提高在線服務(wù)效率,在面向海量數(shù)據(jù)的召回和初排階段一般使用非交互式匹配模型,待檢索到一定規(guī)模的相關(guān)候選后再采用更精細(xì)化也更加耗時(shí)的交互式匹配模型。交互式和非交互式匹配模型各有其優(yōu)缺點(diǎn),如圖所示。
我們選用非交互式異形雙塔模型進(jìn)行稠密段落檢索的Query-Passage語義表示學(xué)習(xí)。通過網(wǎng)頁搜索日志和問答對(duì)數(shù)據(jù)可以獲取大量的正負(fù)樣本,從而進(jìn)行大規(guī)模對(duì)比學(xué)習(xí)。
這里介紹一種向量表示的優(yōu)化方法——Barlow-Twins。通過在訓(xùn)練目標(biāo)里加上一個(gè)相關(guān)性去除目標(biāo),降低向量表示的冗余性,使得訓(xùn)練出來的向量在空間的分布非常均勻。
負(fù)采樣方法是對(duì)比學(xué)習(xí)中非常重要的一環(huán),對(duì)稠密向量表示效果有很大影響,我們對(duì)負(fù)采樣進(jìn)行了兩個(gè)方面的優(yōu)化:
一個(gè)是很多相關(guān)工作都會(huì)采用的Cross-batch負(fù)采樣,在多 GPU 并行訓(xùn)練時(shí),將其它 GPU 批次內(nèi)的全部段落作為當(dāng)前問題的負(fù)樣本,極大地增加了負(fù)樣本數(shù),也使得訓(xùn)練效率得到很大提升。Cross-batch負(fù)采樣還能緩解訓(xùn)練和推理時(shí)負(fù)樣本分布的不一致性,因?yàn)樵趩柎鹗剿阉髦校P托枰獜拇笠?guī)模數(shù)據(jù)集中找到相關(guān)答案候選,但訓(xùn)練過程見到的查詢段落樣本通常遠(yuǎn)小于預(yù)測(cè)時(shí)的候選數(shù)據(jù)規(guī)模,這會(huì)導(dǎo)致模型在訓(xùn)練時(shí)表現(xiàn)良好而在應(yīng)用中不夠好。
另一個(gè)是提升負(fù)樣本的質(zhì)量。一方面需要讓負(fù)樣本對(duì)模型來說更難,這樣能學(xué)習(xí)到更多的知識(shí)。另一方面要盡可能少地引入False Negative樣本。我們提出了混合降噪負(fù)采樣策略:先通過非降噪負(fù)采樣,例如已有的召回模型(BM25、初始訓(xùn)練的召回模型等)進(jìn)行Top-K采樣,這樣得到的樣本相對(duì)較難,當(dāng)然也會(huì)引入一些False Negative;然后進(jìn)行降噪負(fù)采樣,通過訓(xùn)練一個(gè)Re-ranker對(duì)樣本進(jìn)行篩選,去除實(shí)際可能是正例的噪聲;兩者結(jié)合訓(xùn)練,實(shí)驗(yàn)證明效果提升非常明顯。
召回階段的核心任務(wù)是區(qū)分答案相關(guān)和不相關(guān)的候選,召回之后就需要通過匹配更進(jìn)一步排序這些候選文檔。這里簡(jiǎn)要介紹一下我們的Query-Passage交互匹配模型。
模型訓(xùn)練主要分三個(gè)階段,首先利用大規(guī)模網(wǎng)頁數(shù)據(jù),包括百科、微信、知乎以及問答點(diǎn)擊頁面等多樣的數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練;接下來是對(duì)比式弱監(jiān)督訓(xùn)練,通過點(diǎn)擊和曝光未點(diǎn)擊數(shù)據(jù)、問答對(duì)結(jié)合負(fù)采樣構(gòu)造正負(fù)樣本;最后在人工標(biāo)注的問答匹配數(shù)據(jù)上進(jìn)行訓(xùn)練。人工標(biāo)注的樣本有四類標(biāo)簽,分別是完全不相關(guān)、相關(guān)、能部分回答問題、能完整地很好回答問題。為了進(jìn)一步提升模型效果,我們還使用了自訓(xùn)練技術(shù),利用人工標(biāo)注數(shù)據(jù)訓(xùn)練模型之后,通過該模型進(jìn)行大量的自動(dòng)化標(biāo)注并從中篩選一些高質(zhì)量標(biāo)注數(shù)據(jù),繼續(xù)訓(xùn)練原始模型。多次迭代之后,模型的泛化性能會(huì)有較大的提升。
--
03
前沿研究
下面介紹開放域智能問答的一些相關(guān)前沿研究和進(jìn)展。
1. 端到端問答
近年來關(guān)于開放域端到端問答的研究如火如荼,下圖摘自ACL 2020 Tutorial: Open domain question and answering,對(duì)端到端問答系統(tǒng)發(fā)展的總結(jié)。
第一代端到端問答模型采取兩階段的方式,通過檢索器和閱讀器串聯(lián)來進(jìn)行答案提取,例如DrQA;前面我們所講的DeepQA系統(tǒng)也是遵循這種范式的設(shè)計(jì);第二代的模型為閱讀器和檢索器聯(lián)合優(yōu)化的模型,如R3、DenSPI;第三代的模型不需要檢索器,直接通過模型生成答案,如T5、GPT3。
檢索器和閱讀器的聯(lián)合優(yōu)化是一個(gè)難點(diǎn)。一種方法是將檢索的文檔看做隱變量,依靠EM優(yōu)化語義表示模型和生成模型,即通過閱讀器的輸出概率作為檢索器優(yōu)化的目標(biāo),反過來再基于檢索器的輸出優(yōu)化閱讀器的輸出概率。這樣交替進(jìn)行同時(shí)提升閱讀器和檢索器的效果。我們嘗試了一種Hard-EM的方法,直接把預(yù)測(cè)答案是否包含于檢索文檔作為硬匹配信號(hào)來優(yōu)化文檔檢索的過程。如下圖所示,通過答案硬匹配文檔獲得訓(xùn)練三元組<q, d, a>,然后訓(xùn)練FiD答案抽取模型,再利用新的答案抽取模型預(yù)測(cè)出來的更優(yōu)質(zhì)的答案,繼續(xù)硬匹配和過濾候選文檔輸入。幾輪循環(huán)之后答案抽取的EM和F1指標(biāo)均得到提升。
2. 知識(shí)指導(dǎo)的問答
如何在深度模型中引入知識(shí)也是問答研究的熱點(diǎn)。真實(shí)場(chǎng)景中有很多問題需要知識(shí)推理,比如“小汽車科目二多少分及格”這個(gè)問題,示例的法規(guī)文本里沒有明確的描述,但是可以根據(jù)推理得到答案;“葡萄籽油的食用方法”這個(gè)問題,不同答案中包含的“知識(shí)點(diǎn)”相互存在沖突和分歧,需要進(jìn)行知識(shí)驗(yàn)證。
知識(shí)指導(dǎo)的問答相關(guān)工作,有一種是把特定的知識(shí)輸入到答案抽取模型一起學(xué)習(xí),比如K-BERT,把原輸入中實(shí)體所涉及到的三元組通過軟位置編碼的方式融合到輸入中,從而引入了實(shí)體相關(guān)的知識(shí)。另一類方法是通過知識(shí)增強(qiáng)的預(yù)訓(xùn)練模型提升下游任務(wù)的效果。
QQ瀏覽器搜索內(nèi)容技術(shù)團(tuán)隊(duì)還提出了一種知識(shí)增強(qiáng)預(yù)訓(xùn)練的方法,該模型引入了三類知識(shí)性任務(wù),包括遠(yuǎn)程關(guān)系監(jiān)督分類、三元組文本mask預(yù)測(cè)、以及同類實(shí)體替換預(yù)測(cè),訓(xùn)練過程中將這三類任務(wù)和語言模型任務(wù)結(jié)合在一起訓(xùn)練。為了保證原始模型的參數(shù)在訓(xùn)練過程中不會(huì)有災(zāi)難性遺忘,設(shè)計(jì)了一個(gè)新的知識(shí)記憶結(jié)構(gòu),將原有模型的所有參數(shù)固定住,只用這個(gè)新的知識(shí)記憶矩陣承載上面多任務(wù)引入的知識(shí)。實(shí)驗(yàn)證明知識(shí)增強(qiáng)的預(yù)訓(xùn)練在很多下游任務(wù)上都能夠獲得一定的提升,尤其是在上下文不充分的短文本任務(wù)上。
3. 多模態(tài)問答
當(dāng)前越來越多的優(yōu)質(zhì)內(nèi)容以視頻形式存在,從文本答案到視頻答案也是一個(gè)大的趨勢(shì)。基于視頻載體的問答需要對(duì)視頻內(nèi)容進(jìn)行感知分析+語義分析,進(jìn)而通過顯示/隱式的語義表示和計(jì)算(檢索、匹配、閱讀、生成)得到視頻化的答案。
我們現(xiàn)在做的一個(gè)比較初步的工作是利用視頻的語音和字幕進(jìn)行視頻文本化,然后通過閱讀理解結(jié)合文本生成的技術(shù)進(jìn)行視頻答案摘要,通過文本生成和字幕時(shí)間匹配,還能得到視頻分段以及關(guān)鍵幀標(biāo)簽。右圖是我們?cè)谝曨l問答做出來的短答案摘要的效果,相對(duì)于文本答案可以給用戶提供更多便捷性的幫助。未來還有更多基于多模態(tài)內(nèi)容的問答研究值得探索。
--
04
Q&A
Q1:針對(duì)用戶的query,KBQA和DeepQA的執(zhí)行順序是什么?
A1:兩者是同步進(jìn)行的,最后根據(jù)答案產(chǎn)生的情況做決策。DeepQA這邊還會(huì)有一個(gè)問題分類的模塊,判斷問題的答案是短答案還是長(zhǎng)答案。所以底層是多個(gè)系統(tǒng)的并行,包括KBQA系統(tǒng)、短答案系統(tǒng)和長(zhǎng)答案系統(tǒng)。
Q2:自己嘗試后發(fā)現(xiàn)DeepQA的響應(yīng)非常慢,工業(yè)應(yīng)用中通過什么方式來提高問答響應(yīng)的速度?
A2:響應(yīng)的速度分為兩個(gè)方面,檢索模塊和閱讀理解模塊的響應(yīng)。需要看這兩部分分別耗時(shí),也需要分別優(yōu)化。檢索模塊往往會(huì)通過分層篩選的方式來限制輸入文本的數(shù)量。計(jì)算越復(fù)雜的模塊,輸入文本數(shù)量越少。召回階段我們采用非交互式模型快速獲得相關(guān)文本,排序階段再使用更復(fù)雜的交互式模型進(jìn)行少量精細(xì)化計(jì)算。最后閱讀理解模塊的文本輸入相對(duì)更少了,目前只針對(duì)Top10結(jié)果去做計(jì)算。以上是系統(tǒng)層面的優(yōu)化。
具體到模型優(yōu)化的話,可能就會(huì)需要具體看輸入的文本長(zhǎng)度、模型復(fù)雜度,模型所使用的推理系統(tǒng),推理器和硬件的匹配情況等。最主要的是需要去分析響應(yīng)時(shí)間慢的瓶頸的問題,然后再針對(duì)性解決。
Q3:針對(duì)用戶的query也會(huì)有拼寫糾錯(cuò)的處理,什么時(shí)候會(huì)觸發(fā)這個(gè)處理?怎么處理?
A3:糾錯(cuò)不是問答獨(dú)有的問題,是整個(gè)搜索系統(tǒng)面臨的問題。在搜索的最開始也就是查詢分析的模塊,不僅有糾錯(cuò),還有查詢的分詞,查詢重要度的分析,查詢?cè)~之間的關(guān)系分析等。糾錯(cuò)往往是搜索前置的模塊,糾錯(cuò)之后的處理也會(huì)有不同,比如對(duì)置信度非常高的糾錯(cuò),可以直接修改查詢。系統(tǒng)更保險(xiǎn)的做法是觸發(fā)二次查詢,也就是將原詞的搜索結(jié)果和糾錯(cuò)后的搜索結(jié)果同時(shí)拿到,然后再根據(jù)結(jié)果的反饋綜合決策。
今天的分享就到這里,謝謝大家。
分享嘉賓:姚婷 騰訊 專家研究員
編輯整理:王惠靈 合肥工業(yè)大學(xué)
出品平臺(tái):DataFunTalk
01/分享嘉賓
姚婷|騰訊 專家研究員
畢業(yè)于清華大學(xué)計(jì)算機(jī)系,從事自然語言處理、搜索排序、智能問答方向的研究工作,負(fù)責(zé)主導(dǎo)了搜狗搜索“立知”問答系統(tǒng)研發(fā)。目前擔(dān)任騰訊PCG搜索應(yīng)用部專家研究員,負(fù)責(zé)QQ瀏覽器搜索中智能問答技術(shù)的研究和落地應(yīng)用。
02/關(guān)于我們
DataFun:專注于大數(shù)據(jù)、人工智能技術(shù)應(yīng)用的分享與交流。發(fā)起于2017年,在北京、上海、深圳、杭州等城市舉辦超過100+線下和100+線上沙龍、論壇及峰會(huì),已邀請(qǐng)超過2000位專家和學(xué)者參與分享。其公眾號(hào) DataFunTalk 累計(jì)生產(chǎn)原創(chuàng)文章700+,百萬+閱讀,14萬+精準(zhǔn)粉絲。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。