自然語言處理的三個里程碑:
http://blog.csdn.net/sddamoke/article/details/1419973
兩個事實分別為:
一、短語結構語法不能有效地描寫自然語言。
二、短語結構規則的覆蓋有限。Chomsky 曾提出過這樣的假設,認為對一種自然語言來說,其語法規則的數目是有限的,而據此生成的句子數目是無限的。
文中提到的三個里程碑式的進展為:
一、復雜特征集。復雜特征集又叫多重屬性描寫。
二、詞匯主義。語言學界認為,不划分詞類就無法將語法結構,即語法“不可能”根據個別的詞來寫規則;但是人們也注意到任何歸類都會丟失個體的某些重要信息。
三、統計語言模型。這也就是語料庫方法。
總結:
復雜特征集、合一語法以及詞匯主義方法都是在原先理性主義框架(產生式或邏輯推理)框架下做出的重大貢獻。尤其詞匯主義方法的發展越來越得到語料庫和統計學方法的支持,這也是經驗主義和理性主義方法的相互融合。他們將成為自然語言處理技術的主流。
自然語言處理:
10k以上 北京 經驗1年以下 碩士及以上 全職
職位誘惑 : 績效獎金多 晉升空間大 優秀團隊 半年調薪
-
職位描述
職位描述:
1、承擔自然語言處理技術在對話、通用問答、意圖理解、知識庫加工管理等方向上的應用研究;
2、按照研究與項目計划,與項目組其他成員協同工作,在保證質量的前提下,按時完成研究開發任務。
任職資格:
1.學歷要求:畢業於211或985院校、統招碩士以上學歷,博士優先;英語4級以上。
2.工作經驗: -
1年以上相關領域工作經驗,熟悉自然語言處理的各項技術,有對話、通用問答、意圖理解研究經驗
熟悉C/C++/Python,有算法研究背景經驗
英文良好,知識面廣、研究能力強,熟悉並掌握自然語言處理在智能人機交互技術領域中的應用。
3.能力要求:
具有強烈的研究興趣與學習意願,具備較好的學習能力、問題分析能力、以及問題解決能力;
良好的溝通協調能力和團隊合作意識,能夠主動總結和分享自己的開發經驗。
4.素質要求:
工作踏實,態度積極,能夠承受工作壓力,能適應嚴格項目管理;
責任心強,正直誠實,值得信賴。
面試筆試題:
百度校園招聘-自然語言處理工程師
原文鏈接: http://bishi.cnrencai.com/jingyan/1775.html一、簡答題(本題共30分)
1.簡述數據庫以及線程死鎖產生的原理及必要條件,簡述如何避免死鎖。(10分)
2.請列舉面向對象設計的三個基本要素及五種主要設計原則。(10分)
3.多線程如何同步。(10分)
二、算法與程序設計(本題共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分)
三、系統設計題(本題共35分)
1.拼寫糾錯是搜索引擎具備的一個功能,指的是自動分析用戶輸入的查詢(query),檢查是否有拼寫錯誤,如果有,則給出正確的拼寫建議。例如:把"聯想手機"輸錯為"聯想手機"。這時候搜索引擎一般會給出提示"您要找的是不是:聯想手機"。
一般來說,拼寫糾錯主要包括了兩個重要的步驟:一是識別用戶輸入的錯誤的詞語;二是把錯誤的詞語修改成正確的詞語。
問題:1)在中文中,常見的錯誤輸入是同音不同字:例如,"蘋果"輸錯為"平果";在英文中,常見的錯誤輸入時拼寫錯誤,如"latest"錯輸為"latst"。針對以上兩種在中文和英文輸入中的錯誤,請分別給出一種解決方案。
2)用戶輸入的查詢,常常還包含一些上下文的信息(如,"平果手機什么時候發布"),如何利用這些上下文改進糾錯的效果?
百度2015校園招聘 自然語言處理工程師筆試
原文鏈接:http://blog.csdn.net/shymi1991/article/details/39432775
一、簡答
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)建立公共溢出區:將哈希表分為基本表和溢出表兩部分,凡是和基本表發生沖突的元素,一律填入溢出表。
二、編程
1. 實現歸並排序。
2. 二叉樹的S型遍歷。
第一層從左到右,第二層從左到右,第三層從左到右……
3. 20億url的存在一個文本中,一個url占一行,其中有重復,統計出url的頻率。
三、系統設計
1.自然語言處理中的前向匹配常被用於分詞。如
遙遠的古巴比倫
前向匹配分詞結果為
遙遠的|古巴|比倫
前向匹配分詞結果為:
遙|遠的|古|巴比倫
要求寫出前向匹配的接口及實現方法。
- 總結:
-
就摘抄這么多了,反正也做不完!