ML:天然語言處理NLP面試題

天然語言處理的三個里程碑:
html

http://blog.csdn.net/sddamoke/article/details/1419973面試


兩個事實分別爲:

1、短語結構語法不能有效地描寫天然語言。
算法

2、短語結構規則的覆蓋有限。Chomsky 曾提出過這樣的假設,認爲對一種天然語言來講,其語法規則的數目是有限的,而據今生成的句子數目是無限的。數據庫


文中提到的三個里程碑式的進展爲:

1、複雜特徵集。複雜特徵集又叫多重屬性描寫。
編程

2、詞彙主義。語言學界認爲,不劃分詞類就沒法將語法結構,即語法「不可能」根據個別的詞來寫規則;可是人們也注意到任何歸類都會丟失個體的某些重要信息。
網絡

3、統計語言模型。這也就是語料庫方法。數據結構

總結:
多線程

        複雜特徵集、合一語法以及詞彙主義方法都是在原先理性主義框架(產生式或邏輯推理)框架下作出的重大貢獻。尤爲詞彙主義方法的發展愈來愈獲得語料庫和統計學方法的支持,這也是經驗主義和理性主義方法的相互融合。他們將成爲天然語言處理技術的主流。
框架


天然語言處理:
函數

            10k以上 北京 經驗1年如下 碩士及以上 全職

職位誘惑 : 績效獎金多 晉升空間大 優秀團隊 半年調薪

職位描述

職位描述:
一、承擔天然語言處理技術在對話、通用問答、意圖理解、知識庫加工管理等方向上的應用研究;
二、按照研究與項目計劃,與項目組其餘成員協同工做,在保證質量的前提下,按時完成研究開發任務。
任職資格:
1.學歷要求:畢業於211或985院校、統招碩士以上學歷,博士優先;英語4級以上。
2.工做經驗:

1年以上相關領域工做經驗,熟悉天然語言處理的各項技術,有對話、通用問答、意圖理解研究經驗
熟悉C/C++/Python,有算法研究背景經驗
英文良好,知識面廣、研究能力強,熟悉並掌握天然語言處理在智能人機交互技術領域中的應用。
3.能力要求:
具備強烈的研究興趣與學習意願,具有較好的學習能力、問題分析能力、以及問題解決能力;
良好的溝通協調能力和團隊合做意識,可以主動總結和分享本身的開發經驗。
4.素質要求:
工做踏實,態度積極,可以承受工做壓力,能適應嚴格項目管理;
責任心強,正直誠實,值得信賴。


面試筆試題:

百度校園招聘-天然語言處理工程師

原文連接: http://bishi.cnrencai.com/jingyan/1775.html

1、簡答題(本題共30分)

1.簡述數據庫以及線程死鎖產生的原理及必要條件,簡述如何避免死鎖。(10分)

2.請列舉面向對象設計的三個基本要素及五種主要設計原則。(10分)

3.多線程如何同步。(10分)

2、算法與程序設計(本題共45分)

1.一百個燈泡排成一排,第一輪將全部燈泡打開;第二輪每隔一個燈泡關掉一個,即排在偶數的燈泡都被關掉。第三輪每隔兩個燈泡,將開着的燈泡關掉,關掉的燈泡打開。以此類推,第100輪結束的時候,還有幾盞燈泡亮着。編寫代碼實現。(15分)

2.有一個百萬級的字符串集合(worddic),worddict中每一個字符串的長度爲2~5個漢字。對任意一個查詢串(query),定義該query對worddic模糊匹配的條件爲:該query內部移除最多6個連續漢字後,與worddic中某個詞徹底匹配。例如:worddic中有"百度公司"這個字符串,query"北京百度網絡技術有限公司",該query便可經過移除6個連續字符('網絡技術有限')來匹配"百度公司";

如今須要你設計一個算法來實現這樣的功能:

