第1801章 別被技術細節嚇住
辦公室的白板上寫滿了字。
李明的粉筆停在半空,眉頭皺成一個疙瘩。
他轉身看向另外四個同伴,又看看坐在會議桌旁的賈瀞雯。
「賈總,這個『網頁爬蟲』的概念……我們研究了三天,還是有點不明白。」他放下粉筆,拍了拍手上的粉灰,「文檔上說,要讓程序像蜘蛛一樣在網上爬,自動發現和收集網頁。
但具體怎麼實現?」
張濤推了推眼鏡,翻開陳浩寫的技術框架文檔:「這裡寫了一些思路--從幾個種子網站開始,提取頁面上的連結,然後訪問這些連結,再提取新連結。
理論上可行,但實際做起來問題很多。」
「什麼問題?」賈瀞雯問。
「比如,有些網站不允許被訪問。」說話的是王磊,團隊裡最年輕的一個,北大研究生在讀,「還有,網頁格式千奇百怪,怎麼準確提取連結?再比如,如果程序陷入死循環怎麼辦?」
賈瀞雯點點頭。
這些她也不懂,但她知道該問誰。
「今天先到這裡。」她看看表,「晚上我打電話問問陳總。
大家繼續研究其他部分,分詞算法那邊有進展嗎?」
張濤搖搖頭:「更難。
英文有空格分隔單詞,中文是連在一起的。
『中華人民共和國』怎麼分?是『中華』『人民』『共和國』,還是『中華人民』『共和國』?不同的分法,意思差別很大。」
會議室里一陣沉默。
五個年輕人你看看我,我看看你,都從對方眼裡看到同樣的困惑--這個項目,比他們想像的要難得多。
晚上八點,賈瀞雯在辦公室撥通了陳浩的電話。
「餵?」陳浩的聲音有點喘,背景里有嘈雜的人聲。
「在忙?」
「剛下戲,換衣服呢。」陳浩走到安靜的地方,「說吧,今天遇到什麼問題了?」
賈瀞雯把白天的討論複述了一遍。
陳浩聽完,笑了:「正常,這些確實是難點。
你記一下,我一個個說。」
賈瀞雯拿起筆。
「第一,爬蟲的倫理問題。
我們要遵守robots協議,就是網站根目錄下的一個文本文件,告訴爬蟲哪些頁面可以訪問,哪些不行。
這個必須遵守,不然我們會惹麻煩。」
「第二,網頁格式問題。
現在網頁主要是HTML,雖然各家寫法不一樣,但基本結構是固定的。
連結都在<a href=>標籤里,用正則表達式可以提取。」
賈瀞雯打斷:「正則表達式是什麼?」
「一種文本匹配的方法。」陳浩解釋,「比如你要找所有以『��開頭的字符串。
這個讓技術人員去查資料,他們懂。」
「第三,防止死循環。
每個訪問過的連結都要記錄下來,下次遇到就直接跳過。
還要設置深度限制,不能無限爬下去。」
賈瀞雯飛快地記著。
陳浩的聲音很平靜,好像這些難題都不是問題。
「那中文分詞呢?」她問,「這個他們覺得特別難。」
電話那頭沉默了一會兒。
「這個確實難。」陳浩承認,「英文搜索可以直接按單詞匹配,中文必須先把句子切分成有意義的詞語。
我們需要的不是機械切分,而是理解語義後的智能切分。」
「怎麼做?」
「兩種思路。」陳浩說,「一是基於詞典,把常用的詞做成詞典庫,然後匹配。
二是基於統計,分析大量文本,找出經常連在一起出現的字組合。
最好的辦法是兩者結合。」
賈瀞雯記下最後幾個字,筆尖頓了頓:「浩哥,這些概念你怎麼都懂?你又沒學過計算機。」
陳浩笑了:「我是不懂具體編程,但我懂邏輯,懂原理。
而且我看得多,想得多。
搜尋引擎的核心不是技術多炫,而是理解人想要什麼,然後從數據里找出來。」
他頓了頓:「瀞雯,你告訴團隊,別被技術細節嚇住。
我們不是在寫完美的學術論文,是在做一個能用的工具。
第一版可以粗糙,可以有問題,但要快,要讓用戶能用上。
改進可以慢慢來。」
掛斷電話後,賈瀞雯把筆記整理成文檔,列印了五份。
第二天開會,她把陳浩的話轉述給團隊。
「陳總說,第一版可以粗糙,但要快。」她看著五張年輕的臉,「我們不求完美,但求可用。」
李明眼睛一亮:「這就對了。
我們總想一次做到最好,結果越想越不敢動手。
其實可以先做個最簡單的版本,能跑起來就行。」
「對!」張濤一拍桌子,「爬蟲可以先從幾個固定的網站開始,比如新聞網站。
這些網站結構規範,容易抓取。
分詞可以先做基於詞典的簡單版本,複雜的以後再說。」
團隊的氣氛活躍起來。
年輕人就是這樣,不怕困難,就怕迷茫。
一旦有了方向,哪怕方向不完美,他們也敢往前沖。
三天後,新的問題來了。
這次是王磊提出的。
他在研究分詞算法時,遇到了一個具體難題。
「賈總,我們試了基於詞典的方法,但遇到一個問題。」王磊在白板上寫了個例子,「比如『桌球拍賣完了』這句話。
怎麼分?」
他畫出兩種分法:「『桌球/拍賣/完了』,這是說桌球被拍賣掉了。
但也可以是『桌球/球拍/賣完了』,這是說球拍賣光了。
同一個句子,兩種分法,意思完全不一樣。」
賈瀞雯看著白板上的句子,也皺起眉。
確實,這太難了。
當晚的電話匯報,她重點說了這個問題。
陳浩聽完,沒有馬上回答。
「這個問題很關鍵。」他說,「中文的歧義切分是搜尋引擎必須要解決的。
這樣,你讓團隊等一下,我想想。」
電話掛斷了。
賈瀞雯以為陳浩要思考幾天,沒想到第二天一早,她就接到了電話。
「瀞雯,我畫了個圖。」陳浩的聲音聽起來有些疲憊,像是熬了夜,「我讓助理去傳真給你,你看一下。」
半小時後,傳真機響了。
五頁紙,上面是手繪的流程圖和說明。
賈瀞雯拿起來看。
第一頁是總覽,標題是「中文分詞歧義處理邏輯」。
後面四頁是詳細的流程圖,每一步都有說明。
她看不懂技術細節,但能看懂思路。
陳浩提出了一個「雙向最大匹配」的方法。
從左到右掃描一遍,從右到左再掃描一遍,比較兩種結果。
如果一致,就用這個結果。
如果不一致,就啟用歧義處理規則--檢查上下文,查詞典,甚至用簡單的概率統計。
最下面還有一行小字:初期可用簡單規則,後續逐步完善。
賈瀞雯把傳真複印了五份。
團隊看到後,會議室里炸開了鍋。
【跪求禮物,免費的為愛發電也行!】
李明的粉筆停在半空,眉頭皺成一個疙瘩。
他轉身看向另外四個同伴,又看看坐在會議桌旁的賈瀞雯。
「賈總,這個『網頁爬蟲』的概念……我們研究了三天,還是有點不明白。」他放下粉筆,拍了拍手上的粉灰,「文檔上說,要讓程序像蜘蛛一樣在網上爬,自動發現和收集網頁。
但具體怎麼實現?」
張濤推了推眼鏡,翻開陳浩寫的技術框架文檔:「這裡寫了一些思路--從幾個種子網站開始,提取頁面上的連結,然後訪問這些連結,再提取新連結。
理論上可行,但實際做起來問題很多。」
「什麼問題?」賈瀞雯問。
「比如,有些網站不允許被訪問。」說話的是王磊,團隊裡最年輕的一個,北大研究生在讀,「還有,網頁格式千奇百怪,怎麼準確提取連結?再比如,如果程序陷入死循環怎麼辦?」
賈瀞雯點點頭。
這些她也不懂,但她知道該問誰。
「今天先到這裡。」她看看表,「晚上我打電話問問陳總。
大家繼續研究其他部分,分詞算法那邊有進展嗎?」
張濤搖搖頭:「更難。
英文有空格分隔單詞,中文是連在一起的。
『中華人民共和國』怎麼分?是『中華』『人民』『共和國』,還是『中華人民』『共和國』?不同的分法,意思差別很大。」
會議室里一陣沉默。
五個年輕人你看看我,我看看你,都從對方眼裡看到同樣的困惑--這個項目,比他們想像的要難得多。
晚上八點,賈瀞雯在辦公室撥通了陳浩的電話。
「餵?」陳浩的聲音有點喘,背景里有嘈雜的人聲。
「在忙?」
「剛下戲,換衣服呢。」陳浩走到安靜的地方,「說吧,今天遇到什麼問題了?」
賈瀞雯把白天的討論複述了一遍。
陳浩聽完,笑了:「正常,這些確實是難點。
你記一下,我一個個說。」
賈瀞雯拿起筆。
「第一,爬蟲的倫理問題。
我們要遵守robots協議,就是網站根目錄下的一個文本文件,告訴爬蟲哪些頁面可以訪問,哪些不行。
這個必須遵守,不然我們會惹麻煩。」
「第二,網頁格式問題。
現在網頁主要是HTML,雖然各家寫法不一樣,但基本結構是固定的。
連結都在<a href=>標籤里,用正則表達式可以提取。」
賈瀞雯打斷:「正則表達式是什麼?」
「一種文本匹配的方法。」陳浩解釋,「比如你要找所有以『��開頭的字符串。
這個讓技術人員去查資料,他們懂。」
「第三,防止死循環。
每個訪問過的連結都要記錄下來,下次遇到就直接跳過。
還要設置深度限制,不能無限爬下去。」
賈瀞雯飛快地記著。
陳浩的聲音很平靜,好像這些難題都不是問題。
「那中文分詞呢?」她問,「這個他們覺得特別難。」
電話那頭沉默了一會兒。
「這個確實難。」陳浩承認,「英文搜索可以直接按單詞匹配,中文必須先把句子切分成有意義的詞語。
我們需要的不是機械切分,而是理解語義後的智能切分。」
「怎麼做?」
「兩種思路。」陳浩說,「一是基於詞典,把常用的詞做成詞典庫,然後匹配。
二是基於統計,分析大量文本,找出經常連在一起出現的字組合。
最好的辦法是兩者結合。」
賈瀞雯記下最後幾個字,筆尖頓了頓:「浩哥,這些概念你怎麼都懂?你又沒學過計算機。」
陳浩笑了:「我是不懂具體編程,但我懂邏輯,懂原理。
而且我看得多,想得多。
搜尋引擎的核心不是技術多炫,而是理解人想要什麼,然後從數據里找出來。」
他頓了頓:「瀞雯,你告訴團隊,別被技術細節嚇住。
我們不是在寫完美的學術論文,是在做一個能用的工具。
第一版可以粗糙,可以有問題,但要快,要讓用戶能用上。
改進可以慢慢來。」
掛斷電話後,賈瀞雯把筆記整理成文檔,列印了五份。
第二天開會,她把陳浩的話轉述給團隊。
「陳總說,第一版可以粗糙,但要快。」她看著五張年輕的臉,「我們不求完美,但求可用。」
李明眼睛一亮:「這就對了。
我們總想一次做到最好,結果越想越不敢動手。
其實可以先做個最簡單的版本,能跑起來就行。」
「對!」張濤一拍桌子,「爬蟲可以先從幾個固定的網站開始,比如新聞網站。
這些網站結構規範,容易抓取。
分詞可以先做基於詞典的簡單版本,複雜的以後再說。」
團隊的氣氛活躍起來。
年輕人就是這樣,不怕困難,就怕迷茫。
一旦有了方向,哪怕方向不完美,他們也敢往前沖。
三天後,新的問題來了。
這次是王磊提出的。
他在研究分詞算法時,遇到了一個具體難題。
「賈總,我們試了基於詞典的方法,但遇到一個問題。」王磊在白板上寫了個例子,「比如『桌球拍賣完了』這句話。
怎麼分?」
他畫出兩種分法:「『桌球/拍賣/完了』,這是說桌球被拍賣掉了。
但也可以是『桌球/球拍/賣完了』,這是說球拍賣光了。
同一個句子,兩種分法,意思完全不一樣。」
賈瀞雯看著白板上的句子,也皺起眉。
確實,這太難了。
當晚的電話匯報,她重點說了這個問題。
陳浩聽完,沒有馬上回答。
「這個問題很關鍵。」他說,「中文的歧義切分是搜尋引擎必須要解決的。
這樣,你讓團隊等一下,我想想。」
電話掛斷了。
賈瀞雯以為陳浩要思考幾天,沒想到第二天一早,她就接到了電話。
「瀞雯,我畫了個圖。」陳浩的聲音聽起來有些疲憊,像是熬了夜,「我讓助理去傳真給你,你看一下。」
半小時後,傳真機響了。
五頁紙,上面是手繪的流程圖和說明。
賈瀞雯拿起來看。
第一頁是總覽,標題是「中文分詞歧義處理邏輯」。
後面四頁是詳細的流程圖,每一步都有說明。
她看不懂技術細節,但能看懂思路。
陳浩提出了一個「雙向最大匹配」的方法。
從左到右掃描一遍,從右到左再掃描一遍,比較兩種結果。
如果一致,就用這個結果。
如果不一致,就啟用歧義處理規則--檢查上下文,查詞典,甚至用簡單的概率統計。
最下面還有一行小字:初期可用簡單規則,後續逐步完善。
賈瀞雯把傳真複印了五份。
團隊看到後,會議室里炸開了鍋。
【跪求禮物,免費的為愛發電也行!】