av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

50行Python代碼寫一個語言檢測器

你有沒有曾經(jīng)好奇過Chrome瀏覽器是如何知道一個網(wǎng)頁的語言,并對外國文字的網(wǎng)頁提供翻譯服務(wù)的?或者,F(xiàn)acebook是如何翻譯你朋友用寫在你主頁上的外國文字?檢測一種語言實際上非常簡單,改進(jìn)了用戶體驗,而且不需要用戶做任何的事情。

創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元清澗做網(wǎng)站,已為上家服務(wù),為清澗各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220

我無意中發(fā)現(xiàn)的 ActiveState recipe for a language detector in Python這是非常不錯的一段程序,但是我決定做點小小的改進(jìn)。提供一些背景知識給那些不熟悉自然語言處理或者是程序語言學(xué)的人。

如果你是有經(jīng)驗的程序員,你也許可以直接跳到這段文字最下端的程序部分。出奇的簡單。

你需要熟悉Python語法。如果你從來沒有用過python, 我建議你讀一下 Zed Shaw 的《 Learn Python the Hard Way》。

確定你下載并安裝了python,而且可以正常運行程序。這段文字中的python不算很長,所以你可以用任何文本編輯器從而省去安裝任何軟件的麻煩。(譯者注:在線的python 編譯器也可以運行這段程序,其中一種編譯器在jobbole 的另一篇文章中提到過,http://blog.jobbole.com/53346/)。

***部分,什么檢測到了一種語言?

在你寫區(qū)分語言的程序之前,你需要回答一個問題:什么區(qū)別了兩種語言?

有趣的是,這個問題的答案會根據(jù)不同的比較語言而有所不同。比如:

女性が牛乳を飲んだ。 (譯者注: 日語:女性喝牛奶。)

你是怎么知道這句話不是英文的?你也許不熟悉日文,但是你肯定知道這些字符不是英文,你甚至不需要知道具體哪個字符不存在于英文字母中。

La femme boit du lait.   (譯者注: 法語:女性喝牛奶。)

你怎么知道這句話不是英文的?有一點麻煩。每個字母都在英文中。甚至每一個字母和句型結(jié)構(gòu)都和英文的同一個意思的那句話很相似—— “The woman drank milk.” (譯者注: 英語:女性喝牛奶。) 。 你的大腦用了另一個特性去判斷這個:盡管字母很相似,這兩句話發(fā)音沒有任何相似之處。

還有很多更復(fù)雜的方式去檢測兩種不同的語言(例如,語法、句法等等)上面提到的兩個特性似乎足夠用來區(qū)分很多的書寫文字。

提問:你可以想到一個相反的例子嘛? 兩種不能用字符或者發(fā)音而區(qū)分的語言?(譯者注:這是我想到的,和編者沒有任何關(guān)系。Hindi 和Nepali 的區(qū)分度極低,印度的一種語言和尼泊爾的官方語言的區(qū)別度非常低,字符區(qū)別很低而發(fā)音更高達(dá)50%的相似度。當(dāng)然,他們兩個是同一語系的語種。)

第二部分,如何用計算機(jī)檢測到這些特性?

***個特性已經(jīng)存在于任何一臺現(xiàn)代化的機(jī)器里 ——character encodings 字符解碼允許任何一臺計算機(jī)去通過二進(jìn)制碼而呈現(xiàn)每一個字符。我們要用unicode 在Python 的程序中。

第二個特征更有意思。如何能讓一臺電腦檢測到字符串的發(fā)音呢?答案比想象的簡單點:字符串順序是按照聲音解碼的!他們有直接的穩(wěn)定的對應(yīng)關(guān)系- 語言改變的非常緩慢。

因此,你可以用下面的兩個特性去檢測一行文本語言:

  • 單個字符的重復(fù)性
  • 字符串的重復(fù)性

實際上,這兩個特性濃縮到了一個特性中:字符串的順序。單個字符的重復(fù)性只是字符串的重復(fù)性。

快速知識補(bǔ)充:在計算機(jī)語言學(xué)中,字符串的長度 n 被定義為 n-gram。 “a” 是一個gram, 1-gram. “bc”是兩個gram,2-gram or bigram。 “def” 是三個gram, 3-gram 或者trigram,以此類推。

第三部分,用python 實現(xiàn)吧!

首先,我們需要計算某個字符串在特定文本中出現(xiàn)的次數(shù)。為了封裝結(jié)果,我們將建立一個NGram 類。


分享名稱:50行Python代碼寫一個語言檢測器
分享URL:http://uogjgqi.cn/article/dpcgdjp.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流