/**@brief: query match function

*@param worddcit:字符串集合,能夠在這兒自定義詞典的數據結構worddic;

*@param query: query;

*@param querylen: query的長度;

*@param return: 1表示該query能夠模糊匹配詞典中某個字符串,-1表示其它;

*/

int check_query(const dict *worddict, const char *query, const int querylen);

要求:給出數據結構dict的設計並完成check_query函數(20分)

3、系統設計題(本題共35分)

1.拼寫糾錯是搜索引擎具有的一個功能,指的是自動分析用戶輸入的查詢(query),檢查是否有拼寫錯誤,若是有,則給出正確的拼寫建議。例如:把"聯想手機"輸錯爲"聯想手機"。這時候搜索引擎通常會給出提示"您要找的是否是:聯想手機"。

通常來講,拼寫糾錯主要包括了兩個重要的步驟:一是識別用戶輸入的錯誤的詞語;二是把錯誤的詞語修改爲正確的詞語。

問題:1)在中文中,常見的錯誤輸入是同音不一樣字:例如,"蘋果"輸錯爲"平果";在英文中,常見的錯誤輸入時拼寫錯誤,如"latest"錯輸爲"latst"。針對以上兩種在中文和英文輸入中的錯誤,請分別給出一種解決方案。

2)用戶輸入的查詢,經常還包含一些上下文的信息(如,"平果手機何時發佈"),如何利用這些上下文改進糾錯的效果?

百度2015校園招聘 天然語言處理工程師筆試

原文連接:http://blog.csdn.net/shymi1991/article/details/39432775

1、簡答

1. new 和 malloc的區別。

1,malloc與free是C++/C語言的標準庫函數,new/delete是C++的運算符。它們均可用於申請動態內存和釋放內存。

2,對於非內部數據類型的對象而言,光用maloc/free沒法知足動態對象的要求。對象在建立的同時要自動執行構造函數,對象在消亡以前要自動執行析構函數。因爲malloc/free是庫函數而不是運算符,不在編譯器控制權限以內,不可以把執行構造函數和析構函數的任務強加於malloc/free。

3,所以C++語言須要一個能完成動態內存分配和初始化工做的運算符new,以一個能完成清理與釋放內存工做的運算符delete。注意new/delete不是庫函數。

4,C++程序常常要調用C函數,而C程序只能用malloc/free管理動態內存


2. hash 衝突及解決辦法。

關鍵字值不一樣的元素可能會映象到哈希表的同一地址上就會發生哈希衝突。解決辦法:

1)開放定址法:當衝突發生時,使用某種探查(亦稱探測)技術在散列表中造成一個探查(測)序列。沿此序列逐個單元地查找,直到找到給定 的關鍵字,或者碰到一個開放的地址(即該地址單元爲空)爲止(若要插入,在探查到開放的地址,則可將待插入的新結點存人該地址單元)。查找時探查到開放的 地址則代表表中無待查的關鍵字,即查找失敗。

2) 再哈希法:同時構造多個不一樣的哈希函數。

3)鏈地址法將全部哈希地址爲i的元素構成一個稱爲同義詞鏈的單鏈表,並將單鏈表的頭指針存在哈希表的第i個單元中,於是查找、插入和刪除主要在同義詞鏈中進行。鏈地址法適用於常常進行插入和刪除的狀況。

4)創建公共溢出區:將哈希表分爲基本表溢出表兩部分,凡是和基本表發生衝突的元素,一概填入溢出表。


2、編程

1. 實現歸併排序。

2. 二叉樹的S型遍歷。

 第一層從左到右,第二層從左到右,第三層從左到右……

3. 20億url的存在一個文本中,一個url佔一行,其中有重複,統計出url的頻率。


3、系統設計

1.天然語言處理中的前向匹配常被用於分詞。

遙遠的古巴比倫

前向匹配分詞結果爲

遙遠的|古巴|比倫

前向匹配分詞結果爲:

遙|遠的|古|巴比倫

要求寫出前向匹配的接口及實現方法。


總結:
就摘抄這麼多了,反正也作不完!
相關文章
相關標籤/搜索