專利名稱::詞聯(lián)想方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種用于創(chuàng)建數(shù)據(jù)庫的方法和裝置,該數(shù)據(jù)庫用于將信息從一種狀態(tài)轉(zhuǎn)換成另一種狀態(tài)。在該較佳實(shí)施例中,該信息是語言,并且,本發(fā)明涉及一種用于創(chuàng)建聯(lián)想數(shù)據(jù)庫的方法和裝置,該數(shù)據(jù)庫能夠被用于語言翻譯系統(tǒng)中。背景已知用于將文檔從一種語言自動(dòng)翻譯成另一種語言的各種設(shè)備和方法。但是,這些設(shè)備和方法常常無法將文檔準(zhǔn)確地從一種語言翻譯成另一種語言,并且會(huì)耗費(fèi)大量時(shí)間,使用起來也不方便。除了基于人的翻譯者以外,其他已知設(shè)備包括可以購買到的機(jī)器翻譯軟件。這些已知系統(tǒng)具有的缺點(diǎn)致使它們?nèi)菀壮鲥e(cuò)、速度緩慢并帶來不便。已知的翻譯設(shè)備和方法無法始終如一地返回關(guān)于文本輸入的準(zhǔn)確翻譯,所以常常要求深入細(xì)致的用戶介入,用于校對(duì)和編輯。與提供執(zhí)行文檔的逐詞翻譯的設(shè)備和方法相比,準(zhǔn)確的機(jī)器翻譯更復(fù)雜。在這些逐詞翻譯系統(tǒng)中,該翻譯時(shí)常讓該被翻譯文檔的讀者不解其義,因?yàn)樵撝鹪~翻譯方法會(huì)導(dǎo)致錯(cuò)誤的詞選擇和不連貫的語法單元。為了克服這些不足之處,已知的翻譯設(shè)備數(shù)十年來一直在嘗試根據(jù)詞匯規(guī)則、語形學(xué)規(guī)則、句法規(guī)則和語義規(guī)則的組合或集合而在句子的上下文內(nèi)選擇詞翻譯。這些系統(tǒng)(在該
技術(shù)領(lǐng)域:
中被稱作“‘基于規(guī)則’的機(jī)器翻譯(MT)系統(tǒng)”)是有缺陷的,因?yàn)閷?duì)于這些規(guī)則有如此多的例外,以致它們無法提供始終如一的準(zhǔn)確翻譯。除“基于規(guī)則的MT”以外,近十年來,已開發(fā)了一種被稱作“基于例子”(EBMT)的MT的新方法。EBMT使用被存儲(chǔ)在交叉語言數(shù)據(jù)庫中的兩種不同語言內(nèi)的句子(或可能是句子的各個(gè)部分)。當(dāng)翻譯查詢與該數(shù)據(jù)庫中的句子匹配時(shí),該數(shù)據(jù)庫產(chǎn)生采用該目標(biāo)語言的該句子的翻譯,從而提供采用第二種語言的準(zhǔn)確的翻譯。如果翻譯查詢的一個(gè)部分與該數(shù)據(jù)庫中的句子的一個(gè)部分匹配,則這些設(shè)備嘗試準(zhǔn)確地確定被映射到該源語言句子的那個(gè)句子的哪個(gè)部分是該查詢的翻譯。EBMT系統(tǒng)無法提供廣泛語言(broadlanguage)的準(zhǔn)確翻譯,因?yàn)闈撛跓o限的交叉語言句子的該數(shù)據(jù)庫是手動(dòng)建立的,并且將總是有顯著的“不完全性”。EBMT系統(tǒng)的另一個(gè)缺點(diǎn)是部分匹配得不到可靠的翻譯。使用統(tǒng)計(jì)機(jī)器翻譯的系統(tǒng)嘗試使用各對(duì)被翻譯文檔并結(jié)合正好采用該目標(biāo)語言的文檔大全,來使交叉語言數(shù)據(jù)庫的該創(chuàng)建自動(dòng)化。這些系統(tǒng)都不使用算法,來從一對(duì)被翻譯文檔中提取充分?jǐn)?shù)量的詞和詞串的翻譯,以產(chǎn)生可靠的翻譯。一些翻譯設(shè)備結(jié)合“基于規(guī)則的統(tǒng)計(jì)MT”和/或EBMT引擎。雖然與單單一個(gè)系統(tǒng)相比,這種途徑組合可以產(chǎn)生更高的準(zhǔn)確率,但是,若沒有重大的用戶介入和編輯,這些結(jié)果仍然不適合運(yùn)用。在嘗試將文檔從一種語言翻譯成另一種語言時(shí)所面臨的這些問題通常可以應(yīng)用于“將表達(dá)想法或信息的數(shù)據(jù)從一種狀態(tài)(比如說,詞)轉(zhuǎn)換成處于另一種狀態(tài)的、表達(dá)這些想法的數(shù)據(jù)(例如,數(shù)學(xué)符號(hào))”的問題。在這類情況中,必須咨詢使處于一種狀態(tài)的數(shù)據(jù)與處于另一種狀態(tài)的相等數(shù)據(jù)相關(guān)聯(lián)的交叉想法聯(lián)想數(shù)據(jù)庫。所以,需要一種改進(jìn)的、更有效率的方法和裝置,用于創(chuàng)建把采用不同語言或處于不同狀態(tài)(例如,詞、詞串、聲音、移動(dòng)等)的相等想法聯(lián)系起來的詞典或數(shù)據(jù)庫,并用于將采用一種語言或處于一種狀態(tài)的文檔所傳達(dá)的想法翻譯或轉(zhuǎn)換成采用另一種語言或處于另一種狀態(tài)的文檔所表達(dá)的相同的或類似的想法。本發(fā)明涉及使用交叉想法聯(lián)想數(shù)據(jù)庫來處理內(nèi)容。特別是,本發(fā)明提供了一種用于創(chuàng)建關(guān)聯(lián)想法數(shù)據(jù)庫的方法和裝置,并且提供了一種用于利用那個(gè)數(shù)據(jù)庫來將想法從一種狀態(tài)轉(zhuǎn)換成其他狀態(tài)的方法和裝置。在一個(gè)實(shí)施例中,舉例來講,本發(fā)明提供了一種用于創(chuàng)建語言翻譯數(shù)據(jù)庫的方法和裝置——其中,兩種語言構(gòu)成這個(gè)關(guān)聯(lián)想法數(shù)據(jù)庫。本發(fā)明也提供了一種用于利用那個(gè)語言數(shù)據(jù)庫來將文檔(表達(dá)想法)從一種語言轉(zhuǎn)換成另一種語言(或一般地說,是從一種狀態(tài)轉(zhuǎn)換成另一種狀態(tài))的方法和裝置。但是,本發(fā)明不局限于語言翻譯,盡管將呈現(xiàn)那個(gè)較佳實(shí)施例。本發(fā)明的該數(shù)據(jù)庫創(chuàng)建方面可以應(yīng)用于按某種方式而相關(guān)的、但用不同狀態(tài)來表示的任何想法,本發(fā)明的該轉(zhuǎn)換方面可以應(yīng)用于將想法準(zhǔn)確地從一種狀態(tài)翻譯成另一種狀態(tài)。在另一個(gè)實(shí)施例中,本發(fā)明的該數(shù)據(jù)庫創(chuàng)建方面可以被用來在單一語言內(nèi)的想法與它們彼此的關(guān)系之間形成聯(lián)系,它們將被用于人工智能應(yīng)用程序中?,F(xiàn)在將描述本發(fā)明對(duì)語言翻譯實(shí)施例的應(yīng)用。如這里所使用的,可交換地、最廣義地使用與轉(zhuǎn)換、翻譯和處理有關(guān)的這些術(shù)語。發(fā)明概述本發(fā)明的一個(gè)目的是通過提供一種用于創(chuàng)建和補(bǔ)充交叉想法聯(lián)想數(shù)據(jù)庫的方法和裝置,來促進(jìn)文檔從一種語言或狀態(tài)到另一種語言或狀態(tài)的有效率的翻譯。這些數(shù)據(jù)庫通常將表達(dá)特定想法或信息的、處于第一種形式或狀態(tài)的數(shù)據(jù)與表達(dá)相同想法或信息的、處于第二種形式或狀態(tài)的數(shù)據(jù)聯(lián)系起來。本發(fā)明的另一個(gè)目的是通過提供一種用于從包括采用第一種狀態(tài)、形式或語言的數(shù)據(jù)的第一文檔中創(chuàng)建包括采用第二種狀態(tài)、形式或語言的數(shù)據(jù)的第二文檔的方法和裝置(其結(jié)果是該第一和第二文檔實(shí)質(zhì)上表達(dá)相同的想法或信息),來促進(jìn)文檔從一種語言或狀態(tài)到另一種語言或狀態(tài)的翻譯。本發(fā)明的另一個(gè)目的是通過提供一種用于從包括采用第一種狀態(tài)、形式或語言的數(shù)據(jù)的第一文檔中創(chuàng)建包括采用第二種狀態(tài)、形式或語言的數(shù)據(jù)的第二文檔的方法和裝置(其結(jié)果是該第一和第二文檔實(shí)質(zhì)上表達(dá)相同的想法或信息;并且,其中,該方法和裝置包括使用交叉想法聯(lián)想數(shù)據(jù)庫),來促進(jìn)文檔從一種語言或狀態(tài)到另一種語言或狀態(tài)的翻譯。本發(fā)明的另一個(gè)目的是按實(shí)時(shí)方式來提供文檔的翻譯(從廣義上說,是想法從一種狀態(tài)到另一種狀態(tài)的轉(zhuǎn)換)。本發(fā)明的另一個(gè)目的是提供一種用于創(chuàng)建數(shù)據(jù)庫的方法和裝置,該數(shù)據(jù)庫用于將信息從一種狀態(tài)轉(zhuǎn)換成另一種狀態(tài)。在較佳實(shí)施例中,該信息是語言,并且,本發(fā)明涉及一種用于創(chuàng)建聯(lián)想數(shù)據(jù)庫的方法和裝置,該數(shù)據(jù)庫能夠被用于語言翻譯系統(tǒng)中。本發(fā)明通過提供一種用于創(chuàng)建交叉想法數(shù)據(jù)庫的方法和裝置,來實(shí)現(xiàn)這些和其他的目的。用于創(chuàng)建該交叉想法數(shù)據(jù)庫的這種方法和裝置可以包括提供兩個(gè)或更多的文檔,每個(gè)文檔采用不同的語言,但實(shí)質(zhì)上表達(dá)相同的想法。這些文檔可以是相同文本的精確翻譯(即平行文本文檔),或者可以是包含通常相關(guān)的文本的翻譯(即可比較的文本文檔)。本發(fā)明選擇多次以第一種語言出現(xiàn)在這些可用的交叉語言文檔中的所有詞和詞串的至少第一次和第二次出現(xiàn)。然后,它選擇這些第二種語言文檔中的至少第一詞范圍和第二詞范圍,其中,該第一和第二詞范圍對(duì)應(yīng)于這些第一種語言文檔中的被選擇的詞或詞串的這第一次和第二次出現(xiàn)。接下來,它將在該第一詞范圍內(nèi)發(fā)現(xiàn)的詞和詞串跟在該第二詞范圍內(nèi)發(fā)現(xiàn)的詞和詞串進(jìn)行比較,從而定位兩個(gè)詞范圍共有的詞和詞串;并且將那些被定位的共有詞和詞串存儲(chǔ)在該交叉想法數(shù)據(jù)庫中。然后,在調(diào)整如這里詳述的這些聯(lián)想頻率之后,本發(fā)明在所述交叉想法數(shù)據(jù)庫中將采用第二種語言的、這兩個(gè)范圍內(nèi)的被定位的共有詞或詞串與采用第一種語言的這個(gè)被選擇的詞或詞串聯(lián)系起來——按其聯(lián)想頻率(復(fù)現(xiàn)的數(shù)量)來分等級(jí)。通過測試跨越“平行或可比較文本”中的各種語言的共有詞和詞串,該數(shù)據(jù)庫將決定更多聯(lián)系,因?yàn)楦唷捌叫谢蚩杀容^文本”可采用各種不同的語言。本發(fā)明也通過提供用于將文檔從一種狀態(tài)轉(zhuǎn)換成另一種狀態(tài)的方法和裝置,來實(shí)現(xiàn)這些和其他的目的。本發(fā)明提供數(shù)據(jù)庫,該數(shù)據(jù)庫包括與采用第二種語言的數(shù)據(jù)段關(guān)聯(lián)的采用第一種語言的數(shù)據(jù)段(通過以上所描述的方法或手動(dòng)地加以創(chuàng)建)。本發(fā)明通過訪問以上提及的數(shù)據(jù)庫,并識(shí)別存在于該數(shù)據(jù)庫中的、以該文檔的第一個(gè)詞開頭的、將要被翻譯(通過詞數(shù)來測量)的該文檔中的最長的詞串,來翻譯文本。然后,該系統(tǒng)從該數(shù)據(jù)庫中檢索與來自采用第一種語言的該文檔的這個(gè)被定位的詞串相關(guān)聯(lián)的采用第二種語言的詞串。然后,該系統(tǒng)選擇存在于該數(shù)據(jù)庫中并且具有與該文檔中的先前被識(shí)別的詞串的重疊詞(或者作為選擇,是詞串)的該文檔中的第二個(gè)詞串,并從該數(shù)據(jù)庫中檢索與采用第一種語言的該第二個(gè)詞串相關(guān)聯(lián)的采用第二種語言的詞串。如果采用第二種語言的這些詞串聯(lián)想具有重疊詞(或者作為選擇,是多個(gè)詞),則結(jié)合采用第二種語言的這些詞串聯(lián)想(消除了該重疊中的冗余),以形成翻譯;如果不是這樣,則通過詞的重疊來檢索和測試與這些第一種語言詞串的其他第二種語言聯(lián)想,用于組合,直到成功為止。通過在該數(shù)據(jù)庫中找到具有與這個(gè)先前被識(shí)別的第一種語言詞串的重疊詞(或作為選擇,是多個(gè)詞)的該最長詞串,來選擇采用第一種語言的該文檔中的下一個(gè)詞串;并且,以上過程繼續(xù)進(jìn)行,直到這整個(gè)第一種語言文檔被翻譯成第二種語言文檔為止。本發(fā)明也創(chuàng)建頻率表格,以確定兩個(gè)或更多的詞或詞串之間的聯(lián)想,以便可以在其他應(yīng)用(包括涉及將內(nèi)容從一種狀態(tài)轉(zhuǎn)換成另一種狀態(tài)的應(yīng)用)中利用這些頻率表格。通過檢查處于給定狀態(tài)(例如,給定語言)的文檔,并根據(jù)與該文本中的詞或詞串的接近度來確定兩個(gè)詞和/或詞串相關(guān)的頻率,可創(chuàng)建這些頻率表格。這樣,例如,通過檢查這些英語頻率表格中的文本,可以為與短語“MountEverest”有關(guān)的詞或詞串(例如,“mountain”、“highestplaceintheworld”、“snow”、“climb”、“peopledied”和“cold”)建立聯(lián)想。然后,可以用任何數(shù)量的方法在智能應(yīng)用程序中利用這些頻率表格,以便通過識(shí)別兩個(gè)或更多的頻率表格上的共同聯(lián)想來回答問題。可以從采用單一語言的文檔中(或作為選擇,使用交叉語言文本)建立為智能應(yīng)用程序創(chuàng)建的數(shù)據(jù)庫。附圖簡述圖1表現(xiàn)了根據(jù)本發(fā)明的交叉想法數(shù)據(jù)庫的實(shí)施例。圖2表現(xiàn)了本發(fā)明的計(jì)算機(jī)系統(tǒng)的實(shí)施例,用于執(zhí)行本發(fā)明的各種方法。圖3表現(xiàn)了本發(fā)明的該計(jì)算機(jī)系統(tǒng)的存儲(chǔ)設(shè)備,它包含用于執(zhí)行本發(fā)明的各種方法的程序。發(fā)明詳述本發(fā)明提供了一種方法和裝置,用于創(chuàng)建和補(bǔ)充交叉想法數(shù)據(jù)庫,并用于使用交叉想法數(shù)據(jù)庫來將文檔從第一種語言或狀態(tài)翻譯成第二種語言或狀態(tài)。如這里所討論的文檔是信息收集,作為被固定在某個(gè)介質(zhì)中的符號(hào)和字符所表達(dá)的想法。例如,這些文檔可以是被存儲(chǔ)在磁性或光學(xué)介質(zhì)上的電子文檔、或書面文檔(例如,書籍)。文檔中所包含的這些符號(hào)和字符表達(dá)想法和信息,這些想法和信息通過使用意在被這些文檔的用戶理解的一個(gè)或多個(gè)表達(dá)系統(tǒng)來加以表示。本發(fā)明處理處于第一種狀態(tài)(即,包含一個(gè)表達(dá)系統(tǒng)中所表示的信息)的文檔,以產(chǎn)生處于第二種狀態(tài)(即,實(shí)質(zhì)上包含使用第二個(gè)表達(dá)系統(tǒng)來表示的相同的信息)的文檔。這樣,本發(fā)明可以將各個(gè)表達(dá)系統(tǒng)(例如,諸如英語、希伯來語和粵語等書面語言和口頭語言)之間的文檔處理或翻譯成其他語言。用于執(zhí)行本發(fā)明的該內(nèi)容轉(zhuǎn)換或內(nèi)容處理方法的系統(tǒng)或裝置可以是圖2所示的計(jì)算機(jī)系統(tǒng)200。計(jì)算機(jī)系統(tǒng)200包括經(jīng)由總線214而被耦合到存儲(chǔ)器208的處理器202、輸入設(shè)備210和輸出設(shè)備212。計(jì)算機(jī)系統(tǒng)200也可以包括存儲(chǔ)設(shè)備204和網(wǎng)絡(luò)接口206。處理器202訪問被存儲(chǔ)在存儲(chǔ)器208中的數(shù)據(jù)和程序。通過執(zhí)行存儲(chǔ)器208中的這些程序,該處理器可以控制計(jì)算機(jī)系統(tǒng)200,并可以執(zhí)行步驟,以便處理數(shù)據(jù)和控制設(shè)備(例如,包括輸入設(shè)備210、輸出設(shè)備212、存儲(chǔ)設(shè)備204、網(wǎng)絡(luò)接口206和存儲(chǔ)器208)。被存儲(chǔ)在存儲(chǔ)器208中的程序可以包括用于執(zhí)行本發(fā)明的各種方法(例如,內(nèi)容轉(zhuǎn)換、使詞和詞串發(fā)生聯(lián)系、以及數(shù)據(jù)庫創(chuàng)建與補(bǔ)充方法)的步驟。存儲(chǔ)設(shè)備204記錄并存儲(chǔ)信息,供存儲(chǔ)器208、處理器202以后檢索;并且可以包括該
技術(shù)領(lǐng)域:
中已知的存儲(chǔ)設(shè)備(例如,非易失存儲(chǔ)設(shè)備、磁盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器和光學(xué)存儲(chǔ)設(shè)備)。存儲(chǔ)設(shè)備204可以存儲(chǔ)程序和數(shù)據(jù)——包括可以被轉(zhuǎn)移到存儲(chǔ)器208供處理器202使用的數(shù)據(jù)庫。完整的數(shù)據(jù)庫或數(shù)據(jù)庫的各個(gè)部分可以被轉(zhuǎn)移到存儲(chǔ)器208,供處理器202訪問和處理。網(wǎng)絡(luò)接口206在計(jì)算機(jī)系統(tǒng)200與網(wǎng)絡(luò)216(例如,因特網(wǎng))之間提供接口,并將來自計(jì)算機(jī)系統(tǒng)200的信號(hào)變換成可以在網(wǎng)絡(luò)216上被傳送的格式,反之亦然。輸入設(shè)備210可以包括(例如)用于將數(shù)據(jù)輸入存儲(chǔ)器208和存儲(chǔ)設(shè)備204的鍵盤和掃描儀。輸入數(shù)據(jù)可以包括將要被存儲(chǔ)在文檔數(shù)據(jù)庫中用于分析和內(nèi)容轉(zhuǎn)換的文檔文本。輸出設(shè)備212包括用于向計(jì)算機(jī)系統(tǒng)用戶呈現(xiàn)信息的設(shè)備,并可以包括(例如)監(jiān)視屏和打印機(jī)?,F(xiàn)在將描述本發(fā)明的詳細(xì)說明——包括該數(shù)據(jù)庫創(chuàng)建方法和裝置、以及該轉(zhuǎn)換方法和裝置。數(shù)據(jù)庫創(chuàng)建方法和裝置本發(fā)明的該方法使用用于文檔內(nèi)容處理的交叉想法數(shù)據(jù)庫。圖1描繪了交叉想法數(shù)據(jù)庫的實(shí)施例。交叉想法數(shù)據(jù)庫的這個(gè)實(shí)施例包括列1和列2中的關(guān)聯(lián)的數(shù)據(jù)段的清單。這些數(shù)據(jù)段是在表達(dá)系統(tǒng)中表達(dá)特定想法或信息的符號(hào)或字符編組。例如,在文檔的表達(dá)系統(tǒng)是詞語言的情況下,片段可以是詞或詞串。這樣,列1中的“系統(tǒng)A片段”是在假設(shè)的表達(dá)系統(tǒng)A中表達(dá)各種想法以及想法Da1、Da2、Da3和Da4的組合的數(shù)據(jù)段。列2中的“系統(tǒng)B片段”是在假設(shè)的表達(dá)系統(tǒng)B中表達(dá)各種想法和那些想法的各種組合中的一些組合的數(shù)據(jù)段Db1、Db3、Db4、Db5、Db7、Db9、Db10和Db12,它們通過與表達(dá)系統(tǒng)A中的數(shù)據(jù)段的聯(lián)想頻率來進(jìn)行排序。列3表現(xiàn)了“直接頻率”,它是采用語言B的這個(gè)或這些片段與采用語言A的這個(gè)(或這些)被列出的片段關(guān)聯(lián)的次數(shù)。列4表現(xiàn)了“減法后的頻率”,它表現(xiàn)在減去那個(gè)(或那些)片段作為較大片段的一部分而關(guān)聯(lián)的次數(shù)之后,采用語言B的一個(gè)(或多個(gè))數(shù)據(jù)段與采用語言A的一個(gè)(或多個(gè))片段關(guān)聯(lián)的次數(shù);這一點(diǎn)以后將更充分地加以描述。如圖1所示,單一片段(比如說,Da1)可能最適合與多個(gè)片段——Db1以及Db3和Db4關(guān)聯(lián)。數(shù)據(jù)段之間的該“減法后的頻率”(如這里所描述的)越高,系統(tǒng)A片段等同于系統(tǒng)B片段的概率就越高。除了利用出現(xiàn)總數(shù)來測量被調(diào)整的頻率以外,例如,也可以通過計(jì)算特定的系統(tǒng)A片段對(duì)應(yīng)于特定的系統(tǒng)B片段的時(shí)間百分比,來測量這些被調(diào)整的頻率。當(dāng)使用該數(shù)據(jù)庫來翻譯文檔時(shí),在該過程中,將首先從該數(shù)據(jù)庫中檢索這個(gè)最高等級(jí)的關(guān)聯(lián)的片段。但是,被用來測試用于翻譯的關(guān)聯(lián)片段的組合的該方法(如以后所描述的)經(jīng)常確定應(yīng)該測試不同的較低等級(jí)的聯(lián)想,因?yàn)樵撦^高等級(jí)的聯(lián)想一旦被測試,就無法使用了。例如,如果向該數(shù)據(jù)庫查詢關(guān)于Da1的聯(lián)想,則它將會(huì)返回Db1+Db3+Db4;如果如準(zhǔn)確地結(jié)合用于翻譯的數(shù)據(jù)段的該過程所確定的,無法使用Db1+Db3+Db4,那么,該數(shù)據(jù)庫將會(huì)返回Db9+Db10,以測定與另一個(gè)關(guān)聯(lián)的數(shù)據(jù)段的準(zhǔn)確組合,用于翻譯。一般而言,用于創(chuàng)建本發(fā)明的交叉想法數(shù)據(jù)庫的該方法包括檢查并作用于“平行或可比較文本”。利用本發(fā)明的該方法和裝置,以便利用跨越這兩種狀態(tài)的聯(lián)想(準(zhǔn)確的轉(zhuǎn)換,或更明確地說,是如以一種狀態(tài)表示的想法與如以另一種狀態(tài)表示的想法之間的聯(lián)想)來創(chuàng)建數(shù)據(jù)庫。這兩種狀態(tài)之間的該翻譯和其他有關(guān)的聯(lián)想變得更強(qiáng)大(即更頻繁),因?yàn)楦辔臋n通過本發(fā)明而加以檢查和操作,以便通過作用于足夠大的文檔“樣品”,最共同的(從一種意義上來說,是正確的)聯(lián)想變得一目了然,并且可以為轉(zhuǎn)換目的而利用該方法和裝置。在本發(fā)明的一個(gè)實(shí)施例中,這兩種狀態(tài)表達(dá)詞語言(例如,英語、希伯來語、漢語等),以便本發(fā)明創(chuàng)建交叉語言數(shù)據(jù)庫,該交叉語言數(shù)據(jù)庫使采用一種語言的詞和詞串跟采用另一種語言的其翻譯相對(duì)物相互關(guān)聯(lián)。詞串可以被定義為各組連貫的、鄰接的詞,并且經(jīng)常包括該語言表達(dá)中所使用的標(biāo)點(diǎn)符號(hào)和任何其他的標(biāo)記。在這個(gè)例子中,本發(fā)明通過檢查采用這兩種語言的文檔,并為采用這兩種語言的每個(gè)復(fù)現(xiàn)的詞或詞串創(chuàng)建翻譯數(shù)據(jù)庫,來創(chuàng)建數(shù)據(jù)庫。但是,本發(fā)明不需要局限于語言翻譯。本發(fā)明允許用戶創(chuàng)建想法數(shù)據(jù)庫并使那些想法與其他想法關(guān)聯(lián),從而按分層方式使各個(gè)想法有所不同。這樣,想法與其他想法關(guān)聯(lián),并根據(jù)該出現(xiàn)頻率來加以評(píng)定。為該出現(xiàn)頻率提供的該特殊加權(quán)、以及被應(yīng)用于如此創(chuàng)建的該數(shù)據(jù)庫的效用可以根據(jù)該用戶的要求而變化。例如,在將文本從一種語言轉(zhuǎn)換成另一種語言的上下文中,本發(fā)明將進(jìn)行操作,以便在英語與漢語之間創(chuàng)建詞和詞串的語言翻譯。本發(fā)明將返回跨越這兩種語言的詞和詞串之間的聯(lián)想等級(jí)評(píng)定。假如樣品尺寸足夠大,最常出現(xiàn)的那個(gè)詞或詞串將是該英語詞或詞串的漢語相等物之一。但是,本發(fā)明也將返回關(guān)于這些英語詞或詞串的其他漢語聯(lián)想,并且,該用戶可以按需要來處理那些聯(lián)想。例如,當(dāng)根據(jù)本發(fā)明來加以操作時(shí),詞“mountain”可以返回采用正在被檢查的該語言的漢語詞和詞串的清單。詞“mountain”的這些漢語相等物將最有可能被評(píng)為最高等級(jí);但是,本發(fā)明將返回與“mountain”關(guān)聯(lián)的其他外語詞或詞串(例如,“snow”、“ski”、“dangeroussport”、“thehighestpointintheworld”或“Mt.Everest”)。這些詞和詞串(其等級(jí)將有可能低于“mountain”的翻譯)可以按該用戶的需要來加以處理。這樣,本發(fā)明是自動(dòng)化聯(lián)想數(shù)據(jù)庫創(chuàng)建者。從一種意義上說,最強(qiáng)的聯(lián)想表達(dá)“翻譯”或“轉(zhuǎn)換”,但其他頻繁的(但較弱的)聯(lián)想表達(dá)與正在被檢查的該想法密切相關(guān)的想法。所以,通過使用該
技術(shù)領(lǐng)域:
中眾所周知的人工智能應(yīng)用程序,系統(tǒng)可以使用這些數(shù)據(jù)庫。那些系統(tǒng)當(dāng)前將不完全的、手動(dòng)創(chuàng)建的想法數(shù)據(jù)庫或事物本體用作關(guān)于應(yīng)用的“神經(jīng)網(wǎng)絡(luò)”??梢允褂脕碜圆捎脝我徽Z言的文檔的任何用戶定義范圍,來建立關(guān)于人工智能應(yīng)用程序的這些關(guān)聯(lián)想法數(shù)據(jù)庫。本發(fā)明的另一個(gè)實(shí)施例利用計(jì)算設(shè)備(例如,原先
技術(shù)領(lǐng)域:
中的可用類型的個(gè)人計(jì)算機(jī)系統(tǒng))。雖然該計(jì)算設(shè)備通常是普通的個(gè)人計(jì)算機(jī)(要么是單機(jī),要么在聯(lián)網(wǎng)環(huán)境中),但是,同樣考慮諸如PDA、無線設(shè)備、服務(wù)器、大型機(jī)等其他計(jì)算設(shè)備。但是,本發(fā)明的該方法和裝置不需要使用這種計(jì)算設(shè)備,并且可以通過其他手段(包括手動(dòng)創(chuàng)建這些交叉聯(lián)想)來容易地加以實(shí)現(xiàn)。用于檢查接連的文檔以便擴(kuò)大文檔的該“樣品”并創(chuàng)建該交叉聯(lián)想數(shù)據(jù)庫的那種方法有變化——通過自動(dòng)饋給(例如,如原先
技術(shù)領(lǐng)域:
中已知的自動(dòng)紙張裝載機(jī)),或者通過使用因特網(wǎng)上的搜索技術(shù)來自動(dòng)尋出這些有關(guān)的文檔(例如,“網(wǎng)絡(luò)爬蟲”),可以手動(dòng)設(shè)立這些文檔,用于分析和處理。注意,除(或甚至取代)“平行文本”以外,通過檢查“可比較文本”,本發(fā)明也可以產(chǎn)生關(guān)聯(lián)的數(shù)據(jù)庫。此外,當(dāng)搜索一種語言內(nèi)復(fù)現(xiàn)的詞或詞串時(shí),該方法全體地查看所有可用的文檔。建立該數(shù)據(jù)庫根據(jù)本發(fā)明,為了建立該數(shù)據(jù)庫而對(duì)這些文檔進(jìn)行檢查。在文檔輸入(再次關(guān)于表達(dá)采用兩種不同語言的相同文本的一對(duì)文檔)之后,使用這里所描述的這些方法和/或裝置來開始該創(chuàng)建過程。出于說明目的,假設(shè)這些文檔包含采用兩種不同語言的相同內(nèi)容(或從一般意義上說,是想法)。文檔A采用語言A,文檔B采用語言B。這些文檔具有以下文本本發(fā)明中的第一個(gè)步驟是計(jì)算詞范圍,以確定關(guān)于任何給定詞或詞串的可能的聯(lián)想的近似位置。由于單單的交叉語言逐字分析將不會(huì)產(chǎn)生有構(gòu)詞能力的結(jié)果(即,文檔A中的詞1經(jīng)常不會(huì)作為文檔B中的詞1的字面翻譯而存在),并且一種語言的句子結(jié)構(gòu)可能在另一種語言的句子的不同位置(或順序)中具有相等的想法,因此,本發(fā)明的該數(shù)據(jù)庫創(chuàng)建技術(shù)將采用第一種語言的每個(gè)詞或詞串與在該第二種語言文檔中的所選擇的范圍內(nèi)發(fā)現(xiàn)的所有這些詞和詞串相關(guān)聯(lián)。這也很重要,因?yàn)橐环N語言經(jīng)常用比另一種語言更長或更短的詞串來表示想法。通過檢查這兩個(gè)文檔來確定該范圍,該范圍被用來將該第二文檔中的詞和詞串跟該第一文檔中的詞和詞串進(jìn)行比較。也就是說,該第二文檔中的詞或詞串的范圍被加以檢查,作為關(guān)于該第一文檔中的每個(gè)詞和詞串的可能的聯(lián)想。通過根據(jù)范圍來進(jìn)行測試,該數(shù)據(jù)庫創(chuàng)建技術(shù)可建立許多第二種語言詞或詞串,該第二種語言詞或詞串可以等同于和翻譯成該第一種語言詞和詞串。為了在該第二種語言文檔(在其中尋找關(guān)于該第一種語言文檔中的任何給定詞或詞串的聯(lián)想)中建立該范圍,必須確定兩個(gè)屬性。第一個(gè)屬性是該第二文檔中的該范圍的值或尺寸——由該范圍內(nèi)的詞數(shù)來測量。第二個(gè)屬性是該第二文檔中的該范圍的位置——由該范圍的中點(diǎn)的方位來測量。這兩個(gè)屬性是用戶定義的,但以下提供較佳實(shí)施例的例子。在定義該范圍的尺寸和位置的過程中,目標(biāo)是確?!罢诩右苑治龅脑摰谝环N語言片段的該第二種語言詞或詞串翻譯將被包括在內(nèi)”的高概率。可以使用各種技術(shù)來確定該范圍的尺寸或值,包括普通的統(tǒng)計(jì)技術(shù)(例如,根據(jù)文檔中的詞數(shù)來導(dǎo)出鐘形曲線)。利用諸如鐘形曲線的統(tǒng)計(jì)技術(shù),該文檔開端和末端處的該范圍將小于該文檔中間的該范圍。不管是根據(jù)文檔中的絕對(duì)詞數(shù)來導(dǎo)出,還是根據(jù)文檔中的某個(gè)詞百分比來導(dǎo)出,關(guān)于該范圍的鐘形頻率都允許有該翻譯的外推法的合理機(jī)會(huì)。存在用于計(jì)算該范圍的其他方法,例如“步驟”技術(shù)——其中,該范圍存在于關(guān)于某個(gè)詞百分比的一個(gè)等級(jí)、關(guān)于另一個(gè)詞百分比的更高的第二等級(jí)、以及等同于關(guān)于最后的詞百分比的該第一等級(jí)的第三等級(jí)。再有,可以根據(jù)其他可能的參數(shù)來對(duì)所有的范圍屬性進(jìn)行用戶定義或建立——其目標(biāo)是捕捉關(guān)于采用第一種語言的、正在被分析的該詞或詞串的有用聯(lián)想。該第二種語言文檔內(nèi)的該范圍的位置可能取決于這兩個(gè)文檔中的詞數(shù)之間的比較。用于范圍位置目的的文檔所具備的資格是用戶定義的,并且由新聞文章、書籍章回和任何其他可離散地識(shí)別的內(nèi)容單元(由多個(gè)數(shù)據(jù)段組成)來加以例示。如果這兩個(gè)文檔的詞計(jì)數(shù)大略相等,則采用第二種語言的該范圍的位置將大略與采用第一種語言的、正在被分析的該詞或詞串的位置相符。如果這兩個(gè)文檔中的詞數(shù)不相等,那么,可以使用比率來正確地確定該范圍的位置。例如,如果文檔A有50個(gè)詞,文檔B有100個(gè)詞,那么,這兩個(gè)文檔之間的該比率是1∶2。文檔A的該中點(diǎn)是詞位置25。但是,如果正在分析文檔A中的詞25,那么,將這個(gè)中點(diǎn)(詞位置25)用作文檔B中的該范圍的中點(diǎn)的方位是無效的,因?yàn)檫@個(gè)位置(詞位置25)不是文檔B的該中點(diǎn)。相反,用于分析文檔A中的詞25的文檔B中的該范圍的該中點(diǎn)可以由這兩個(gè)文檔之間的該詞比率(即,25×2/1=50)、由文檔B的該中點(diǎn)中的手動(dòng)方位、或通過其他技術(shù)來加以確定。通過查看該文檔中的詞或詞串的該位置,并注意在如上所述的該范圍以內(nèi)的所有這些詞或詞串,本發(fā)明的該數(shù)據(jù)庫創(chuàng)建技術(shù)可返回該第二種語言文檔中的可能的詞或詞串集,它們可以翻譯成正在被分析的該第一文檔中的每個(gè)詞或詞串。當(dāng)利用本發(fā)明的該數(shù)據(jù)庫創(chuàng)建技術(shù)時(shí),隨著聯(lián)想頻率的發(fā)展,有資格成為可能的翻譯的這個(gè)詞和詞串集將縮小范圍。這樣,在檢查一對(duì)文檔之后,本發(fā)明將創(chuàng)建采用一種語言的詞和詞串與采用第二種語言的詞或詞串的聯(lián)想頻率。在根據(jù)本發(fā)明來檢查許多文檔對(duì)(因此創(chuàng)建了大樣品)之后,該交叉語言聯(lián)想數(shù)據(jù)庫創(chuàng)建技術(shù)將返回關(guān)于任何一個(gè)詞或詞串的越來越高的聯(lián)想頻率。在足夠大的樣品之后,這些最高的聯(lián)想頻率會(huì)產(chǎn)生可能的翻譯;當(dāng)然,在那里該聯(lián)想頻率被認(rèn)為是準(zhǔn)確翻譯的該終點(diǎn)是用戶定義的,并且服從其他解釋性翻譯技術(shù)(例如,2001年3月16日提交的標(biāo)題為《用于內(nèi)容處理的方法和裝置》的第60/276,107號(hào)臨時(shí)申請(qǐng)中所描述的技術(shù),該臨時(shí)申請(qǐng)被包括于此,用作參考)。如以上所指出的,本發(fā)明不僅測試詞,而且測試詞串(多個(gè)詞)。如上所述,詞串包括出現(xiàn)的所有標(biāo)點(diǎn)符號(hào)和其他標(biāo)記。在分析采用第一種語言的單一詞之后,本發(fā)明的該數(shù)據(jù)庫創(chuàng)建技術(shù)按遞增方式來分析二詞詞串、然后是三詞詞串、等等。通過該技術(shù),可以將采用一種語言的詞或詞串翻譯成采用另一種語言的更短或更長的詞串(或詞),這種情況經(jīng)常發(fā)生。如果詞或詞串只在采用第一種語言的所有可用文檔中出現(xiàn)一次,那么,該過程立即開始分析下一個(gè)詞或詞串——在那里,該分析循環(huán)再次發(fā)生。當(dāng)以第一種語言而多次出現(xiàn)在所有可用的“平行和可比較文本”中的所有詞或詞串都已被分析時(shí),該分析停止。從某種意義上說,任何數(shù)量的文檔都可以被聚集起來,并可以被視作一個(gè)單一文檔,用于尋找詞或詞串的復(fù)現(xiàn)。本質(zhì)上,關(guān)于將不會(huì)重復(fù)的詞或詞串,它將必須只在所有可能的“平行和可比較文本”中出現(xiàn)一次。此外,作為另一個(gè)實(shí)施例,可以檢查對(duì)應(yīng)于每個(gè)詞和詞串的該范圍,而不管它是否在所有可用的“可比較和平行文本”中出現(xiàn)一次以上。作為另一個(gè)實(shí)施例,可以通過決定是查詢的一部分的特殊詞和詞串,來建立該數(shù)據(jù)庫。當(dāng)為翻譯而輸入詞和詞串時(shí),本發(fā)明通過使用網(wǎng)絡(luò)爬蟲和其他設(shè)備來定位因特網(wǎng)上的交叉語言文本,最后通過要求該用戶根據(jù)該查詢的分析和充分可用的交叉語言材料的缺乏來供應(yīng)缺少的聯(lián)想,可以尋找還沒有被分析的、被存儲(chǔ)在存儲(chǔ)器中的交叉語言文檔中的這些詞或詞串的多次出現(xiàn)。這樣,本發(fā)明按這種方式來進(jìn)行操作,以分析依靠(那個(gè)詞串中的)詞的正確定位的詞串;并且可以按這種方式來進(jìn)行操作,以說明詞選擇的上下文、以及諸如措詞、文體或縮寫詞等語法特質(zhì)。對(duì)于提供如這里所描述的該翻譯過程的該雙重重疊翻譯技術(shù)而言,這些詞串聯(lián)想也有用。重要的是,要注意本發(fā)明可以適應(yīng)這些情況——其中,較大詞串的子集詞或詞串被始終如一地返回,作為關(guān)于該較大詞串的聯(lián)想。本發(fā)明通過處理該頻率返回,來說明這些模式。例如,固有名稱有時(shí)被呈現(xiàn)完整(如在“JohnDoe”中),按名或姓(“John”或“Doe”)來縮寫,或者按另一種方式(“Mr.Doe”)來縮寫。由于本發(fā)明將最有可能返回比詞串返回更多的單獨(dú)的詞返回(即,關(guān)于這些名或姓的更多返回,而不是關(guān)于該全名詞串“JohnDoe”的更多返回),因?yàn)闃?gòu)成詞串的這些詞將有必要單獨(dú)加以計(jì)數(shù)并且有必要成為該短語的一部分,因此,應(yīng)該利用用于改變?cè)摰燃?jí)評(píng)定的機(jī)制。例如,在任何文檔中,名稱“JohnDoe”可能出現(xiàn)一百次,而“John”單獨(dú)地或作為JohnDoe的一部分可能出現(xiàn)120次,“Doe”單獨(dú)地或作為JohnDoe的一部分可能出現(xiàn)110次。該正規(guī)翻譯返回(根據(jù)本發(fā)明)將把“John”的等級(jí)評(píng)得比“Doe”更高,并且那兩個(gè)詞的等級(jí)高于詞串“JohnDoe”——都是在嘗試分析詞串“JohnDoe”時(shí)。通過從該子集(或單獨(dú)返回)的出現(xiàn)中減去該較大詞串的出現(xiàn)次數(shù),可以實(shí)現(xiàn)該適當(dāng)?shù)呐判?當(dāng)然,盡管可以利用其他方法來獲得類似的結(jié)果)。這樣,從120(關(guān)于詞“John”的出現(xiàn)次數(shù))中減去100(關(guān)于“JohnDoe”的出現(xiàn)次數(shù)),關(guān)于“John”的該被糾正的返回是20。通過應(yīng)用該分析,可產(chǎn)生100,作為關(guān)于詞串“JohnDoe”的出現(xiàn)次數(shù)(當(dāng)分析和嘗試翻譯這個(gè)詞串時(shí));可產(chǎn)生20,作為關(guān)于詞“John”的出現(xiàn)次數(shù);可產(chǎn)生10,作為關(guān)于詞串“Doe”的出現(xiàn)次數(shù);從而創(chuàng)建這些適當(dāng)?shù)穆?lián)想。注意,這個(gè)問題不局限于固有名稱,并且經(jīng)常發(fā)生在公用短語和許多不同的上下文中。例如,每當(dāng)詞串“Iloveyou”被翻譯成采用另一種語言的其最頻繁的詞串聯(lián)想時(shí),采用那另一種語言的關(guān)于“l(fā)ove”的詞也可能每次都獨(dú)立地關(guān)聯(lián)。此外,當(dāng)該詞串在被分析的其他文本中有不同的翻譯時(shí),詞“l(fā)ove”可能會(huì)再次關(guān)聯(lián)。這將會(huì)曲解該分析,并返回采用第二種語言的詞“l(fā)ove”(而不是采用第二種語言的“Iloveyou”),用于采用第一種語言的“Iloveyou”的翻譯。所以,當(dāng)為該較大詞串的聯(lián)想評(píng)定等級(jí)時(shí),該系統(tǒng)再一次從所有子集聯(lián)想的該頻率中減去該較大詞串聯(lián)想的出現(xiàn)次數(shù)。這些概念也在圖1中得到反映。此外,也可以指示該數(shù)據(jù)庫忽視常見詞(例如,“it”、“an”、“a”、“of”、“as”、“in”等)——或當(dāng)對(duì)詞和詞串的聯(lián)想頻率進(jìn)行計(jì)數(shù)時(shí)的任何常見詞。這將會(huì)更準(zhǔn)確地反映這些真實(shí)的聯(lián)想頻率數(shù),否則,作為任何給定范圍的一部分的常見詞的眾多次出現(xiàn)將會(huì)曲解它們。這允許本發(fā)明的該聯(lián)想數(shù)據(jù)庫創(chuàng)建技術(shù)防止常見詞曲解該分析,而無需過多的減法計(jì)算。應(yīng)該注意,如果沒有從該聯(lián)想數(shù)據(jù)庫中“減去”這些或任何其他的常見詞,除非合適,否則,它們最終將不會(huì)被批準(zhǔn)為翻譯,這是因?yàn)檫@里更加詳細(xì)地加以描述的該雙重重疊過程將不接受它。應(yīng)該注意,可以讓用于調(diào)整這些聯(lián)想頻率的其他計(jì)算確保詞和詞串的共同出現(xiàn)次數(shù)的準(zhǔn)確反映。例如,當(dāng)被分析的詞的這些范圍重疊時(shí),用于避免雙重計(jì)數(shù)的調(diào)整可能是合適的。在這些情況中,需要進(jìn)行調(diào)整,以建立更準(zhǔn)確的聯(lián)想頻率。現(xiàn)在,將通過把以上所描述的這兩個(gè)文檔用作例子,來描述用于創(chuàng)建和補(bǔ)充根據(jù)本發(fā)明的交叉想法數(shù)據(jù)庫的該方法和裝置的實(shí)施例的例子——該表格被重新創(chuàng)建如下表格1再次注意,雖然這個(gè)實(shí)施例著重于只在單一文檔中的復(fù)現(xiàn)的詞和詞串,但是,這主要是出于說明目的。將使用總計(jì)的所有可用的“平行和可比較文本”,來分析復(fù)現(xiàn)的詞和詞串。通過使用以上列出的這兩個(gè)文檔(A——第一種語言,以及B——第二種語言),可在該數(shù)據(jù)庫創(chuàng)建技術(shù)的情況下發(fā)生以下步驟。步驟1.首先,確定該范圍的尺寸和位置。如所指出的,該尺寸和位置可以是用戶定義的,或者可以用各種方法來估計(jì)。這兩個(gè)文檔的該詞計(jì)數(shù)近似相等(在文檔A中有10個(gè)詞,在文檔B中有8個(gè)詞),所以,我們將定位該范圍的中點(diǎn),以便與文檔A中的該詞或詞串的位置相符。(注由于這些文檔之間的該詞計(jì)數(shù)比率是80%,因此,作為選擇,可以應(yīng)用分?jǐn)?shù)4/5而建立該范圍的該位置)。在這個(gè)例子中,3的范圍尺寸或值可以提供最佳結(jié)果,以估計(jì)鐘形曲線;該范圍在該文檔的開端和末端處將是(+/-)1,在中間將是(+/-)2。但是,如所指出的,該范圍(或被用來確定該范圍的該方法)完全是用戶定義的。步驟2.其次,按照文檔A來檢查和測試文檔A中的第一個(gè)詞,以確定該文檔中的那個(gè)詞的出現(xiàn)次數(shù)。在這個(gè)例子中,文檔A中的第一個(gè)詞是XX在文檔A中出現(xiàn)三次——在位置1、4和9處。詞或詞串的這些位置號(hào)碼只是相對(duì)于其他詞的、該文檔中的那個(gè)詞或詞串的位置。這樣,這些位置號(hào)碼對(duì)應(yīng)于文檔中的詞數(shù),從而忽視標(biāo)點(diǎn)符號(hào)——例如,如果文檔在其內(nèi)有10個(gè)詞,并且詞“king”出現(xiàn)兩次,那么,詞“king”的位置號(hào)碼只是該詞出現(xiàn)的地方(出自10個(gè)詞)。由于詞X在該文檔中出現(xiàn)一次以上,因此,該過程進(jìn)行到下一個(gè)步驟。如果詞X只出現(xiàn)過一次,那么,將跳過那個(gè)詞,并且,該過程繼續(xù)到下一個(gè)詞,該創(chuàng)建過程繼續(xù)進(jìn)行。步驟3.返回關(guān)于位置1處的第一種語言詞X的可能的第二種語言翻譯通過將該范圍應(yīng)用于文檔B,可產(chǎn)生在文檔B中的位置1和2(1+/-1)處的詞AA和BB(位于文檔B中的位置1和2處)。返回所有可能的組合,作為關(guān)于XAA、BB和AABB(作為詞串組合)的潛在的翻譯或有關(guān)的聯(lián)想。這樣,X1(詞X的第一次出現(xiàn))返回AA、BB和AABB,作為聯(lián)想。步驟4.分析詞X的下一個(gè)位置。這個(gè)詞(X2)出現(xiàn)在位置4處。由于位置4在該文檔的中心附近,因此,該范圍(如以上所確定的)將是位置4的任何一側(cè)上的兩個(gè)詞。通過查看文檔B中的詞4并應(yīng)用該范圍(+/-)2,來返回可能的聯(lián)想——因此,返回詞4前面的兩個(gè)詞和詞4后面的兩個(gè)詞。這樣,返回位置2、3、4、5和6處的詞。這些位置對(duì)應(yīng)于文檔B中的詞BB、CC、AA、EE和FF。考慮這些詞(及其組合詞串)的所有向前排列。這樣,X2返回BB、CC、AA、EE、FF、BBCC、BBCCAA、BBCCAAEE、BBCCAAEEFF、CCAA、CCAAEE、CCAAEEFF、AAEE、AAEEFF和EEFF,作為可能的聯(lián)想。步驟5.將X(位置1)的第一次出現(xiàn)的返回與X(位置4)的第二次出現(xiàn)的返回進(jìn)行比較,并且確定匹配。注意,包括出現(xiàn)在這兩個(gè)范圍的重疊中的相同的詞或詞串的返回應(yīng)該被減少到單一出現(xiàn)。例如,在這個(gè)例子中,位置2處的該詞是BB;這被返回,不僅是為X的第一次出現(xiàn)(當(dāng)由該范圍來操作時(shí)),而且是為X的第二次出現(xiàn)(當(dāng)由該范圍來操作時(shí))。由于為X1和X2而返回這個(gè)相同的詞位置,因此,該詞被計(jì)數(shù)為一次出現(xiàn)。但是,如果在重疊的范圍內(nèi)、但從兩個(gè)不同的詞位置返回該相同的詞,那么,該詞被計(jì)數(shù)兩次,并且該聯(lián)想頻率被加以記錄。在此情況下,關(guān)于詞X的返回是AA,因?yàn)槟莻€(gè)詞(AA)出現(xiàn)在關(guān)于X1和X2的兩個(gè)聯(lián)想返回中。注意,出現(xiàn)在這兩個(gè)聯(lián)想返回中的另一個(gè)詞是BB;但是,如上所述,由于那個(gè)詞是通過該范圍對(duì)X的第一次和第二次出現(xiàn)的操作而達(dá)到的該相同的位置(和(因而)該相同的詞),因此,可以忽略該詞。步驟6.分析詞X(位置9)(X3)的下一個(gè)位置。通過應(yīng)用(+/-)1的范圍(在該文檔的末端附近),可返回文檔B的位置8、9和10處的聯(lián)想。由于文檔B只有8個(gè)位置,因此,截取這些結(jié)果,并且只返回詞位置8,作為關(guān)于XCC的可能的值。(注作為選擇,可以為作為該分析的一部分的最少兩個(gè)字符而調(diào)用用戶定義的參數(shù),該分析將會(huì)返回位置8和下一個(gè)最近的位置(它是位置7中的GG))。通過將X3的返回與X1的返回進(jìn)行比較,沒有顯示出匹配,因此也沒有聯(lián)想。步驟7.分析詞X的下一個(gè)位置;但是,文檔A中不再出現(xiàn)詞X。這時(shí),為采用語言A的詞X而建立與采用語言B的詞AA的一(1)的聯(lián)想頻率。步驟8.由于不再出現(xiàn)詞X,因此,該過程逐詞遞增,并且測試詞串。在此情況下,被檢查的該詞串是“XY”——文檔A中的前兩個(gè)詞。步驟2-7中所描述的該相同的技術(shù)被應(yīng)用于這個(gè)短語。步驟9.通過查看文檔A,可見,該詞串XY只出現(xiàn)一次。這時(shí),該遞增過程停止,并且沒有執(zhí)行數(shù)據(jù)庫創(chuàng)建。由于已達(dá)到終點(diǎn),因此,檢查下一個(gè)詞(只要詞串沒有出現(xiàn)匹配,就發(fā)生這個(gè)過程);在此情況下,文檔A的位置2中的該詞是“Y”。步驟10.通過應(yīng)用關(guān)于詞“Y”的步驟2-7的該過程,可產(chǎn)生以下情況存在詞Y的兩次出現(xiàn)(位置2和7),所以,該數(shù)據(jù)庫創(chuàng)建過程繼續(xù)進(jìn)行(再有,如果Y只在文檔A中出現(xiàn)過一次,那么,將不檢查Y);位置2處的該范圍的尺寸是(+/-)1個(gè)詞;對(duì)文檔B的范圍應(yīng)用(位置2——詞Y的第一次出現(xiàn)的位置)可在文檔B中的位置1、2和3處返回結(jié)果;那些被返回的位置中的對(duì)應(yīng)的外語詞是AA、BB和CC;應(yīng)用向前排列可產(chǎn)生以下關(guān)于Y1的可能性AA、BB、CC、AABB、AABBCC和BBCC;分析Y的下一個(gè)位置(位置7);位置7處的該范圍的尺寸是(+/-)2個(gè)詞;對(duì)文檔B的那個(gè)范圍的應(yīng)用(位置7)可在位置5、6、7和8處返回結(jié)果EEFFGG和CC;所有排列產(chǎn)生以下關(guān)于Y2的可能性EE、FF、GG、CC、EEFF、EEFFGG、EEFFGGCC、FFGG、FFGGCC和GGCC;匹配來自Y1的結(jié)果可返回CC,作為該唯一的匹配;結(jié)合關(guān)于Y1和Y2的匹配可產(chǎn)生CC,作為關(guān)于Y的聯(lián)想頻率。步驟11.范圍遞增結(jié)束由于關(guān)于詞Y(詞CC)的該唯一可能的匹配出現(xiàn)在關(guān)于Y(出現(xiàn)在文檔B中的位置3處的CC)的第一次出現(xiàn)的該范圍的末端,因此,該范圍在第一次出現(xiàn)時(shí)遞增1,以返回位置1、2、3和4AA、BB、CC和AA;或以下的向前排列AA、BB、CC、AABB、AABBCC、AABBCCAA、BBCC、BBCCAA和CCAA。應(yīng)用這個(gè)結(jié)果仍然會(huì)產(chǎn)生CC,作為關(guān)于Y的可能的翻譯。注意,該范圍被遞增,這是因?yàn)樵摫环祷氐钠ヅ湓陉P(guān)于第一次出現(xiàn)(關(guān)于詞“Y”的基本出現(xiàn))的該范圍的末端處;只要出現(xiàn)這個(gè)模式,就會(huì)發(fā)生范圍遞增結(jié)束,作為子步驟(或選擇性步驟),以確保完整性。步驟12.由于“Y”不再出現(xiàn)在文檔A中,因此,該分析遞增文檔A中的一個(gè)詞,并且檢查詞串“YZ”(詞Y后面的下一個(gè)詞)。通過遞增到下一個(gè)詞串(YZ)并重復(fù)該過程,可產(chǎn)生以下情況詞串YZ兩次出現(xiàn)在文檔A中位置2和7。關(guān)于第一次出現(xiàn)(YZ1)處的YZ的可能性是AA、BB、CC、AABB、AABBCC、BBCC。(注意,作為選擇,這些范圍參數(shù)可以被定義成包括該范圍的尺寸的擴(kuò)展,因?yàn)椴捎谜Z言A的正在加以分析的詞串變得更長。)關(guān)于第二次出現(xiàn)(YZ2)處的YZ的可能性是EE、FF、GG、CC、EEFF、EEFFGG、EEFFGGCC、FFGG、FFGGCC和GGCC匹配可產(chǎn)生CC,作為關(guān)于詞串YZ的可能的聯(lián)想;延伸該范圍(該范圍遞增結(jié)束)可產(chǎn)生關(guān)于YZ的以下內(nèi)容AA、BB、CC、AABB、AABBCC、AABBCCAA、BBCC、BBCCAA和CCAA。步驟13.由于“YZ”不再出現(xiàn)在文檔A中,因此,該分析遞增文檔A中的一個(gè)詞,并且檢查詞串“YZX”(文檔A中的位置3處的詞Z后面的下一個(gè)詞)。通過遞增到下一個(gè)詞串(YZX)并重復(fù)該過程(YZX在文檔A中出現(xiàn)兩次),可產(chǎn)生以下情況關(guān)于YZX的第一次出現(xiàn)的返回在位置2、3、4和5處;排列是BB、CC、AA、EE、BBCC、BBCCAA、BBCCAAEE、CCAA、CCAAEE和AAEE;關(guān)于YZX的第二次出現(xiàn)的返回在位置5、6、7和8處;排列是EE、FF、GG、CC、EEFF、EEFFGG、EEFFGGCC、FFGG、FFGGCC和GGCC。比較這兩者可產(chǎn)生CC,作為關(guān)于詞串YZX的聯(lián)想頻率;再有,注意,忽略作為可能的聯(lián)想的EE的該返回,因?yàn)樗鳛橄嗤脑~(即,在相同的位置)而出現(xiàn)在這兩個(gè)實(shí)例中。步驟14.遞增到下一個(gè)詞串(YZXW)只發(fā)現(xiàn)一次出現(xiàn);所以,完成該詞串?dāng)?shù)據(jù)庫創(chuàng)建,并檢查下一個(gè)詞Z(文檔A中的位置3)。步驟15.通過為Z(在文檔A中出現(xiàn)3次)應(yīng)用以上所描述的各個(gè)步驟,可產(chǎn)生以下情況關(guān)于Z1的返回是AA、BB、CC、AA、EE、AABB、AABBCC、AABBCCAA、AABBCCAAEE、BBCC、BBCCAA、BBCCAAEE、CCAA、CCAAEE和AAEE;關(guān)于Z2的返回是FF、GG、CC、FFGG、FFGGCC和GGCC;比較Z1和Z2可產(chǎn)生CC,作為關(guān)于Z的聯(lián)想頻率;Z3(位置10)在如所定義的該范圍內(nèi)沒有返回。但是,如果我們加入這些參數(shù)“必須有關(guān)于每個(gè)語言A詞或詞串的至少一個(gè)返回”,則關(guān)于Z的該返回將會(huì)是CC。通過將關(guān)于Z3的返回與關(guān)于Z1的返回進(jìn)行比較,可產(chǎn)生CC,作為關(guān)于詞Z的聯(lián)想頻率。但是,這個(gè)聯(lián)想沒有被計(jì)數(shù),因?yàn)橐呀?jīng)在以上的Z2的聯(lián)想中說明詞位置8中的CC。當(dāng)重疊范圍將使該過程對(duì)出現(xiàn)進(jìn)行兩倍計(jì)數(shù)時(shí),該系統(tǒng)可以減小該聯(lián)想頻率,以便更準(zhǔn)確地反映真實(shí)出現(xiàn)的次數(shù)。步驟16.遞增到下一個(gè)詞串可產(chǎn)生詞串ZX,它在文檔A中出現(xiàn)兩次。通過為ZX應(yīng)用以上所描述的各個(gè)步驟,可產(chǎn)生以下情況關(guān)于ZX1的返回是BB、CC、AA、EE、FF、BBCC、BBCCAA、BBCCAAEE、BBCCAAEEFF、CCAA、CCAAEE、CCAAEEFF、AAEE、AAEEFF和EEFF。關(guān)于ZX2的返回是FF、GG、CC、FFGG、FFGGCC和GGCC;比較這些結(jié)果可產(chǎn)生詞串ZX與CC之間的聯(lián)想。步驟17.通過遞增,下一個(gè)短語是ZXW。這只出現(xiàn)一次,所以檢查文檔A中的下一個(gè)詞(X)。步驟18.已在第一個(gè)位置中檢查詞X。但是,還沒有為關(guān)于詞X的可能的返回而檢查相對(duì)于另一個(gè)文檔的、詞X的第二個(gè)位置。這樣,如同在詞X的第一次出現(xiàn)中,現(xiàn)在作用于詞X(在第二個(gè)位置中),從而發(fā)生在該文檔中關(guān)于位置4處的X的返回可產(chǎn)生BB、CC、AA、EE、FF、BBCC、BBCCAA、BBCCAAEE、BBCCAAEEFF、CCAA、CCAAEE、CCAAEEFF、AAEE、AAEEFF和EEFF。關(guān)于位置9處的X的返回可產(chǎn)生CC。通過將位置9的結(jié)果與位置4的結(jié)果進(jìn)行比較,可產(chǎn)生CC,作為關(guān)于詞X的可能的匹配,并且為其提供聯(lián)想頻率。步驟19.遞增到下一個(gè)詞串(由于在該文檔中觀察,與X的第二次出現(xiàn)相比較,X不再出現(xiàn))可產(chǎn)生詞串XW。但是,這個(gè)詞串不會(huì)在文檔A中出現(xiàn)一次以上,所以,該過程轉(zhuǎn)而檢查下一個(gè)詞(W)。詞“W”只在文檔A中出現(xiàn)一次,所以,發(fā)生遞增——不是到下一個(gè)詞串,因?yàn)樵~“W”只出現(xiàn)過一次,而是到文檔A中的下一個(gè)詞——“V”。詞“V”只在文檔A中出現(xiàn)一次,所以檢查下一個(gè)詞(Y)。詞“Y”不會(huì)在比文檔A中的位置7更高的任何其他的位置中出現(xiàn),所以檢查下一個(gè)詞(Z)。詞“Z”又在位置8后面——在位置10處出現(xiàn)。步驟20.通過為詞Z的第二次出現(xiàn)應(yīng)用以上所描述的該過程,可產(chǎn)生以下情況關(guān)于位置8處的Z的返回可產(chǎn)生GG、CC和GGCC;關(guān)于位置10處的Z的返回可產(chǎn)生CC;通過將位置10的結(jié)果與位置8的結(jié)果進(jìn)行比較,不會(huì)產(chǎn)生關(guān)于詞Z的聯(lián)想。再有,詞CC被返回,作為可能的聯(lián)想;但是,由于CC表示通過分析位置8處的Z和位置10處的Z而達(dá)到的該相同的詞位置,因此,忽略該聯(lián)想。步驟21.按照一個(gè)詞的遞增可產(chǎn)生詞串ZX;這個(gè)詞串不會(huì)出現(xiàn)在文檔A中的任何更多的(向前的)位置中,所以,該過程在文檔A中的下一個(gè)詞——“X”處重新開始。詞X不會(huì)出現(xiàn)在文檔A的任何更多的(向前的)位置中,所以,該過程重新開始。但是,文檔A的末端已被達(dá)到,并且該分析停止。步驟22.將該最后的聯(lián)想頻率制成表格,從而結(jié)合來自以上的所有這些結(jié)果,并除去如被解釋的復(fù)制。顯然,沒有足夠的數(shù)據(jù)來返回關(guān)于文檔A中的詞和詞串的決定性結(jié)果。由于檢查包含具有以上所檢查的那些聯(lián)想的詞和詞串的更多的文檔對(duì),因此,這些聯(lián)想頻率將在統(tǒng)計(jì)上變得更可靠,以便語言A與語言B之間的詞或詞串將建立關(guān)于詞和詞串的可能的翻譯的強(qiáng)大聯(lián)想。該計(jì)算機(jī)程序清單附錄中所陳述的程序1是用于執(zhí)行該數(shù)據(jù)庫創(chuàng)建方法的實(shí)施例的程序的例子??梢栽谠?br>技術(shù)領(lǐng)域:
中已知的該類型的計(jì)算機(jī)系統(tǒng)上執(zhí)行程序1。如所展示,這個(gè)實(shí)施例代表被用來創(chuàng)建聯(lián)想的該技術(shù)。本發(fā)明的這些技術(shù)不需要局限于語言翻譯。從廣義上說,這些技術(shù)將應(yīng)用于可能關(guān)聯(lián)的、相同想法的任何兩個(gè)表達(dá),因?yàn)楸举|(zhì)上,外語翻譯只作為不同的詞或詞串所表達(dá)的相同想法的成對(duì)的聯(lián)想。這樣,本發(fā)明可以被應(yīng)用于使數(shù)據(jù)、聲音、音樂、視頻、或作為想法(包括可以表達(dá)任何感覺(聲音、視覺、嗅覺等)體驗(yàn)的想法)而存在的任何廣泛搜索(wideranging)概念聯(lián)系起來。所要求的是本發(fā)明分析兩個(gè)實(shí)施例(在語言翻譯中,這些實(shí)施例是文檔;關(guān)于音樂,這些實(shí)施例可能是樂譜和表示相同樂曲的音頻的的數(shù)字表現(xiàn)等)。在另一個(gè)實(shí)施例中,該
技術(shù)領(lǐng)域:
中眾所周知的某些基于規(guī)則的算法可以被并入該交叉語言聯(lián)想學(xué)習(xí),以處置出于上下文和含義的目的是可交換的(并且有時(shí)可以具有潛在無限的詞源)某些文本類別(例如,名稱、數(shù)字和日期)。此外,如果可用的交叉語言文檔不供應(yīng)關(guān)于翻譯的、在統(tǒng)計(jì)上重要的結(jié)果,則用戶可以檢查關(guān)于翻譯和其他聯(lián)想的這些可能的選擇,并且批準(zhǔn)合適的選擇并為其評(píng)定等級(jí)。如所描述的,隨著為聯(lián)想頻率而分析更多的翻譯對(duì)的文檔,這些聯(lián)想頻率在詞與詞串之間變得更強(qiáng)。由于檢查更多語言對(duì)的文檔,因此,本發(fā)明的該方法和裝置將開始根據(jù)與第三種語言有共同關(guān)聯(lián)、但彼此不直接關(guān)聯(lián)的那些語言來填充各個(gè)語言對(duì)之間的“推導(dǎo)出的聯(lián)想”。此外,當(dāng)被翻譯的文檔采用多種語言時(shí),可以跨越幾種語言來分析共同的聯(lián)想返回,直到一切之間只存在一個(gè)共同的聯(lián)想(是該翻譯)為止。該計(jì)算機(jī)程序清單附錄中所陳述的程序2是計(jì)算機(jī)程序的例子,當(dāng)該計(jì)算機(jī)程序連同該
技術(shù)領(lǐng)域:
中已知的該類型的計(jì)算機(jī)系統(tǒng)來加以操作時(shí),它提供一種方法——其中,在本發(fā)明的實(shí)施例中利用采用這些語言的數(shù)據(jù)。此外,如果處于現(xiàn)存狀態(tài)的表達(dá)人工地歸因于與處于另一種狀態(tài)的數(shù)據(jù)點(diǎn)的特殊聯(lián)想并且在數(shù)據(jù)庫中按目錄加以分類,則將可能存在那兩種狀態(tài)之間的轉(zhuǎn)換。例如,如果以形式、狀態(tài)或語言來表達(dá)的每個(gè)“想法”被分配與電磁波(音調(diào))的聯(lián)想,則它將創(chuàng)建該想法的“電磁表示”。一旦已利用對(duì)應(yīng)的電磁表示來為給定數(shù)量的想法編碼,數(shù)據(jù)(采取想法的形式)就可以被翻譯成電磁波,并且馬上在常規(guī)電信基礎(chǔ)結(jié)構(gòu)上被加以傳送。當(dāng)這些電磁波到達(dá)該目的機(jī)器時(shí),那個(gè)機(jī)器將把這些電磁波綜合處理成各個(gè)單獨(dú)的成分,并且,假如給出這些聯(lián)想(以及排序指令、如這里所描述的該雙重重疊技術(shù)的運(yùn)用、和/或其他可能的方法),則呈現(xiàn)這些電磁表示所表達(dá)的各個(gè)單獨(dú)的想法。想法轉(zhuǎn)換方法和裝置本發(fā)明的另一個(gè)方面針對(duì)提供一種方法和裝置,用于從包括采用第一種狀態(tài)、形式或語言的數(shù)據(jù)的第一文檔中創(chuàng)建包括采用第二種狀態(tài)、形式或語言的數(shù)據(jù)的第二文檔——其最終結(jié)果是該第一和第二文檔實(shí)質(zhì)上表達(dá)相同的想法或信息;并且,其中,該方法和裝置包括使用交叉想法聯(lián)想數(shù)據(jù)庫。該翻譯方法的所有實(shí)施例利用雙重重疊技術(shù)來獲得想法從一種狀態(tài)到另一種狀態(tài)的準(zhǔn)確翻譯。對(duì)比而言,原先技術(shù)的翻譯設(shè)備集中于單獨(dú)的詞翻譯,或者利用基于特殊規(guī)則的代碼來促進(jìn)從第一種語言到第二種語言的翻譯。本發(fā)明通過使用該重疊技術(shù),來允許采用第二種語言的詞和詞串被有機(jī)地連接在一起,并按照將采用第二種語言書寫那些詞和短語的確切方式來成為其正確的上下文中的準(zhǔn)確翻譯。在本發(fā)明的實(shí)施例中,該用于數(shù)據(jù)庫創(chuàng)建的方法和該重疊技術(shù)被加以結(jié)合,以提供準(zhǔn)確的語言翻譯。這些語言可以是任何類型的轉(zhuǎn)換,并且不一定要局限于口頭/書面語言。例如,該轉(zhuǎn)換可以包含計(jì)算機(jī)語言、諸如ASCII的特殊數(shù)據(jù)代碼等。該數(shù)據(jù)庫是動(dòng)態(tài)的;即,隨著內(nèi)容被輸入該翻譯系統(tǒng),該數(shù)據(jù)庫得到增長——通過使用以前所輸入的內(nèi)容,該翻譯系統(tǒng)接連迭代。本發(fā)明的該較佳實(shí)施例利用計(jì)算設(shè)備(例如,原先
技術(shù)領(lǐng)域:
中容易獲得的該類型的個(gè)人計(jì)算機(jī)系統(tǒng))。但是,該系統(tǒng)不需要使用這種計(jì)算設(shè)備,并且可以通過其他手段(包括該數(shù)據(jù)庫的手動(dòng)創(chuàng)建和各種翻譯方法)來容易地加以實(shí)現(xiàn)。本發(fā)明可以被用于至少具有顯示工具、輸入方法、輸出方法和處理器的普通計(jì)算機(jī)系統(tǒng)上。該顯示工具可以是原先
技術(shù)領(lǐng)域:
中容易獲得的任何顯示工具(例如,陰極射線終端設(shè)備、液晶顯示器、平板顯示器等)。該處理器工具也可以是在計(jì)算環(huán)境中容易獲得的和使用的任何處理器工具,以便提供該工具,來允許該計(jì)算機(jī)進(jìn)行操作,以執(zhí)行本發(fā)明。最后,利用輸入方法,來出于建立該交叉聯(lián)想數(shù)據(jù)庫的目的而允許輸入這些文檔;如上所述,用于轉(zhuǎn)換成數(shù)字形式的該特殊輸入方法可以根據(jù)該用戶的各種需求而變化。通過雙重重疊技術(shù)的手動(dòng)數(shù)據(jù)庫創(chuàng)建和翻譯現(xiàn)在將描述用于根據(jù)本發(fā)明來將文檔從第一種語言翻譯成第二種語言的該方法和裝置的實(shí)施例的例子——其中,通過向該用戶查詢?cè)~和詞串的翻譯,并且使用該雙重重疊技術(shù)而自動(dòng)生成段翻譯,來開發(fā)該交叉語言數(shù)據(jù)庫。出于描述該較佳實(shí)施例的目的,將使用例子——其中,采用英語的數(shù)據(jù)被翻譯成采用希伯來語的數(shù)據(jù)。這些選擇只是用于描述,而并不意在限制第一和第二種語言的該選擇。根據(jù)本發(fā)明的較佳實(shí)施例,該計(jì)算機(jī)系統(tǒng)進(jìn)行操作,以創(chuàng)建從英語到希伯來語的翻譯之間的聯(lián)想的數(shù)據(jù)庫。該翻譯方法至少包含以下步驟首先,采用英語的數(shù)據(jù)被輸入該計(jì)算機(jī)系統(tǒng)。其次,首先在逐詞的基礎(chǔ)上檢查該英語輸入的所有詞。該數(shù)據(jù)庫將返回采用希伯來語的已知詞翻譯。如果該翻譯不被包括在該數(shù)據(jù)庫內(nèi),那么,該計(jì)算機(jī)系統(tǒng)將按一種方式進(jìn)行操作,來詢問該用戶,以輸入該合適的翻譯。這樣,如果該數(shù)據(jù)庫不知道所輸入的英語單詞的該希伯來語相等物,則該計(jì)算機(jī)將要求該用戶提供該合適的希伯來語相等物。然后,該用戶將返回該翻譯,并將所述翻譯輸入該數(shù)據(jù)庫。一經(jīng)隨后的運(yùn)用,該計(jì)算機(jī)系統(tǒng)就將按一種方式來操作該數(shù)據(jù)庫,以便該用戶依靠其輸入而及時(shí)地在較早的時(shí)刻知道該翻譯。這樣,在第二個(gè)步驟中,以其分析狀態(tài)(例如,逐詞地)來檢查該輸入數(shù)據(jù),并且,這些合適的翻譯要么被返回(依靠該數(shù)據(jù)庫的該操作),要么被輸入該數(shù)據(jù)庫。再次,按一種方式來檢查該輸入數(shù)據(jù),以便遞增這些被分析的片段。例如,如果首先在逐詞的基礎(chǔ)上分析該數(shù)據(jù),則本發(fā)明的該翻譯方法接下來通過評(píng)估兩個(gè)詞串來檢查該輸入數(shù)據(jù)。再有,按照與以上所述的方式相類似的方式,如果已知,則該數(shù)據(jù)庫返回關(guān)于這兩個(gè)詞串的翻譯;如果未知,則該翻譯系統(tǒng)進(jìn)行操作,來詢問該用戶,以輸入關(guān)于所有可能的兩個(gè)詞串的該合適的翻譯。然后,所有重疊的2個(gè)詞片段被存儲(chǔ)在該數(shù)據(jù)庫中。例如,如果詞串由四個(gè)詞組成,那么,該數(shù)據(jù)庫進(jìn)行檢驗(yàn),以了解它是否具有存儲(chǔ)器中的被翻譯的以下組合1,2、2,3和3,4。如果否,則它詢問該用戶。注意,只有關(guān)于這兩個(gè)詞串的被明確編碼的翻譯將被返回,作為準(zhǔn)確的翻譯,即使該數(shù)據(jù)庫將有必要依靠以上第二個(gè)步驟而包含每個(gè)詞定義,也是如此。第四,如果兩個(gè)重疊的二詞英語詞串的這些希伯來語翻譯具有重疊詞(或多個(gè)詞),則該系統(tǒng)按一種方式進(jìn)行操作,以結(jié)合這些被重疊的片段。消除該重疊中的冗余的希伯來語片段,以提供通過結(jié)合這兩個(gè)重疊的英語詞串(并消除該英語重疊中的冗余)而加以創(chuàng)建的該三詞英語詞串的連貫的翻譯。從1到無限數(shù)量的步驟(n)反復(fù)地執(zhí)行以上步驟,以便提供該合適的翻譯。通過驗(yàn)證利用該重疊來跨接采用這兩種語言的編碼詞塊的一致的詞串,該翻譯方法可自動(dòng)運(yùn)作。一旦該數(shù)據(jù)庫達(dá)到臨界質(zhì)量,關(guān)于跨越這兩種語言而一致的重疊橋接器(overlap-bridges)的這些自動(dòng)批準(zhǔn)就提供在兩種語言之間進(jìn)行完全準(zhǔn)確性翻譯的語言網(wǎng)絡(luò)。例如,考慮英語短語“Iwanttobuyacar”。本發(fā)明的方法一操作,這個(gè)短語就將被輸入操作數(shù)據(jù)庫的計(jì)算機(jī)。該計(jì)算機(jī)將進(jìn)行操作,以確定該數(shù)據(jù)庫是否包括以下單詞“I”、“want”、“to”、“buy”、“a”和“car”的希伯來語相等物。如果這類相等物已知,則該計(jì)算機(jī)將返回這些希伯來語相等物。如果這類相等物未知,則該計(jì)算機(jī)將詢問該用戶,以提供這些合適的希伯來語翻譯,并且存儲(chǔ)這類翻譯,供將來使用。接下來,該計(jì)算機(jī)將按重疊方式來將該句子分析成二詞片段“Iwant”、“wantto”、“tobuy”、“buya”和“acar”。該計(jì)算機(jī)將進(jìn)行操作,以返回這些片段的希伯來語相等物(即“Iwant”的希伯來語相等物等);如果這類希伯來語相等物未知,那么,該計(jì)算機(jī)將詢問該用戶,以提供這些合適的希伯來語翻譯,并且存儲(chǔ)這類翻譯,供將來使用。本發(fā)明接下來將檢查三詞片段“Iwantto”、“wanttobuy”、“tobuya”和“buyacar”。這時(shí),在該過程中,本發(fā)明嘗試結(jié)合每一對(duì)希伯來語翻譯,它們的二詞英語翻譯重疊并結(jié)合,以形成每個(gè)三詞英語翻譯查詢(例如,“Iwant”和“wantto”結(jié)合,以形成“Iwantto”)。如果這些希伯來語片段也具有連接它們的共同重疊,則該翻譯方法會(huì)自動(dòng)批準(zhǔn)該三詞英語詞串為希伯來語,作為翻譯,而無需任何用戶介入。如果這些希伯來語片段不重疊和結(jié)合,則向該用戶詢問準(zhǔn)確的翻譯。在為三詞英語詞串進(jìn)行該合適翻譯嘗試之后,該過程繼續(xù)進(jìn)行四詞詞串,等等,從而通過該交叉語言重疊來嘗試自動(dòng)決定翻譯組合,直到正在被檢查的該片段完整為止(在此情況下,是整個(gè)短語“Iwanttobuyacar”)。在經(jīng)歷該分析之后,本發(fā)明的該方法隨后比較這些被返回的翻譯相等物,消除這些被重疊的片段中的冗余,并將該被翻譯的短語輸出給該用戶。通過聯(lián)想數(shù)據(jù)庫和雙重重疊技術(shù)的文檔翻譯作為另一個(gè)較佳實(shí)施例,本發(fā)明通過使用如上所述的交叉語言數(shù)據(jù)庫來提供該文檔中的詞和詞串的詞串翻譯,可以將采用第一種語言的文檔翻譯成采用第二種語言的文檔;然后,通過使用以上所描述的該交叉語言雙重重疊技術(shù),可以結(jié)合采用第二種語言的重疊的詞串,以提供該文檔的翻譯。例如,考慮可訪問足夠的交叉語言文檔的數(shù)據(jù)庫,以決定用英語輸入的并且意在被翻譯成希伯來語的以下句子的各個(gè)成分“Inadditiontomyneedtobelovedbyallthegirlsintown,IalwayswantedtobeknownasthebestplayertoeverplayontheNewYorkstatebasketballteam”。通過上述過程,該處理方法可能確定該短語“Inadditiontomyneedtobelovedbyallthegirls”是來自該源文檔的最大詞串,該源文檔始于該源文檔的第一個(gè)詞并存在于該數(shù)據(jù)庫中。它在該數(shù)據(jù)庫中與希伯來語詞串“benosafltzorechshelilihiotahuvalyedaykolhabahurot”相關(guān)聯(lián)。然后,該過程將使用以上所描述的該方法來確定以下翻譯——即來自將要被翻譯(并存在于該數(shù)據(jù)庫中)的該文本的最大的英語詞串,其一個(gè)單詞(或作為選擇,是多個(gè)單詞)與以前被識(shí)別的該英語詞串重疊,并且,關(guān)于那些重疊的英語詞串的這兩個(gè)希伯來語翻譯也具有重疊的片段“l(fā)ovedbyallthegirlsintown”翻譯成“ahuvalyedaykolhabahurotbuir”;“thegirlsintown,Ialwayswantedtobeknown”翻譯成“Habahurotbuir,tamidratzitylihiotyahua”;“Ialwayswantedtobeknownasthebestplayer”翻譯成“tamidratzitylihiotyahuabettorhasahkanhachitov”;并且“thebestplayertoeverplayontheNewYorkstatebasketballteam”翻譯成“hasahkanhachitovshhaypaamsihekbekvutzathakadursalshelmedinatnewyork”。利用該數(shù)據(jù)庫的這些返回,該處理將按一種方式進(jìn)行操作,來比較重疊的詞和詞串,并消除冗余。這樣,“Inadditiontomyneedtobelovedbvallthegirls”翻譯成“benosafltzorechshelilihiotahuvalyedaykolhabahurot”;并且“l(fā)ovedbyallthegirlsintown”翻譯成“ahuvalyedaykolhabahurotbuir”。通過利用本發(fā)明的該技術(shù),該系統(tǒng)將采用這些英語片段“Inadditiontomyneedtobelovedbyallthegirls”和“l(fā)ovedbyallthegirlsintown”,并且將返回這些希伯來語片段“benosafltzorechshelilihiotahuvalyedaykolhabahurot”和“ahuvalyedaykolhabahurotbuir”,并確定該重疊。在英語中,這些短語是“Inadditiontomyneedtobelovedbyallthegirls”和“l(fā)ovedbyallthegirlsintown”。除去該重疊可產(chǎn)生“Inadditiontomyneedtobelovedbyallthegirlsintown”。在希伯來語中,這些短語是“benosafltzorechshelilihiotahuvalyedaykolhabahurot”和“ahuvalyedaykolhabahurotbuir”。除去該重疊可產(chǎn)生“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir”。然后,本發(fā)明作用于下一個(gè)被分析的片段,以繼續(xù)該過程。在這個(gè)例子中,該處理過程操作該短語“thegirlsintown,Ialwayswantedtobeknown”。該系統(tǒng)解析該英語片段“Inadditiontomyneedtobelovedbyallthegirlsintown”和這個(gè)新的英語詞集“thegirlsintown,Ialwayswantedtobeknown”。這些希伯來語的對(duì)應(yīng)的詞集是“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir”和這個(gè)希伯來語的對(duì)應(yīng)的詞集“habahurotbuir,tamidratzitylihiotyahua”。在英語中,該重疊的除去操作如下“Inadditiontomyneedtobelovedbyallthegirlsintown”和“thegirlsintown,Ialwayswantedtobeknown”成為“Inadditiontomyneedtobelovedbyallthegirlsintown,Ialwayswantedtobeknown”。在希伯來語中,該重疊過程操作如下“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir”和“habahurotbuir,tamidratzitylihiotyahua”可產(chǎn)生“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahua”。本發(fā)明繼續(xù)對(duì)將要被翻譯的該文檔中的剩余詞和詞串執(zhí)行這種類型的操作。這樣,在該較佳實(shí)施例的例子中,接下來的英語詞串是“Inadditiontomyneedtobelovedbyallthegirlsintown,Ialwayswantedtobeknown”和“Ialwayswantedtobeknownasthebestplayer”。該數(shù)據(jù)庫為這些短語而返回的希伯來語翻譯是“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahua”和“tamidratzitylihiotyahuabettorhasahkanhachitov”。除去該英語重疊可產(chǎn)生“Inadditiontomyneedtobelovedbyallthegirlsintown,Ialwayswantedtobeknownasthebestplayer”。除去該希伯來語重疊可產(chǎn)生“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahuabettorhasahkanhachitov”。繼續(xù)該過程下一個(gè)詞串是“Inadditiontomyneedtobelovedbyallthegirlsintown,Ialwayswantedtobeknownasthebestplayer”和“thebestplayertoeverplayontheNewYorkStatebasketballteam”。這些對(duì)應(yīng)的希伯來語短語是“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahuabettorhasahkanhachitov”和“hasahkanhachitovshhaypaamsihekbekvutzathakadursalshelmedinatnewyork”。除去該英語重疊可產(chǎn)生“Inadditiontomyneedtobelovedbyallthegirlsintown,IalwayswantedtobeknownasthebestplayertoeverplayontheNewYorkstatebasketballteam”。除去該希伯來語重疊可產(chǎn)生“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahuabettorhasahkanhachitovshhaypaamsihekbekvutzathakadursalshelmedinatnewyork”,它是想要加以翻譯的該文本的翻譯。該過程一完成,本發(fā)明就進(jìn)行操作,以返回該被翻譯的最后文本并輸出該文本。應(yīng)該注意,這些返回是根據(jù)以上所描述的該過程的、返回重疊聯(lián)想的該數(shù)據(jù)庫的最終結(jié)果。通過該過程,該系統(tǒng)最終將不會(huì)接受采用第二種語言的返回,該返回不具備與通過重疊的這些鄰接的第二種語言片段的自然適合的連接。如果任何希伯來語返回都不具有與鄰接的希伯來語詞串聯(lián)想的確切重疊,則它將會(huì)被拒絕,并用與這些鄰接的希伯來語詞串重疊的希伯來語詞串聯(lián)想來取代。該計(jì)算機(jī)程序清單附錄中所陳述的程序3是用于使用該雙重重疊技術(shù)來執(zhí)行該手動(dòng)數(shù)據(jù)庫創(chuàng)建和翻譯的實(shí)施例的程序的例子。程序3可以在該
技術(shù)領(lǐng)域:
中已知的該類型的計(jì)算機(jī)系統(tǒng)上加以執(zhí)行。結(jié)合使用交叉語言聯(lián)想數(shù)據(jù)庫和該交叉語言雙重重疊翻譯技術(shù)的以上實(shí)施例具有其他潛在的應(yīng)用,以提高嘗試使從一種狀態(tài)到另一種狀態(tài)的信息保持相等的現(xiàn)存技術(shù)(例如,語音識(shí)別軟件、以及該
技術(shù)領(lǐng)域:
中已知的OCR掃描設(shè)備)的質(zhì)量。這兩種技術(shù)都可以對(duì)照本發(fā)明的這些翻譯方法來測試其系統(tǒng)的各種結(jié)果。當(dāng)不存在翻譯、所以假定錯(cuò)誤時(shí),可以警告并詢問該用戶,或者可以對(duì)該系統(tǒng)進(jìn)行編程,以尋找與將產(chǎn)生重疊翻譯的該未重疊翻譯相接近的、該數(shù)據(jù)庫中的替換。當(dāng)然,給該用戶的所有返回都將被轉(zhuǎn)換回到該初始語言。聯(lián)想數(shù)據(jù)庫方法和裝置的創(chuàng)建本發(fā)明的另一個(gè)實(shí)施例提供了一種用于在單一語言內(nèi)創(chuàng)建聯(lián)想數(shù)據(jù)庫的方法和裝置,并且提供了一種方法和系統(tǒng),用于使用該聯(lián)想數(shù)據(jù)庫來為用戶所提出的查詢或問題提供回答。在這個(gè)實(shí)施例中,該聯(lián)想數(shù)據(jù)庫可以組織和存儲(chǔ)允許確定和分析詞或詞串之間的聯(lián)想的信息。聯(lián)想程序可以具體表現(xiàn)本發(fā)明的部分方法,并且可以被用來建立本發(fā)明的這些數(shù)據(jù)庫,并分析被存儲(chǔ)在這些數(shù)據(jù)庫中的該信息,以確定詞或詞串之間的聯(lián)想。圖3描繪了計(jì)算機(jī)系統(tǒng)200的存儲(chǔ)器208,其中存儲(chǔ)智能應(yīng)用程序302、聯(lián)想程序304、數(shù)據(jù)庫306和操作系統(tǒng)308,供處理器202存取。聯(lián)想程序304可以是獨(dú)立程序,或者可以構(gòu)成智能應(yīng)用程序302的不可分割的一部分。聯(lián)想程序304可以分析數(shù)據(jù)庫306,以便響應(yīng)于來自智能應(yīng)用程序302的查詢或響應(yīng)于該用戶經(jīng)由該輸入設(shè)備而直接提交的查詢來確定詞聯(lián)想。該系統(tǒng)和方法通過分析被輸入該系統(tǒng)的文檔的文本并且根據(jù)(例如)關(guān)于該文檔的其他段落的特定段落的出現(xiàn)頻率和位置而創(chuàng)建頻率聯(lián)想數(shù)據(jù)庫(其中,該被分析的文本的各個(gè)片段彼此關(guān)聯(lián)),來進(jìn)行操作。被分析的文本的片段可以包括詞和詞串。本發(fā)明中所使用的文檔可以被存儲(chǔ)在“文檔數(shù)據(jù)庫”中,以促進(jìn)這些文檔的存取、剖析和分析。在文檔內(nèi)頻繁地彼此接近的詞和詞串可以被用于允許用戶要求該系統(tǒng)回答問題或執(zhí)行動(dòng)作的人工智能或智能應(yīng)用程序中。為智能應(yīng)用程序使用本發(fā)明的這些聯(lián)想數(shù)據(jù)庫的目的是確定智能應(yīng)用程序所選擇的兩個(gè)或更多的詞或詞串之間或之中的共同的第三詞或詞串聯(lián)想。該用戶可以將該文檔數(shù)據(jù)庫中的范圍定義為接近每個(gè)被選擇的詞和/或詞串的每次出現(xiàn)的任何數(shù)量的詞和/或詞串。然后,該系統(tǒng)搜索這些范圍共有的詞和/或詞串,它們是共同的第三詞或詞串。每個(gè)被選擇的詞或詞串的這些范圍內(nèi)的共同的第三詞或詞串的出現(xiàn)頻率可以被存儲(chǔ)在表格3和表格4中所示的頻率聯(lián)想數(shù)據(jù)庫中。作為選擇,在該文檔數(shù)據(jù)庫中復(fù)現(xiàn)的詞和詞串的這些位置和出現(xiàn)頻率可以被存儲(chǔ)在復(fù)現(xiàn)詞和詞串?dāng)?shù)據(jù)庫(在這里也被稱作“復(fù)現(xiàn)數(shù)據(jù)庫”——表格5中所示的數(shù)據(jù)庫的例子)中。通過使用這些數(shù)據(jù)庫,聯(lián)想程序304可以根據(jù)用戶定義的加權(quán)或其他標(biāo)準(zhǔn),來建立智能應(yīng)用程序302所選擇的這兩個(gè)或更多的詞或詞串共享的最高等級(jí)的第三詞和詞串關(guān)系。用戶定義的范圍內(nèi)的聯(lián)想數(shù)據(jù)庫建立揭示了一種方法,用于建立在這里被稱作“頻率聯(lián)想數(shù)據(jù)庫”的一種聯(lián)想數(shù)據(jù)庫,它可以被應(yīng)用于采用單一語言的文檔,以便根據(jù)其在該本文內(nèi)的彼此接近度來建立相關(guān)詞和詞串的數(shù)據(jù)庫。表格3示出該頻率聯(lián)想數(shù)據(jù)庫的例子。該方法包括a.在“文檔數(shù)據(jù)庫”中匯編采用單一語言的文本全集,該文集越大越好。b.在每個(gè)詞或詞串中搜索該“文檔數(shù)據(jù)庫”中的那個(gè)詞或詞串的多次出現(xiàn)。c.在將要分析的該詞或詞串的任何一側(cè)上建立用戶定義數(shù)量的詞或詞串。這將用作該“范圍”。除正在被定義為某個(gè)數(shù)量的詞以外,該“范圍”還可以被定義為“廣泛”(其中出現(xiàn)該詞或詞串的該特殊文本中的所有詞)或被定義為“狹窄”(精確地接近該被分析的詞或詞串的特殊大小的詞串),因?yàn)樵撚脩艨梢詾樵撎厥鈶?yīng)用程序進(jìn)行定義。d.確定每個(gè)和全部的詞和詞串出現(xiàn)在正在加以分析的該被選擇的詞或詞串周圍的這些范圍內(nèi)的頻率、以及(如果需要的話)它們與該被選擇的詞或詞串的接近度。以下是采用單一語言的大量文檔之中的該聯(lián)想建立的例子。表格2中所示的句子1和句子2是該“文檔數(shù)據(jù)庫”中的許多句子之中的兩個(gè)句子,因?yàn)檫@整個(gè)文集可以被整體分析——其所有結(jié)果被加入該頻率圖表表格2該系統(tǒng)將尋找復(fù)現(xiàn)的詞或詞串。這兩個(gè)句子之間的唯一復(fù)現(xiàn)的詞和詞串是“I”、“to”、“the”、“doctor”、“and”、“sneezing”、“a”、“that”、“flu”、“are”、“rest”如第10/024,473號(hào)美國申請(qǐng)中所述,關(guān)于某些應(yīng)用程序,可以指示該系統(tǒng)辨認(rèn)和忽略諸如“I”、“a”、“to”等共同的詞。但是,有時(shí),根據(jù)關(guān)于該系統(tǒng)的該特殊應(yīng)用程序的目標(biāo),那些共同的詞將被考慮并且被包括在數(shù)據(jù)庫中。如果忽略這些共同的詞,則這將會(huì)留下“Doctor”、“sneezing”、“flu”和“rest”如果該范圍被定義為包括(例如)任何一側(cè)上的上至30個(gè)詞,則該系統(tǒng)將記錄每個(gè)這些詞的30個(gè)詞內(nèi)的全部的詞和詞串的出現(xiàn)頻率。此外,該系統(tǒng)也可以記下每個(gè)詞或詞串與正在加以分析的該詞或詞串的接近度。由于這些詞中的每個(gè)詞出現(xiàn)在這兩個(gè)句子中的每個(gè)其他的詞的該30詞范圍內(nèi),因此,每個(gè)詞將具有關(guān)于表格3中的如下所述的每個(gè)其他的詞的頻率一,表格3表現(xiàn)了“頻率聯(lián)想數(shù)據(jù)庫”的實(shí)施例表格3除了注意詞和詞串出現(xiàn)在正在加以分析的這些詞和詞串的范圍以內(nèi)的任何地方的頻率以外,還可以根據(jù)在離開正在加以分析的該詞或詞串正好X個(gè)詞的地方出現(xiàn)的詞和詞串的頻率,來建立該聯(lián)想數(shù)據(jù)庫。在這類情況下,該范圍將被應(yīng)用程序的該用戶狹窄地定義為精確地接近正在加以分析的該詞或詞串的特殊大小的一個(gè)詞或一個(gè)詞串。例如,該系統(tǒng)可以分析該“文檔數(shù)據(jù)庫”中可用的這些文檔,以確定它們包括該短語“gotothegame”10,000次,并且它可以在詞“Jets”的20詞范圍內(nèi)發(fā)現(xiàn)“gotothegame”87次。此外,該系統(tǒng)可以確定“gotothegame”在詞“Jets”前面正好7個(gè)詞的地方出現(xiàn)過8次(從該詞串的第一個(gè)詞“go”開始計(jì)數(shù))。也可以記錄基于它們之間的詞數(shù)的詞和詞串的復(fù)現(xiàn)模式的任何組合。例如,該數(shù)據(jù)庫可以記錄該數(shù)據(jù)庫中的句子的數(shù)量,其中,當(dāng)“tickets”出現(xiàn)在“gotothegame”后面9個(gè)詞的地方時(shí),詞“Jets”出現(xiàn)在“gotothegame”前面3個(gè)詞的地方。那個(gè)模式可能出現(xiàn)3次,并且,該文本中的那個(gè)詞模式的頻率可以由應(yīng)用程序來使用,該應(yīng)用程序?qū)⑼茖?dǎo)出想法的含義,以便要么有助于為該用戶詢問的問題提供回答,要么有助于執(zhí)行該用戶所提出的請(qǐng)求。根據(jù)表格2中的句子1和句子2,可以生成表格4中所示的該頻率聯(lián)想數(shù)據(jù)庫。表格4如表格4中所指出的,在句子1和句子2的該范圍以內(nèi)的這些復(fù)現(xiàn)的詞中,只有一個(gè)詞“sneezing”在正在加以檢查的這些詞中的一個(gè)詞后面正好四個(gè)詞的地方出現(xiàn)兩次。可以使用一系列定義狹窄的范圍來單獨(dú)地生成這些表格,這些表格根據(jù)它們之間的詞數(shù)所測量的其彼此的接近度來指出文本中的確切的復(fù)現(xiàn)詞模式。但是,通常,最頻繁使用的詞和詞串模式是與被檢查的那些詞鄰接或與其左、右緊密接近的詞和詞串模式。如果使用以上方法來建立如上所述的該可用文本中的所有復(fù)現(xiàn)詞模式之間的所有這些接近度和頻率關(guān)系的數(shù)據(jù)庫,則可能要求進(jìn)行大量計(jì)算。由于這個(gè)綜合過程而正在被建立的許多過程可能永遠(yuǎn)不會(huì)被用于應(yīng)用程序。以下技術(shù)涉及將復(fù)現(xiàn)的詞串編入索引,以避免可能永遠(yuǎn)不會(huì)被使用的前面的處理。此外,以下定索引過程可以被用作用于自動(dòng)確定頻率和接近度聯(lián)想的上述方法的交替過程,并且可以被用來根據(jù)如上所述的范圍內(nèi)的特殊的詞或詞串位置來執(zhí)行一般的范圍頻率分析和確切模式的分析。本發(fā)明的這個(gè)實(shí)施例是用于建立復(fù)現(xiàn)詞和詞串?dāng)?shù)據(jù)庫(或“復(fù)現(xiàn)數(shù)據(jù)庫”)的方法,它包括該文檔數(shù)據(jù)庫中的每個(gè)復(fù)現(xiàn)詞和詞串的位置,如下所述首先,搜索用于在該可用文本中復(fù)現(xiàn)的所有詞和詞串;其次,通過記下它在其中出現(xiàn)它的每個(gè)文檔中的位置,例如通過識(shí)別該詞串中的第一個(gè)詞的詞數(shù)、以及該文檔數(shù)據(jù)庫中的該文檔編號(hào),在該數(shù)據(jù)庫中記錄關(guān)于多次出現(xiàn)的每個(gè)詞和詞串的這些“位置”。作為選擇,可以存儲(chǔ)該詞或詞串位于其中的該文檔數(shù)據(jù)庫中的該文檔的那個(gè)文檔編號(hào)。在此情況下,當(dāng)對(duì)查詢作出響應(yīng)時(shí),可以確定該詞或詞串的位置。表格5是該“復(fù)現(xiàn)數(shù)據(jù)庫”中的項(xiàng)目的例子。表格5如所指出的,在該“文檔數(shù)據(jù)庫”中發(fā)現(xiàn)一次以上的詞或詞串的每次發(fā)現(xiàn)將被加入該頻率計(jì)數(shù)及其位置;通過指定文檔中的該詞數(shù)位置以及被指派用于識(shí)別其中出現(xiàn)它的該文檔的編號(hào),或者通過使用該文檔數(shù)據(jù)庫中的該詞或詞串的位置的任何其他的標(biāo)識(shí)符,來記下該頻率計(jì)數(shù)及其位置。如果為該“文檔數(shù)據(jù)庫”中的所有文檔充分和完全地生成該“復(fù)現(xiàn)數(shù)據(jù)庫”(包括詞數(shù)位置和文檔編號(hào)),則該位置信息允許該系統(tǒng)計(jì)算所生成的任何一般頻率關(guān)系、或如上所述的所生成的任何特殊詞模式頻率關(guān)系。此外,如果還沒有建立該“復(fù)現(xiàn)數(shù)據(jù)庫”,則該系統(tǒng)可以匆忙地對(duì)兩個(gè)或更多的范圍執(zhí)行該頻率分析。還不在該“復(fù)現(xiàn)數(shù)據(jù)庫”中的任何詞或詞串復(fù)現(xiàn)都可以被包括在內(nèi),而該系統(tǒng)通過直接分析該文檔數(shù)據(jù)庫中的文檔以便補(bǔ)充該“復(fù)現(xiàn)數(shù)據(jù)庫”的分析,來對(duì)查詢作出響應(yīng)。在已為生成它的該特殊任務(wù)使用通過該“文檔數(shù)據(jù)庫”中的這些文檔的直接分析而獲得的該信息之后,可以將該信息存儲(chǔ)在該“復(fù)現(xiàn)數(shù)據(jù)庫”中,供將來使用。該系統(tǒng)是否使用該“復(fù)現(xiàn)數(shù)據(jù)庫”來建立頻率分析,或者是否匆忙地創(chuàng)建那些關(guān)系,該結(jié)果是可以應(yīng)用智能應(yīng)用程序的詞和詞串聯(lián)想數(shù)據(jù)庫。現(xiàn)在參考圖3,在共同頻率分析過程中,智能應(yīng)用程序302可以經(jīng)由聯(lián)想程序304來查詢?cè)擃l率聯(lián)想數(shù)據(jù)庫或該“復(fù)現(xiàn)數(shù)據(jù)庫”——具有兩個(gè)或更多的詞或詞串,用于建立其他第三詞或詞串與部分或所有這些被呈現(xiàn)的詞串頻繁關(guān)聯(lián)的內(nèi)容。當(dāng)執(zhí)行該“共同頻率分析”(CFA)要么是1)“獨(dú)立的共同頻率分析”、要么是2)“相關(guān)的共同頻率分析”時(shí),該系統(tǒng)可以使用兩種不同的方法。此外,通過將它們延伸一個(gè)或多個(gè)額外的生成,或者通過為進(jìn)一步的CFA而結(jié)合任何CFA的這些結(jié)果和/或片段,在使用這兩個(gè)過程中的任何一個(gè)過程之后,該系統(tǒng)可以實(shí)行進(jìn)一步的統(tǒng)計(jì)分析。獨(dú)立的共同頻率分析(ICFA)當(dāng)智能應(yīng)用程序302為聯(lián)想程序304呈現(xiàn)用于CFA的兩個(gè)或更多的詞和/或詞串時(shí),該系統(tǒng)可以使用本發(fā)明的聯(lián)想數(shù)據(jù)庫來識(shí)別與這些被呈現(xiàn)的詞頻繁相關(guān)的所有的詞和詞串。然后,該系統(tǒng)可以識(shí)別與部分或所有這些被呈現(xiàn)的詞和詞串頻繁關(guān)聯(lián)的那些詞和/或詞串。然后,該系統(tǒng)可以按各種用戶定義的方法來使用這些被呈現(xiàn)的詞和/或詞串之中的共同聯(lián)想。例如,通過添加(或乘以或任何其他的用戶定義的加權(quán))關(guān)于頻率聯(lián)想數(shù)據(jù)庫中的這些被呈現(xiàn)的詞和/或詞串的共同的或第三詞或詞串聯(lián)想的頻率,該系統(tǒng)可以識(shí)別最高等級(jí)的共同聯(lián)想。作為用戶定義的參數(shù)的另一個(gè)例子,可以要求被呈現(xiàn)的詞和/或詞串的所有表格上的最小頻率(如整個(gè)等級(jí)、未加工的數(shù)量或任何其他的措施所測量的)。在使用該“復(fù)現(xiàn)數(shù)據(jù)庫”例子中的項(xiàng)目的過程中,該系統(tǒng)可以將“icecream”和“kidslove”在所有可用文檔中的用戶定義的范圍內(nèi)的頻率確定為一個(gè)分析,然后,該系統(tǒng)可以記錄“icecream”和“beforegoingtobed”一起出現(xiàn)的頻率。然后,應(yīng)用程序可以使用這些獨(dú)立關(guān)系中的每個(gè)獨(dú)立關(guān)系的頻率,該應(yīng)用程序?qū)槊總€(gè)獨(dú)立關(guān)系提供相對(duì)值。這將基于icecream的頻率在“kidslove”頻率表格和“beforegoingtobed”頻率表格上的等級(jí)評(píng)定有多高(被用戶定義為“絕對(duì)地”或“相對(duì)地”)、或關(guān)于該詞或詞串(例如,“kidslove”)而出現(xiàn)的該聯(lián)想(例如,“icecream”)相對(duì)于該詞串(例如,“kidslove”)出現(xiàn)的總次數(shù)的時(shí)間百分比。根據(jù)它們與被選擇的詞串“kidslove”和“beforegoingtobed”的接近度,再一次將該“kidslove”和“beforegoingtobed”頻率表格制成被定義的范圍內(nèi)的第三詞或詞串的出現(xiàn)的等級(jí)評(píng)定。根據(jù)用戶定義的值,在分析“icecream”之后,該方法可以通過將“awarmhug”定位在關(guān)于相對(duì)頻率的該“kidslove”頻率表格(基于該用戶定義的范圍或該應(yīng)用程序的接近度要求)上,來對(duì)其進(jìn)行分析;然后,可以將“awarmhug”定位在該“beforegoingtobed”頻率表格上。這兩個(gè)頻率表格上的所有其他的頻繁聯(lián)想(可能是用戶定義的)將被加以比較(例如,“stayinguplate”),并且根據(jù)來自這兩個(gè)表格的結(jié)合的相對(duì)頻率的用戶定義值來加以評(píng)分。基于每個(gè)頻率聯(lián)想的用戶定義的加權(quán)的該最高等級(jí)詞串將由該系統(tǒng)產(chǎn)生。這個(gè)分析的結(jié)果可能是該系統(tǒng)將識(shí)別“kidslove”、“icecream”多于“warmhugs”,而“kidslovewarmhugs”多于“kidsloveicecream”、“beforegoingtobed”。作為另一個(gè)例子,如果為該系統(tǒng)呈現(xiàn)詞“kangaroos”以及詞和詞串“wherecanIfind”和“inAmerica”,“獨(dú)立的共同頻率分析”表格6表現(xiàn)了可以根據(jù)該“文檔數(shù)據(jù)庫”中的這些文檔來加以匯編的頻率表格。表格6根據(jù)這些未加工的累積聯(lián)想的合計(jì),“Australia”的等級(jí)最高。但是,用戶定義的參數(shù)可以對(duì)這些相對(duì)頻率進(jìn)行加權(quán)。一種可能的方法的例子可能是將該最少發(fā)現(xiàn)的聯(lián)想評(píng)分為“一”,然后將這些更高的關(guān)聯(lián)頻率評(píng)分為那個(gè)數(shù)字的倍數(shù)。在此情況下,例如,如表格7中所示,“theZoo”的等級(jí)將評(píng)得最高。表格7這些聯(lián)想之中的相對(duì)加權(quán)表現(xiàn)了“theZoo”將如何成為基于以上用戶定義的參數(shù)的結(jié)果。通過乘以特殊的詞或詞串與這些查詢中的每個(gè)查詢關(guān)聯(lián)的次數(shù),以便為共同聯(lián)想之間的相對(duì)平衡提供加權(quán),可以實(shí)現(xiàn)類似的結(jié)果。在表格6所示的這個(gè)例子中,這些結(jié)果將返回“theZoo”1.“theZoo”7,000×2,000×5,000=70,000,000,0002.“Australia”21,000×1,000×300=6,300,000,0003.“NewZealand”1,000×500×100=50,000,000可以使用其他用戶定義的標(biāo)準(zhǔn),來為兩個(gè)或更多被呈現(xiàn)的詞和/或詞串之中共同的聯(lián)想評(píng)定等級(jí),并對(duì)其進(jìn)行選擇。這可能包括對(duì)多于其他種類的某些種類中的某些聯(lián)想進(jìn)行加權(quán)。例如,應(yīng)用程序可以為“where?”問題(例如,“wherecanyoufindkangaroosinAmerica?”)而將更高的值分配給“位置”聯(lián)想(例如,“inAmerica”)。相關(guān)的共同頻率分析(RCFA)除了在兩個(gè)或更多被呈現(xiàn)的詞和/或詞串之中發(fā)現(xiàn)共同的獨(dú)立聯(lián)想以外,另一個(gè)實(shí)施例還可以注意識(shí)別在只有包含正在加以分析的這些詞或詞串中的兩個(gè)或更多的詞或詞串的那些文檔中的用戶定義的范圍內(nèi)發(fā)現(xiàn)的詞和/或詞串的頻繁出現(xiàn)?!跋嚓P(guān)的共同頻率分析”不同于“獨(dú)立的共同頻率分析”,這體現(xiàn)在相關(guān)的詞一起出現(xiàn),與為分析而獨(dú)立地出現(xiàn)成對(duì)比。根據(jù)本發(fā)明的RCFA的該實(shí)施例使用以下步驟首先,定位來自這些被呈現(xiàn)的詞和/或詞串中的兩個(gè)或更多的詞和/或詞串共有的該數(shù)據(jù)庫的所有文檔編號(hào),即,定位來自包含這兩個(gè)被呈現(xiàn)的詞和/或詞串的數(shù)據(jù)庫的所有文檔(例如,通過指定和返回特殊的文檔編號(hào))。這些文檔編號(hào)是通過該
技術(shù)領(lǐng)域:
中已知的或本申請(qǐng)中所描述的定索引方案而加以指定的那些號(hào)碼。然后,識(shí)別和比較接近這些被呈現(xiàn)的詞和/或詞串的用戶定義的范圍內(nèi)的每個(gè)詞和詞串,并且記錄關(guān)于這些范圍內(nèi)的任何詞和詞串的該頻率。再一次,該用戶定義的范圍可以很狹窄,并且只包括與這些被呈現(xiàn)的詞或詞串明確接近的復(fù)現(xiàn)的詞或詞串。例如,假設(shè)為該系統(tǒng)呈現(xiàn)兩個(gè)詞串“kidslove”和“beforegoingtobed”,用于RCFA之下的分析。進(jìn)一步假設(shè)該數(shù)據(jù)庫包含到該“文檔數(shù)據(jù)庫”中的這些文檔中的被呈現(xiàn)的短語的、用戶定義的范圍內(nèi)的以下各個(gè)項(xiàng)目“kidsloveawarmhug”20次“kidsloveicecream”873次“kidsloveawarmhugbeforegoingtobed”12次“kidsloveicecreambeforegoingtobed”10次“kidslovestayinguplatebeforegoingtobed”17次“beforegoingtobed”684次由于在RCFA中,為分析而呈現(xiàn)兩個(gè)詞和/或詞串,因此,“復(fù)現(xiàn)數(shù)據(jù)庫”可以將該系統(tǒng)指引到具有“kidslove”和“beforegoingtobed”的該文檔數(shù)據(jù)庫中的這些文檔,因?yàn)樗鼈儗⒕哂信c其關(guān)聯(lián)的相同的文檔編號(hào)。此外,如果需要的話,該系統(tǒng)可以只定位那些文檔——其中,這些詞串在彼此的該用戶定義的詞數(shù)內(nèi),或者彼此有任何其他的用戶定義的有資格的接近度。一旦該系統(tǒng)已識(shí)別包含與“beforegoingtobed”的指定接近度內(nèi)的“kidslove”的該文檔數(shù)據(jù)庫中的所有文檔,該系統(tǒng)就可以從這兩個(gè)被呈現(xiàn)的詞串中建立用戶定義的范圍內(nèi)的所有復(fù)現(xiàn)的詞和詞串的頻率圖表。在以上的例子中,只有關(guān)于這兩個(gè)被呈現(xiàn)的短語(具有用戶指定的描繪允許多少詞在這兩個(gè)被呈現(xiàn)的短語之間)而出現(xiàn)的那些詞和詞串被加以分析(這樣,現(xiàn)存的詞串“kidsloveawarmhug”、“kidsloveicecream”和“beforegoingtobed”(單獨(dú)地)不被分析)。但是,從這個(gè)例子中,并且根據(jù)該詞和詞串?dāng)?shù)據(jù)庫的該有限樣品,“icecream”在這兩個(gè)被呈現(xiàn)的短語之間至少出現(xiàn)10次,因此至少具有10的頻率;“stayinguplate”在這兩個(gè)被呈現(xiàn)的短語之間至少出現(xiàn)17次,因此至少具有17頻率;并且,“warmhug”在這兩個(gè)被呈現(xiàn)的短語之間至少出現(xiàn)12次,因此至少具有12頻率;這取決于該用戶定義的詞串范圍。這些頻率可以更高,因?yàn)樗鼈兛梢猿霈F(xiàn)在“kidslove”和“beforegoingtobed”附近的、但不與它們直接鄰近的相同文本中(例如,“kidsloveicecreamandothersweetsbeforegoingtobed”或“beforegoingtobed,kidsloveicecream”)。對(duì)該查詢“whatdokidslovebeforegoingtobed?”的響應(yīng)具有許多潛在的“正確”回答。然而,利用反映各種代表性觀點(diǎn)的文檔的的臨界質(zhì)量,這各個(gè)較高的頻率將反映對(duì)該問題的一致看法,這些較低的頻率將反映現(xiàn)存的選擇性看法。例如,“hotshower”可能在“kidslove”和“beforegoingtobed”的該范圍內(nèi)三次,這指出幾乎不如一些其他的觀點(diǎn)那樣流行的優(yōu)先模式。作為選擇,可以建立用戶定義的參數(shù),以要求最小的總頻率,來有資格作為可接受的返回。關(guān)于該ICFA或該RCFA,可以使用辭典或任何其他已知的或確定的詞串相等物來取代這些被搜索的詞和詞串,以便在那些詞相等物的范圍周圍發(fā)現(xiàn)復(fù)現(xiàn)的詞和詞串,作為本發(fā)明的選擇性實(shí)施例。例如,該系統(tǒng)也可以搜索“kidslike”、“kidsreallylove”、“kidsenjoy”、“childrenenjoy”、“childrenlove”,來取代“kidslove”??梢允褂孟嗤募夹g(shù),來用該系統(tǒng)的已知相等物(比如“beforebed”、“beforegoingtosleep”、“beforebedtime”)代替“beforegoingtobed”。這樣,該
技術(shù)領(lǐng)域:
中已知的詞典和/或本發(fā)明的這些共同頻率技術(shù)的組合將產(chǎn)生大量語義相等的詞和詞串,這些詞和詞串可以被用來擴(kuò)大關(guān)于許多更有關(guān)的語義搜索項(xiàng)的分析。二級(jí)頻率分析在另一個(gè)實(shí)施例中,該系統(tǒng)可以使用構(gòu)成查詢的第一或第二個(gè)詞或詞串與從共同頻率分析中選擇的第三個(gè)詞或詞串之間的該共同聯(lián)想,來執(zhí)行頻率分析,這將把新的信息加入為應(yīng)用程序而執(zhí)行的該分析。例如,如果“beforegoingtobed”(第一)和“kidslove”(第二)的該共同范圍內(nèi)的所有詞和詞串的頻率之間的該被選擇的共同聯(lián)想是“icecream”(第三),則這個(gè)實(shí)施例在“beforegoingtobed”(第一)與“icecream”(第三)、或“kidslove”(第二)與“icecream”(第三)之間生成獨(dú)立的或相對(duì)的頻率分析,從而根據(jù)那兩個(gè)頻率分析來選擇聯(lián)想。例如,“icecream”和“beforegoingtobed”可以具有與“stomachache”的高共同頻率聯(lián)想,它可以用于關(guān)于將要根據(jù)本發(fā)明而加以使用的應(yīng)用程序的該分析。而且,可以使用如該用戶定義的生成那樣多的組合中的相同的技術(shù),來分析任何兩個(gè)或更多的詞或詞串。特殊的應(yīng)用程序?qū)⒁笞詣?dòng)化分析,從而識(shí)別對(duì)聯(lián)想頻率分析的每個(gè)生成執(zhí)行哪個(gè)共同頻率分析。在組合地使用兩個(gè)或更多的獨(dú)立結(jié)果之前,更復(fù)雜的應(yīng)用程序?qū)⒆R(shí)別將要被執(zhí)行的這兩個(gè)或更多的頻率分析。使用共同頻率分析來確定詞功能或含義如第10/024,473號(hào)美國申請(qǐng)中所描述的,建立于正在加以分析的詞和詞串與不是翻譯、但卻是密切相關(guān)的想法的其范圍內(nèi)的詞和詞串之間的這些高頻聯(lián)想可以被用于人工智能應(yīng)用程序。人工智能或智能應(yīng)用程序是可以回答它過去不一定被要求回答的問題或執(zhí)行它過去不一定被要求執(zhí)行的任務(wù)的應(yīng)用程序。本發(fā)明可以利用這些聯(lián)想數(shù)據(jù)庫來識(shí)別詞和詞串的形成和/或模式,這些詞和詞串的形成和/或模式可以被用作種類指示項(xiàng),以識(shí)別與這些種類指示項(xiàng)關(guān)聯(lián)的其他的詞或詞串的功能或目的。例如,詞的特定模式通常可能與是人名、一種食物或動(dòng)作的詞相關(guān)聯(lián)。通過使用CFA,本發(fā)明可以分析文檔,以揭示這些模式的存在及其與其他詞或詞串的聯(lián)想。根據(jù)該聯(lián)想,該系統(tǒng)可以對(duì)同樣與這些模式關(guān)聯(lián)的其他詞進(jìn)行分類,因?yàn)橥瑯雨P(guān)聯(lián)的其他詞有可能歸入類似的種類。這樣,該系統(tǒng)可以識(shí)別種類指示項(xiàng)的存在,并可以利用種類指示項(xiàng)。而且,共享高度關(guān)聯(lián)的詞和詞串模式的詞和/或詞串經(jīng)常是彼此的語義相等物或彼此的接近的語義相等物。這種應(yīng)用程序的一個(gè)例子將會(huì)是幫助本發(fā)明翻譯方法完成該系統(tǒng)使用以前描述的過程而無法決定的翻譯。例如,假設(shè)該系統(tǒng)接收過將要被翻譯成語言X的英語查詢“IloveMoshe”。假設(shè)該系統(tǒng)具有詞串“Ilove”的翻譯,但沒有關(guān)于“IloveMoshe”或“l(fā)oveMoshe”的翻譯。該聯(lián)想數(shù)據(jù)庫具有詞串(比如“mynameisMoshe”、“Mr.MosheFein”、“hisnameisMoshe”)中的詞“Moshe”。可以使用CFA來識(shí)別這些詞串與名稱Moshe之間的關(guān)系。然后,用戶可以將到該系統(tǒng)的這些短語識(shí)別為與名稱高度相關(guān),所以是名稱指示項(xiàng)——特定類型的種類指示項(xiàng)。一旦Moshe出現(xiàn)在用戶定義數(shù)量(或百分比)的“名稱指示項(xiàng)”短語中,該系統(tǒng)就將有統(tǒng)計(jì)確定性地確定“Moshe”是潛在的名稱,因?yàn)樗霈F(xiàn)在是“名稱指示項(xiàng)”的文本中。該
技術(shù)領(lǐng)域:
中已知的其他系統(tǒng)也并入這些名稱指示項(xiàng)、以及關(guān)于(例如)日期、號(hào)碼和其他特殊類別的其他種類指示項(xiàng),而本發(fā)明可以使用這些手動(dòng)編碼的指示項(xiàng)(比如指出名稱的短語)來識(shí)別其中也出現(xiàn)比如Moshe的名稱和其他已知名稱的所有其他的短語。例如,該用戶可能沒有想過將“theguy’snameis”作為名稱指示項(xiàng)加入,但本發(fā)明將呈現(xiàn)它、以及用戶將不會(huì)使用這個(gè)實(shí)施例來包括的許多其他的名稱指示項(xiàng)。每個(gè)詞和詞串具有可以在周圍的詞和詞串之中發(fā)現(xiàn)的有限領(lǐng)域的可能的選擇性詞或詞串。該領(lǐng)域?qū)ň_地表示它們正在代替的這些想法的詞和詞串,并且將離開原來被表示為背道而馳的思想的該想法。例如,如果檢查短語“Ilovechocolate”,則該系統(tǒng)可以生成關(guān)于詞“l(fā)ove”的所有可能的替換。該系統(tǒng)將生成相等物和接近的相等物(比如“Ireallylovechocolate”、“Iadorechocolate”、“Ireallyenjoychocolate”)、以及非相等物和相反物(比如“Itoleratechocolate”和“Ihatechocolate”)。該系統(tǒng)將不會(huì)發(fā)現(xiàn)詞的復(fù)現(xiàn)頻率,它們不會(huì)使用該獨(dú)立的共同聯(lián)想頻率分析(或作為選擇,是相關(guān)的共同聯(lián)想頻率分析的實(shí)施例)來填充詞love留下的整體。例如,該分析中的這些數(shù)據(jù)庫將不會(huì)產(chǎn)生“Ifishchocolate”、“Iyouchocolate”、“Iwhochocolate”。一旦該系統(tǒng)確立Moshe是名稱,并且,如果“Ilove”是名稱指示項(xiàng)(但不是我們?cè)谄渲锌匆娺^Moshe的名稱指示項(xiàng)),那么,若該“翻譯引擎”具有采用語言B的、關(guān)于“Moshe”的翻譯,則它可以將其連接到采用語言B的“Ilove”翻譯,而無須重疊。如果不知道采用語言B的、關(guān)于“Moshe”的翻譯,則可以使用從英語到語言B的音譯功能來生成名稱“Moshe”的表示,并將其連接到關(guān)于“Ilove”的語言B翻譯,而無須重疊。與作為名稱的其他詞和/或詞串清楚相關(guān)的名稱是一個(gè)簡單的例子用戶如何識(shí)別表達(dá)可以由概括含義來分類的想法的詞串之間的共同統(tǒng)計(jì)關(guān)系,以用于智能應(yīng)用程序。而且,所有詞串都將擁有它們與所有其他相關(guān)的概念和想法的動(dòng)態(tài)關(guān)系,這些概念和想法由這些語言內(nèi)聯(lián)想數(shù)據(jù)庫來展示,當(dāng)它們用語言來表示時(shí),這些語言內(nèi)聯(lián)想數(shù)據(jù)庫根據(jù)其彼此的緊密接近度的頻率來列出相關(guān)的想法。構(gòu)成連貫想法的每個(gè)詞串在關(guān)于該系統(tǒng)的彼此的某個(gè)接近度內(nèi)將具有文本中的采取頻繁復(fù)現(xiàn)模式的其相關(guān)想法領(lǐng)域,以提取任何給定上下文中的那些想法的含義的概率。例如,如果翻譯查詢涉及明顯不是名稱的詞,則可以在鄰接的詞和詞串的下一個(gè)層次上檢查相關(guān)想法之中的該頻率,以提供進(jìn)一步的上下文。例如,如果將要被翻譯成語言B的該英語查詢是“IloveFaith”,那么,這有些意思含糊,因?yàn)镕aith可以是名稱,也可以是“無證據(jù)的信仰感受”。如果該完整的翻譯查詢中的短語“IloveFaith”附近的其他鄰接的詞是“her”和“she”、但不是“god”、“religion”、“church”等,則該系統(tǒng)將把為頻率、接近度和其他種類指示項(xiàng)加權(quán)的公式應(yīng)用于存在于其數(shù)據(jù)庫中的這些聯(lián)想,并且“知道”選擇該“名稱”Faith(而不是該“無證據(jù)的信仰”Faith)的翻譯。具有與其他想法的頻繁關(guān)系集的其他鄰接的詞和詞串將產(chǎn)生該發(fā)言者意圖的進(jìn)一步的證據(jù),直到統(tǒng)計(jì)重要性修改該回答為止;或者,基于缺乏信息,該系統(tǒng)詢問該用戶,用于澄清。例如,如果這整個(gè)查詢是“IloveFaith”,那么,這將會(huì)發(fā)生。由于它有些意思含糊,因此,即使由人來擔(dān)當(dāng)?shù)姆g者也可能會(huì)問“你的意思是Faith這個(gè)詞意指人嗎?”在采用英語的情況中,大多數(shù)大寫首字母將指出意指該“名稱”Faith。這是該系統(tǒng)可以用來確定Faith也許是名稱的另一個(gè)屬性。許多基于非拉丁語字符的語言沒有大寫/小寫字符,所以,這類事項(xiàng)將依靠通過文本中的彼此的頻繁接近度而相關(guān)的詞串之間的純粹的一層加一層的關(guān)系、以及任何其他的語言表示(語音、符號(hào)、姿勢等)。使用共同頻率分析來定位語義類似的詞表達(dá)特定想法的、采用一種語言的詞和詞串經(jīng)常以各種模式出現(xiàn)。直接在特定詞(采用英語,在該特定詞的左邊)前面以及在該特定詞(采用英語,在該特定詞的右邊)后面發(fā)現(xiàn)特殊的詞和詞串的該頻率可以表現(xiàn)這些模式。這樣,表達(dá)相似想法的詞和詞串將在引入和離開它們的這些詞和詞串的類型和順序方面具有共同性?!笆褂眠@些詞模式來生成信息”的另一個(gè)例子在綜合的詞和詞串相等物辭典的創(chuàng)建過程中。如果要求該系統(tǒng)識(shí)別具有與另一個(gè)詞或詞串相同或幾乎相同的含義的詞和/或詞串(即,這些詞和詞串在語義上類似),那么,該系統(tǒng)可以發(fā)現(xiàn)與那個(gè)詞或詞串關(guān)聯(lián)的這些詞和詞串頻率,并尋找其聯(lián)想頻率與它最密切匹配的、采用那種語言的詞和詞串。通常,兩個(gè)詞和/或詞串之間的形成越類似,它們的含義就越類似。有時(shí),相反物將共享高頻共同聯(lián)想,但將在某些重要的定性聯(lián)想上有強(qiáng)烈的差異,這些重要的定性聯(lián)想創(chuàng)建該系統(tǒng)也可以為應(yīng)用程序提供的“相反物簽名”模式。將由該系統(tǒng)來確定詞或詞串所表達(dá)的任何想法與詞或詞串所表達(dá)的任何其他的想法之間的該聯(lián)想的字符——該“聯(lián)想簽名”。該系統(tǒng)使用這些聯(lián)想數(shù)據(jù)庫來檢測用戶定義的范圍內(nèi)的特殊構(gòu)詞法,這些用戶定義的范圍適合檢測想法周圍的詞模式,該想法定義該想法與和它的有關(guān)接近度內(nèi)的其他想法之間的關(guān)系。該計(jì)算機(jī)程序清單附錄中所陳述的程序4是使用共同頻率分析來定位在語義上相等或類似的詞的程序的例子。將概括地解釋通過使用這些聯(lián)想數(shù)據(jù)庫和智能應(yīng)用程序302,該系統(tǒng)如何通過共同頻率分析來檢測語義上相等的詞串。該系統(tǒng)也可以對(duì)這些被呈現(xiàn)的詞和詞串運(yùn)行該ICFA和該RCFA,并且使用用戶定義的加權(quán)過程來結(jié)合這些結(jié)果。在使用ICFA的詞或詞串周圍使用特殊構(gòu)詞法的一個(gè)實(shí)施例是識(shí)別在語義值(即含義)上與任何詞或詞串相等或接近相等的詞和/或詞串。這個(gè)實(shí)施例涉及步驟1,接收請(qǐng)求將要為相等物而加以分析的詞或詞串(該查詢短語)的查詢,并且返回具有最高出現(xiàn)頻率的、用戶定義的最小和/或最大尺寸的用戶定義數(shù)量的詞和/或詞串(這些被返回的短語),以及每個(gè)被返回的短語的出現(xiàn)頻率——其中,該被返回的短語被直接定位在所有可用文檔中的該查詢短語的左邊。該復(fù)現(xiàn)的用戶定義的詞串越大,這些最終結(jié)果將越精確。步驟2,使用被分析的每個(gè)詞或詞串右邊的一個(gè)詞或詞串的范圍(一個(gè)詞或詞串的該范圍意味著該系統(tǒng)將把在步驟2中加以分析的這每個(gè)詞或詞串右邊的復(fù)現(xiàn)的詞和詞串評(píng)為最高等級(jí)),來產(chǎn)生關(guān)于來自步驟1的用戶定義數(shù)量的最高等級(jí)結(jié)果中的每個(gè)結(jié)果的頻率分析。然后,添加在步驟2中產(chǎn)生的所有共同詞和詞串的這些頻率。步驟3,使用直接在該查詢的右側(cè)的用戶定義數(shù)量的詞的范圍(為準(zhǔn)確起見,通常再次需要至少兩個(gè)或更多的詞),來產(chǎn)生關(guān)于該查詢的頻率分析。步驟4,使用直接在正在加以分析的這每個(gè)詞和詞串的左邊的一個(gè)詞或詞串的范圍(再有,直接在正在加以分析的該詞或詞串的左邊的這一個(gè)詞或詞串的這些結(jié)果將按頻率來為經(jīng)常引入在步驟4中被分析的每個(gè)詞和詞串的這些詞和詞串評(píng)定等級(jí)),來產(chǎn)生關(guān)于從步驟3被返回的用戶定義數(shù)量的最高等級(jí)詞和詞串中的每個(gè)詞和詞串的頻率分析。然后,添加步驟4中的所有共同詞和詞串結(jié)果的這些頻率。步驟5,通過識(shí)別由步驟2和步驟4產(chǎn)生的每個(gè)詞或詞串,來實(shí)行ICFA。步驟2中的這每個(gè)被返回的共同詞和詞串的頻率數(shù)乘以從步驟4中產(chǎn)生的該共同詞或詞串的頻率數(shù)?;趤碜圆襟E2和步驟4的其頻率的這些乘積的這些最高等級(jí)的詞或詞串通常將是與該查詢?cè)谡Z義上最相等或類似的詞和詞串。以下的例子展示了以上的實(shí)施例,它使用假設(shè)數(shù)據(jù)庫來創(chuàng)建該系統(tǒng)的文檔數(shù)據(jù)庫中的所有詞和詞串相等物的聯(lián)想;然后,使用ICFA來創(chuàng)建具有語義相等物的聯(lián)想。假設(shè)該用戶輸入詞“detained”,以確定關(guān)于那個(gè)詞的、該系統(tǒng)知道的所有這些詞和詞串相等物。在步驟1中,通過只采用最上面的三個(gè)結(jié)果來簡化該舉例說明(盡管本發(fā)明所分析的該結(jié)果數(shù)量可能是用戶定義的),該系統(tǒng)首先確定直接在“detained”左邊的這些最頻繁的三詞詞串。直接在該被分析的詞(“detained”)左邊的這些詞串的長度是用戶定義的(在這個(gè)例子中是三詞詞串)。該分析的這些結(jié)果——該被呈現(xiàn)的詞左邊的用戶定義長度的詞串清單被稱作“左簽名清單”。假設(shè)以上例子中的該系統(tǒng)返回以下內(nèi)容1.“thesuspectwas”2.“wasarrestedand”3.“continuedtobe”在步驟2中,該系統(tǒng)作用于該被返回的“左簽名清單”。該系統(tǒng)定位最頻繁地跟隨以上三個(gè)被返回的三詞詞串的詞和/或詞串——即這些被返回的三詞詞串右邊的那些詞和/或詞串。該系統(tǒng)在這個(gè)操作中返回的這些詞串的長度是用戶定義的。該分析的這些結(jié)果——每個(gè)“左簽名清單”項(xiàng)目右邊的每個(gè)詞和/或詞串清單被稱作“左錨清單”。假設(shè)以上例子中的該系統(tǒng)返回以下的“左錨清單”1.“thesuspectwas”a.“arrested”(240頻率)b.“held”(120)c.“released”(90)2.“wasarrestedand”a.“held”(250)b.“convicted”(150)c.“released”(100)3.“continuedtobe”a.“healthy”(200)b.“confident”(150)c.“optimistic”(120)也是在步驟2中,添加這每個(gè)“左錨清單”中的這些共同返回頻率。這些“左錨清單”中的唯一共同返回是a.“held”120+250=370b.“released”90+100=190在步驟3中,該系統(tǒng)確定直接在該數(shù)據(jù)庫中的這些文檔中的被選擇的查詢“detained”右邊的三個(gè)最頻繁出現(xiàn)的二詞詞串。被分析的頻繁出現(xiàn)的詞串的數(shù)量又是用戶定義的(在這里,如在步驟1中,該系統(tǒng)返回這頂部三個(gè)出現(xiàn)的詞串)。直接在該被分析的詞(“detained”)右邊的這些詞串的長度是用戶定義的,在這個(gè)例子中是二詞詞串(因?yàn)榭梢栽诓襟E1和步驟3中使用任何長度的詞串)。該分析的這些結(jié)果——在該被呈現(xiàn)的詞右邊的用戶定義長度的該詞串清單被稱作“右簽名清單”。假設(shè)以上例子中的該系統(tǒng)返回以下內(nèi)容1.“forquestioning”2.“oncharges”3.“duringthe”在步驟4中,該系統(tǒng)作用于該被返回的“右簽名清單”。該系統(tǒng)定位在以上三個(gè)被返回的二詞詞串前面最頻繁地出現(xiàn)的詞和/或詞串——即這些被返回的二詞詞串左邊的那些詞和/或詞串。該系統(tǒng)在這個(gè)操作中返回的這些詞串的長度可以是用戶定義的。該分析的這些結(jié)果——每個(gè)“右簽名清單”項(xiàng)目左邊的每個(gè)詞和/或詞串清單被稱作“右錨清單”。假設(shè)以上例子中的該系統(tǒng)返回以下的“右錨清單”1.“forquestioning”a.“held”(300)b.“wanted”(150)c.“broughtin”(100)2.“oncharges”a.“held”(350)b.“arrested”(200)c.“broughtin”(150)3.“duringthe”a.“beautiful”(500)b.“happy”(400)c.“people”(250)類似于步驟2,添加這些“右錨清單”中的這些共同返回頻率。這些“右錨清單”中的唯一共同返回是a.“held”300+350=650b.“broughtin”100+150=250在步驟5中,實(shí)行ICFA,并且,該系統(tǒng)返回等級(jí)評(píng)定。在本例中,通過乘以步驟2和步驟4中的這些共同返回(即“左錨清單”和“右錨清單”上的返回)的各個(gè)頻率,來產(chǎn)生加權(quán)頻率,如下所述1.“held”650×270=175,5002.“arrested”200×240=48,000用于等級(jí)評(píng)定的選擇性實(shí)施例沒有考慮該特殊加權(quán)頻率。相反,根據(jù)其上出現(xiàn)該結(jié)果的“錨”清單的總數(shù),來為至少一個(gè)“左錨清單”和至少一個(gè)“右錨清單”上所產(chǎn)生的所有結(jié)果評(píng)定等級(jí)。在以上的例子中,使用這個(gè)實(shí)施例的這些等級(jí)評(píng)定將會(huì)是等級(jí)語義相等物錨清單的#1.“held”42.“arrested”2雖然“released”和“broughtin”每個(gè)都在該分析中產(chǎn)生過兩次,但是,它們都沒有在“左錨清單”和“右錨清單”上產(chǎn)生過(“released”在“左錨清單”上產(chǎn)生過兩次,“broughtin”在“右錨清單”上產(chǎn)生過兩次)??梢岳媒Y(jié)合該“錨清單”數(shù)量和總頻率的其他加權(quán)方案。以上的舉例說明基于該文檔數(shù)據(jù)庫中的相對(duì)較少數(shù)量的文檔。該文檔數(shù)據(jù)庫可以更大,并且可以包括該系統(tǒng)可經(jīng)由網(wǎng)絡(luò)(例如,因特網(wǎng))來進(jìn)行遠(yuǎn)程存取的文檔。在本發(fā)明的一個(gè)實(shí)施例中,該用戶不僅定義將要被包括在“簽名清單”上的該結(jié)果數(shù)量,而且可以在已利用用戶定義的最小頻率來發(fā)現(xiàn)所有這些被指定的結(jié)果數(shù)量時(shí),停止該分析。當(dāng)使用大型數(shù)據(jù)庫時(shí),這用作切斷,并且將節(jié)省處理功率。用于產(chǎn)生與查詢?cè)~或詞串在語義上相等的詞和詞串的ICFA的用戶定義的參數(shù)的其他例子可以考慮各種長度的該查詢的左側(cè)和右側(cè)的頻繁復(fù)現(xiàn)的詞和詞串。這樣,實(shí)施例可能具有到這些“簽名清單”中被返回的這些詞串的可變的用戶定義長度——具有到這些詞串的最小和最大長度;而不是具有到“左和右簽名清單”中被返回的這些詞串的固定的用戶定義長度。該查詢的左、右側(cè)上的該分析中所使用的不同大小的更頻繁出現(xiàn)的詞串提供更多的上下文,來識(shí)別更精確的語義相等物。此外,這個(gè)實(shí)施例可能包括關(guān)于這些被返回的詞或詞串的“簽名清單”返回的最少數(shù)量的出現(xiàn),以便具有該“簽名清單”的資格,用于獲得進(jìn)一步的精確性。在這個(gè)可變的詞串分析中,在本發(fā)明的實(shí)施例中,來自先前的例子(“detained”)的該查詢可以被分析如下在步驟1中,從可用數(shù)據(jù)庫中生成用戶定義的最小和最大長度的、該查詢左邊的用戶定義數(shù)量的最頻繁詞串的“左簽名清單”。這是先前例子的步驟1中的相同的過程,除了“這里使用各種長度的詞串,而不是固定長度的詞串”以外。如果這些用戶定義的參數(shù)是(1)返回這六個(gè)最頻繁詞串、(2)具有最小長度為兩個(gè)詞并且最大長度為四個(gè)詞的這些詞串、以及(3)具有至少500次出現(xiàn)的最少出現(xiàn),那么,該先前例子中的這些結(jié)果可能(再次使用假設(shè)的例子)如下所示詞串頻率1.“peoplewere”1,0002.“arrestedand”9503.“werereportedly”8004.“passengerswere”7755.“wasbeing”7006.“thesuspectwas”6507.“wasarrestedand”5758.“afterthejournalistswere”500在步驟2中,如同在該先前的例子中,從該“左簽名清單”上的這些結(jié)果中生成這些“左錨清單”。在步驟3中,使用這個(gè)例子的步驟1中所描述的這些相同定義的參數(shù),來生成“右簽名清單”,其結(jié)果如下詞串頻率1.“forquestioning”1,7502.“oncharges”1,5203.“duringthe”1,3504.“becauseof”1,0005.“dueto”7506.“inconnection”6007.“withoutchargeor”5758.“forquestioningafter”500在步驟4中,如同在該先前的例子中,從該“右簽名清單”上的這些結(jié)果中生成這些“右錨清單”。在步驟5中,根據(jù)其上出現(xiàn)該結(jié)果的清單總數(shù),來為至少一個(gè)“左錨清單”和至少一個(gè)“右錨清單”上所產(chǎn)生的所有結(jié)果評(píng)定等級(jí)。作為選擇,通過將其上出現(xiàn)結(jié)果的“左錨清單”的總數(shù)乘以其上出現(xiàn)該結(jié)果的“右錨清單”的總數(shù),可以確定等級(jí)評(píng)定。此外,總頻率可以被加入這些等級(jí)評(píng)定的加權(quán)。應(yīng)該注意,以上的范例查詢是詞(“detained”),而該系統(tǒng)可以產(chǎn)生關(guān)于任何大小的詞串的語義相等物——其中,該詞串表達(dá)語義上可識(shí)別的想法。例如,如果利用“carrace”來詢問該系統(tǒng),則它將會(huì)產(chǎn)生關(guān)于“carrace”的潛在的語義相等物。通過執(zhí)行以上這些實(shí)施例中所描述的相同的步驟(它們利用ICFA來確定語義相等物),該系統(tǒng)可能會(huì)產(chǎn)生其他語義相等物之中的“stockcarrace”、“autorace”、“dragrace”、“NASCARrace”、“Indianapolis500”、“race”。該系統(tǒng)使用該完全相同的過程來接受查詢和產(chǎn)生語義相等物,而不顧該查詢或該結(jié)果的該詞串的大小?!皠?chuàng)建語義相等物聯(lián)想”的另一個(gè)實(shí)施例基于以上所示的該“相關(guān)的共同頻率分析”(RCFA)(而不是該“獨(dú)立的共同頻率分析”(ICFA))例子的運(yùn)用。該RCFA語義相等物分析涉及以下步驟步驟1接收詞或詞串查詢,以發(fā)現(xiàn)該RCFA語義相等物詞和詞串,并且搜索文檔數(shù)據(jù)庫,以識(shí)別包含該詞或詞串的文檔的各個(gè)部分。在例子中,詞串“initialpublicoffering”作為查詢而被輸入,以識(shí)別其RCFA語義相等物。然后,該系統(tǒng)搜索文檔數(shù)據(jù)庫,利用該“initialpublicoffering”詞串來識(shí)別文檔的各個(gè)部分,并且將文檔的那些部分返回給該用戶。該用戶可以定義和限制被返回部分的數(shù)量。步驟2關(guān)于在步驟1中發(fā)現(xiàn)的該查詢?cè)~串的每次出現(xiàn),通過結(jié)合(ii)該查詢右邊的用戶定義大小的該詞和/或詞串來記錄(i)該查詢左邊的用戶定義大小的該詞和/或詞串的該出現(xiàn)頻率,可分析這些被返回的部分。這個(gè)步驟創(chuàng)建“托住”該查詢的相關(guān)的左、右簽名;該結(jié)果創(chuàng)建“左/右簽名托架”。在我們的例子中,該用戶定義的左詞串可以被設(shè)置為二,并且,該用戶定義的右詞串可以被設(shè)置為二。利用出現(xiàn)用戶定義的最少次數(shù)(例如,5次)的、將要被返回的用戶定義的托架限定(例如,100個(gè)),可以有效率地分析這些計(jì)算。這個(gè)過程會(huì)導(dǎo)致以下關(guān)于該查詢“initialpublicoffering”的假設(shè)返回1.“foran_________ofits”2.“atan_________priceof”3.“announcedthe_________ofits”4.“atthe_________ofits”5.“asthe_________ofits”6.“announcedits_________ofthe”7.“theproposed_________forits”8.“announcedan_________ofstock”9.“completedits_________ofits”10.“forthe_________ofits”步驟3在該文檔數(shù)據(jù)庫中搜索出現(xiàn)在在步驟2中產(chǎn)生的每個(gè)“左/右簽名托架”的這些左詞串與右詞串之間的最頻繁詞和詞串(上至用戶定義的最大尺寸)。通過識(shí)別在該“左/右簽名托架”的這些詞串之間出現(xiàn)的其他頻繁出現(xiàn)的詞和/或詞串,可產(chǎn)生潛在的語義相等物。用戶定義的最少數(shù)量或百分比的“左/右簽名托架”可以隨意地被要求取得資格。步驟4可以根據(jù)總頻率、“左/右簽名托架”的“被填充”的數(shù)量、或某種其他的方法或方法組合,來為出現(xiàn)在該“左/右簽名托架”的這些詞串之間的最后得到的詞和/或詞串評(píng)定等級(jí)。在這個(gè)例子中,步驟3中的頂部結(jié)果可能是這些詞和/或詞串IPO、ipo(這些結(jié)果可能區(qū)分大小寫)、InitialOffering、offering、PublicOffering和stockoffering,它們都“適合”部分的這些“左/右簽名托架”的該未決定部分。運(yùn)用ICFA和RCFA來確定語義相等物將包括適合該“左/右簽名托架”、但不是語義相等物的一些結(jié)果。例如,具有與該查詢?cè)~或詞串相反含義的許多詞或詞串將適合與該查詢相同的許多“左/右簽名托架”,如同其他相關(guān)的、但非語義相等的詞和詞串那樣。如果應(yīng)用程序要求關(guān)于查詢的該清單上只包括語義相等物,那么,可以通過關(guān)于該查詢所產(chǎn)生的該清單上的每個(gè)結(jié)果的單獨(dú)的共同頻率語義相等物分析的該操作,來使用該
技術(shù)領(lǐng)域:
中已知的過濾技術(shù)。過濾技術(shù)(例如,只包括來自該查詢清單的結(jié)果的過濾技術(shù),該查詢清單也出現(xiàn)在用戶定義數(shù)量的語義相等物清單上的用戶定義的門限等級(jí)評(píng)定以內(nèi))可以被用來確定什么將保留在該原始查詢清單上。將為只需要語義相等物的應(yīng)用程序過濾所有其他的結(jié)果。關(guān)于語義相等物生成的以上實(shí)施例是本發(fā)明可以使用ICFA(或作為選擇是RCFA)來識(shí)別關(guān)于詞和詞串所表達(dá)的想法的特征、以及詞或詞串與任何其他的詞或詞串之間的關(guān)系的特性的許多方法之一。根據(jù)“利用由其頻率和語言內(nèi)彼此的接近度來定義的想法之間的各種關(guān)系、以及其他種類指示項(xiàng)來解決更復(fù)雜的問題”的相同的核心想法,可以使用其他方法。這可以涉及對(duì)兩個(gè)或更多不同的片段集合實(shí)行共同頻率分析,并且按用戶定義的方式來使用結(jié)合的結(jié)果。可以被識(shí)別的更復(fù)雜的關(guān)系的一個(gè)例子是通過彼此相反的詞或詞串的簽名的比較而形成的該模式。為了識(shí)別這個(gè)模式,用戶將把詞輸入該系統(tǒng)(例如,hot)。然后,該系統(tǒng)將識(shí)別在這個(gè)詞(這些生成詞“signature”)周圍的復(fù)現(xiàn)的詞和詞串的所有這些頻率。接下來,該用戶將呼吁該系統(tǒng)識(shí)別在表達(dá)該相反想法(例如,寒冷)的這個(gè)詞或詞串周圍的復(fù)現(xiàn)的詞和詞串的所有這些頻率。然后,該系統(tǒng)將尋找用于重疊詞hot的左側(cè)與cold的右側(cè)之間的、以及cold的左側(cè)與hot的右側(cè)之間的想法的共同模式。這些結(jié)果是通過這兩個(gè)簽名的比較而形成的模式,該系統(tǒng)隨后可以使用這兩個(gè)簽名來識(shí)別具有通過其簽名的比較而形成的類似模式的其他詞或詞串對(duì)。這樣,如果按尋求相反物的方式并利用詞或詞串來詢問該系統(tǒng),那么,該系統(tǒng)將(1)識(shí)別那個(gè)查詢周圍的所有詞和詞串,(2)識(shí)別具有類似于該查詢的簽名、但不在將會(huì)把它們識(shí)別為同義詞的類似層次上的詞和詞串的清單,(3)然后將這些相關(guān)的(但不是同義的)詞和詞串的簽名與該查詢進(jìn)行比較,并且(4)將在步驟3中識(shí)別的該比較與以前識(shí)別的相反的詞或詞串對(duì)的簽名的這些比較進(jìn)行比較。如果在步驟3中生成的任何比較都具有充分(用戶定義的)類似于通過已知相反物之間的簽名比較而形成的該模式的模式,那么,該系統(tǒng)將識(shí)別與該查詢形成對(duì)比的、來自步驟2的該詞或詞串,以形成那個(gè)模式,并且將它識(shí)別為該查詢的相反物。也應(yīng)該注意,供該系統(tǒng)產(chǎn)生詞串相等物(或任何其他的關(guān)系)的用戶定義的參數(shù)可以涉及與該查詢緊密接近、但不直接與左或右側(cè)上的該查詢鄰近的詞串。將需要在應(yīng)用程序中調(diào)整這些用戶定義的參數(shù)——其中,語義含義表達(dá)通常不太有效率,或者在結(jié)構(gòu)上不太常規(guī)(例如,固定于因特網(wǎng)“聊天室”媒介中的談話和其他類型的談話)。使用語義相等物發(fā)生器的翻譯數(shù)據(jù)庫建立器本發(fā)明的額外的實(shí)施例利用用于生成語義相等物清單的該系統(tǒng)和方法來協(xié)助翻譯。它可以被用作替換,或者可以連同使用平行文本以及如這里和第10/024,473號(hào)美國專利申請(qǐng)中先前所描述的該雙重重疊技術(shù)的該詞串翻譯數(shù)據(jù)庫建立器來加以使用。“如何可以在翻譯數(shù)據(jù)庫中利用用于生成語義相等物清單的該系統(tǒng)和方法”的一個(gè)例子如下所述首先,在還待決定的將要被翻譯的該部分的左邊和右邊生成用戶定義大小的兩個(gè)特殊簽名。例如,假設(shè)該系統(tǒng)正在翻譯句子“Iwenttotheballparktowatchthebaseballgame”。而且,假設(shè)已知關(guān)于該句子的翻譯的所有片段,除了短語“theballpark”(這被稱作“未決定的短語或部分”)以外。如果這些用戶定義的參數(shù)被定義為直接在該未決定的短語左邊的該三詞詞串和直接在該未決定的短語右邊的該四詞詞串,那么,本發(fā)明返回兩個(gè)詞串“左簽名特殊詞串”和“右簽名特殊詞串”。這樣,該“左簽名特殊詞串”將會(huì)是“Iwentto”。該“右簽名特殊詞串”將會(huì)是“towatchthegame”。其次,通過使用用于創(chuàng)建語義聯(lián)想的任何先前描述的實(shí)施例,來為來自文檔數(shù)據(jù)庫的該未決定的短語生成采用該源語言的簽名清單。通過對(duì)該未決定的短語使用上述語義相等物系統(tǒng)和方法而加以創(chuàng)建的這些“清單”被分別稱作該“左簽名清單”和該“右簽名清單”。再次,將該“左簽名特殊詞串”和該“左簽名清單”都翻譯成該目標(biāo)語言。通過使用本發(fā)明的平行文本數(shù)據(jù)庫建立器或該
技術(shù)領(lǐng)域:
中已知的其他翻譯設(shè)備,可以獲得這些翻譯。通過使用本發(fā)明的上述多種語言手段實(shí)施例,可以改進(jìn)使用該
技術(shù)領(lǐng)域:
中已知的翻譯系統(tǒng)的結(jié)果。這個(gè)過程的該結(jié)果是該“左目標(biāo)簽名清單”。對(duì)該“右特殊詞串清單”和該“右簽名清單”實(shí)行類似的翻譯過程,以創(chuàng)建“右目標(biāo)簽名清單”。第四,通過使用該語義相等物過程的以上步驟2和步驟4,從該“左和右目標(biāo)簽名清單”和任何目標(biāo)語言文檔數(shù)據(jù)庫中創(chuàng)建目標(biāo)語言錨清單。從這個(gè)過程中得到的這些清單分別是該“左目標(biāo)錨清單”和該“右目標(biāo)錨清單”。最后,將該“左目標(biāo)錨清單”的返回與該“右目標(biāo)錨清單”的返回進(jìn)行比較。出現(xiàn)在該“左目標(biāo)錨清單”中的至少一個(gè)清單和該“右目標(biāo)錨清單”中的一個(gè)清單上的這些結(jié)果是該查詢的潛在翻譯,并且根據(jù)其上出現(xiàn)它們的“錨清單”的總數(shù)來評(píng)定等級(jí)。關(guān)于從該“特殊上下文詞串清單”中導(dǎo)出的該“錨清單”上的出現(xiàn),可以提供用于該等級(jí)評(píng)定的額外加權(quán),以獲得更大的精確性。通過將“左錨清單”的數(shù)量乘以其上出現(xiàn)結(jié)果的“右錨清單”的數(shù)量,也可以確定等級(jí)評(píng)定。此外,關(guān)于該總返回頻率的某個(gè)加權(quán)可以被包括在內(nèi),作為等級(jí)評(píng)定結(jié)果中的因素?!凹偃缬形礇Q定的短語,使用語義相等物來建立關(guān)于查詢的潛在翻譯的數(shù)據(jù)庫”的另一個(gè)實(shí)施例如下所述首先,如上所述,根據(jù)只使用“左和右特殊簽名詞串”的該語義相等物分析,來分析該查詢的這個(gè)未決定的短語。然后,如上所述,根據(jù)只使用“左和右簽名清單”的該語義相等物分析,來分析該查詢的這個(gè)未決定的短語。然后,出現(xiàn)在該“左錨清單”和/或該“左簽名特殊詞串”中的至少一項(xiàng)上的、并且出現(xiàn)在該“右錨清單”和/或該“右簽名特殊詞串”中的任何一項(xiàng)上的這些結(jié)果根據(jù)其上出現(xiàn)它們的“錨清單”的總數(shù)來評(píng)定等級(jí)。關(guān)于從該“簽名特殊詞串”中導(dǎo)出的該“錨清單”上的出現(xiàn),可以提供用于該等級(jí)評(píng)定的額外加權(quán)。接下來,該查詢的這個(gè)未決定的部分和由上述等級(jí)評(píng)定生成的該語義相等物清單被翻譯成該目標(biāo)語言。通過使用本發(fā)明的平行文本數(shù)據(jù)庫建立器或該
技術(shù)領(lǐng)域:
中已知的其他翻譯設(shè)備,可以獲得這些翻譯。通過使用本發(fā)明的先前描述的多種語言手段實(shí)施例,可以改進(jìn)使用該
技術(shù)領(lǐng)域:
中已知的翻譯系統(tǒng)的結(jié)果。關(guān)于這些翻譯結(jié)果中的每個(gè)翻譯結(jié)果,該系統(tǒng)使用采用該目標(biāo)語言的文本數(shù)據(jù)庫來生成語義相等物清單。出現(xiàn)在用戶定義數(shù)量的清單(卻是這些清單中的至少兩個(gè)清單)上的任何目標(biāo)語言翻譯都被指定為該查詢的這個(gè)未決定部分的潛在翻譯。假如已知的翻譯設(shè)備有潛在的不準(zhǔn)確度,也可以為局部準(zhǔn)確性門限而檢查為該查詢的這個(gè)未決定部分產(chǎn)生的這些翻譯及其使用這些設(shè)備的語義相等物。例如,如果“使用基于規(guī)則的引擎來翻譯五詞詞串”產(chǎn)生過采用該目標(biāo)語言的五詞詞串翻譯,那么,可以為包括該翻譯中的用戶定義的最少數(shù)量的詞的、用戶定義數(shù)量的詞之間的任何詞串的語義相等物測試那個(gè)目標(biāo)語言詞串。作為用于使用ICFA或RCFA將文檔從一種語言翻譯成另一種語言的另一個(gè)實(shí)施例,涉及包括查詢的語義相等物及其連接的左和右簽名詞串。通過使用采用該源語言和目標(biāo)語言的這些清單、兩種語言之間的逐詞詞典和該雙重重疊技術(shù),可以實(shí)現(xiàn)各種語言之間的翻譯。徹底地說,該聯(lián)想數(shù)據(jù)庫建立技術(shù)涉及(i)采用按線性或有序的方式來加以組織的分組數(shù)據(jù)單元;(ii)將該數(shù)據(jù)組分成該整體的所有可能的鄰接子集;以及(iii)根據(jù)所有可能的分組數(shù)據(jù)單元內(nèi)的彼此的頻繁復(fù)現(xiàn)(通常是緊密的)接近度,來建立所有數(shù)據(jù)子集之間的關(guān)系。在CFA的該核心處,該系統(tǒng)為該用戶提供子集數(shù)據(jù)段之間的這些頻繁復(fù)現(xiàn)接近度關(guān)系,以幫助識(shí)別定義該“數(shù)據(jù)簽名”的某些復(fù)現(xiàn)模式,從而提供關(guān)于與那個(gè)一般的“數(shù)據(jù)簽名”有關(guān)的任何數(shù)據(jù)的概括信息。所以,在該數(shù)據(jù)庫創(chuàng)建和共同頻率分析中所使用的相同的技術(shù)可以被用來辨認(rèn)關(guān)于許多其他類型的數(shù)據(jù)挖掘、文本挖掘、目標(biāo)識(shí)別、以及要求模式識(shí)別的任何其他的應(yīng)用程序的模式。精通該
技術(shù)領(lǐng)域:
的人將會(huì)理解在不脫離本發(fā)明的精神和范圍的前提下,技能嫻熟的專業(yè)人員可以對(duì)上述裝置和方法進(jìn)行許多更改。附錄程序1<-..<?$exclude_eng=array(′it′,′its′,′a′,′is′,′was′,′for′,′do′,′of′,′s′,′the′,′and′,′to′,′in′,′if′,′or′,′that′,′this′,′inthe′,′are′,′ofthe′,′by′,′be′,′tothe′,′as′,′on′,′an′,′at′,′with′,′from′,′he′,′will′,′has′,′not′,′bythe′,′would′,′should′,′said′,′i′,′but′,′so′,′had′,′who′,′no′,′only′,′her′,′ofa′,′been′,′andthe′,′atthe′);$exclude_fre=array(′il′,′elle′,′son′,′sa′,′ses′,′un′,′une′,′est′,′etait′,′pour′,′faire′,′opA(c)rer′,′poser′,′de′,′le′,′la′,′les′,′et′,′A′,′en′,′si′,′que′,′qui′,′celui′,′ce′,′ces′,′cet′,′cettes′,′dansle′,′dansla′,′sont′,′dela′,′du′,′prA″sde′,′de′,′daprA″s′,′par′,′A|tre′,′Ala′,′au′,′aux′,′comme′,′si′,′enavant′,′sur′,′un′,′une′,′vers′,′avec′,′il′,′grA(c)′,′volontA(c)′,′devoir′,′A|treobligA(c)′,′disait′,′disais′,′disent′,′je′,′mais′,′si′,′ou′,′avait′,′avais′,′avaient′,′qui′,′que′,′non′,′seulement′,′elle′,′etle′,′etla′,′etles′,′des′,′dans′);$exclude_spa=array(′lo′,′ella′,′su′,′un′,′una′,′es′,′fue′,′fui′,′por′,′para′,′hacer′,′hacen′,′ellos′,′ellas′,′de′,′el′,′la′,′los′,′y′,′hasta′,′en′,′si′,′ese′,′que′,′aquello′,′aquella′,′este′,′esto′,′estA-′,′eres′,′son′,′del′,′cerca′,′allado′,′estar,′ser′,′al′,′como′,′encendido′,′un′,′arroba′,′con′,′desde′,′A(c)l′,′voluntad′,′tiene′,′hay′,′deber′,′dijo′,′yo′,′pero′,′sino′,′asA-,′tan′,′o′,′habA-a′,′quien′,′quiA(c)n′,′no′,′sA3lo′,′solamente′,′la′,′hasido′);$dir=″hebfre″;$dirdone=″hebfredone″;$lang=″.eng″;$olang=″.fre″;$table=″hebfre″;$languagecount=″langcount″;$language=″lang″;$olanguagecount=″olangcount″;$olanguage=″olang″;#$debug=″true″;functiongetmicrotime(){list($usec,$sec)=explode(″″,microtime());return((float)$usec+(float)$sec);}$allstart=getmicrotime();$fp=fopen(″/usr/local/apache/log.txt″,″w+″);fputs($fp,″starting″.date(″H:i:s″).″<BR>\n″);$filelist=file(″http//128.241.244.166/list.php?dir=$dir&lang=$lang″);#change$temp=implode(″″,$filelist);$list=strtolower(trim($temp));$mainarray=explode(″\n″,$list);sort($mainarray);reset($mainarray);$filearray=array();$calc=0;for($t=0;$t<count($mainarray);$t++)#count($mainarray)change{if(file_exsts(str_replace($lang,$olang,$mainarray[$t]))){$temp=$mainarray[$t];$temp1=file(″$mainarray[$t]″);unset($temp2);for($m=0;$m<count($temp1);$m++){if(strstr($temp1[$m],″....″))unset($temp1[$m]);$temp1[$m]=eregi_replace(″[[:space:]]+″,″″,strip_tags($temp1[$m]));$temp1[$m]=urldecode(str_replace(″&htab;″,″″,$temp1[$m]));if($temp1[$m]!=″″)$temp2.=$temp1[$m];}$filearray[″$temp″]=utf8_encode($temp2);#######$temp=str_replace($lang,$olang,$mainarray[$t]);$temp1=file(str_replace($lang,$olang,$mainarray[$t]));unset($temp2);for($m=0;$m<count($temp1);$m++){if(strstr($temp1[$m],″....″))unset($temp1[$m]);$temp1[$m]=eregi_replace(″[[:space:]]+″,″″,strip_tags($temp1[$m]));$temp1[$m]=urldecode(str_replace(″&htab;″,″″,$temp1[$m]));if($temp1[$m]?。健濉?$temp2.=$temp1[$m];}$filearray[″$temp″]=utf8_encode($temp2);}}fputs($fp,date(″H:i:s″).″<BR>doneloadingfilesintoarray.\n″);$addwords=″true″;$ctodo=count($mainarray);$t=0;for($t=0;$t<$ctodo;$t+++){if(file_exists(str_replace($lang,$olang,$mainarray[$t])))$filexist=″true″;elseunset($filexist);{$max=$m+count($tempmean);$ns=$m;$tolang=${$olang}.substr(${″temp″.$olang},strlen($tempomean.″″.$tempomean[1].″″.$tempomean[2]));$overlap=″true″;}else$tempmatch=″no″;}elseif(substr_count(${$olang},″″)==0&&$tcheckb==trim(substr(${$olang},1))){if(count($mean)+count($tempmean)-1>$max)#singlewordoverlap{$max=$m+count($tempmean);$ns=$m;$olangminus=substr(${″temp″.$olang},strlen(${$olang}));$tolang=${$olang}.″″.$olangminus;$overlap=″true″;}.}elseif(substr_count(${$olang},″″)==0&&substr_count(${″temp″.$olang},″″)==0)#englishoverlaphebrewonewordonly.{$max=$m+count($tempmean);$ns=$m;$tolang=${$olang}.″″.${″temp″.$olang};$overlap=″true″;}else{$tempmatch=″no″;}if($overlap==″true″){$mmean=explode(″″.$tempmean,${$lang});$to=count($mmean)-1;$ttos=count($mean)-1;if($mmean[$to]&&$to>0){$tcheck=substr(${″temp″.$lang},strlen($tempmean)+1);if(substr($tcheck,0,strlen(trim($mmean[$to])))==trim($mmean[$to]))#overlapping{$tlang=${$lang}.substr($tcheck,strlen(trim($mmean[$to])));}}elseif($mean[$ttos]==$tempmean&&$mean[$ttos]){$tlang=${$lang}.substr(${″temp″.$lang},strlen($tempmean));}else{print″BIGERROR″;exit;}}}$t++;}}if($overlap?。健錿rue″)$overlap=″false″;if($tempmax=$max&&$overlap?。健錿rue″)$max=0;$array=array(″s″=>″$s″,″mm″=>count($mean),″mean″=>$tlang,″tos″=>substr_count($tolang,″″),″osmean″=>$tolang,″max″=>″$max″,″tolang″=>″$tolang″,″overlap″=>″$overlap″,″longestolang″=>″$longestolang″);return$array;}functiontranslate($word,$lock,$tags,$baselang){global$id_t,$prefix_t,$dictionary_t;$baselang=″hebrew″;if(!$word)return;if($transeng==″true″){if(ereg(″[a-zA-Z]″,$word))return$word;}if($baselang==″hebrew″){$spaceit=″true″;$emailend=″·o,£.__.,□″;}if($baselang==″japanese″){$dictionary_t=″dictionaryjap″;$spaceit=″false″;}if($baselang==″chinesesim″){$dictionary_t=″dictionarychnsim″;$spaceit=″false″;}MYSQL_CONNECT(″216.205.78.138″,″nobody″)ordie(″can′tconnect″.MYSQL_ERROR());$word=trim($word);if((strstr($word,hebrev($id_t).″,″)||strstr($word,hebrev($id_t).″″)||substr($word,strlen($word)-strlen($id_t))==hebrev($id_t))&&isset($id_t)){$word=str_replace(hebrev($id_t),″″,$word);$systemsite=″true″;}if($word)##################www.something##################{######################if(strstr($word,″http://www.inhebrew.co.i1/nsia.html″)){$word=split(″=″,$word);$word=split(″&″,$word[1]);return$word;}######################if(strstr($word,″://″)){$temp=explode(″://″,$word);$address=$temp[1];}else$address=$word;$address=explode(″/″,$address);$addresscheck=$address;if(!ereg(″[a-zA-Z...-£]″,$addresscheck))$addresscheck=$address[1];if(ereg(″[a-zA-Z]″,$addresscheck)){$lang=″e(cuò)nglish″;$olang=$baselang;if(strtolower(substr($word,0,7))==″http://″){$word=substr($word,7);$pre=}if(strtolower(substr($word,0,8))==″https://″){$word=substr($word,8);$pre=}if(strtolower(substr($word,0,6))==″ftp://″){$word=substr($word,6);$pre=}}elseif($baselang==″hebrew″){$lang=″hebrew″;$olang=″e(cuò)nglish″;if(substr($word,0,8)==){$word=substr($word,8);$pre=″http://″;$upper=″true″;}elseif(substr($word,0,7)==){$word=substr($word,7);$pre=″http://″;}elseif(substr($word,0,9)==){$word=substr($word,9);$pre=″https://″;$upper=″true″;}elseif(substr($word,0,8)==){$word=substr($word,8);$pre=″https://″;}elseif(substr($word,0,7)==){$word=substr($word,7);$pre=″ftp://″;$upper=″true″;}elseif(substr($word,0,6)==){$word=substr($word,6);$pre=″ftp://″;}elseif(substr($word,0,1)==″*″){$word=substr($word,1);$upper=″true″;}}elseif($baselang==″japanese″){$lang=″japanese″;$olang=″e(cuò)nglish″;}elseif($baselang==″chinesesim″){$lang=″chinesesim″;$olang=″e(cuò)nglish″;}$s=0;$tempreplace=strtolower($word);while($s<strlen($tempreplace)){if(lereg(″[...-£a-zA-Z0-9\′\″]″,$tempreplace[$s])){$tempreplace=substr_replace($tempreplace,″$tempreplace[$s]″,$s,1);$s=$s+2;}$s++;}$tempreplace=eregi_replace(″[[:space:]]+″,″″,$tempreplace);$spaceaddress=explode(″″,$tempreplace);$s=0;unset($space);$color=″red″;$counts=count($spaceaddress);$query=″select$lang,$olangfrom$dictionary_twhere$lang=′$tempreplace_;$result=MYSQL(″minibush″,″$query″)ordie(″can′terror#0.1-′$query′″.MYSQL_ERROR());if(MYSQL_NUMROWS($result)>0){list(${$lang},${$olang})=MYSQL_FETCH_ROW($result);$space=${$olang};$counts=0;}while($counts>$s)#wordbetween..{$spaceaddress[$s]=trim($spaceaddress[$s]);if($tags==″true″){$open=″<fontcolor=\″$color\″>″;$close=″</font>″;if($color==″red″)$color=″blue″;else$color=″red″;}if(ereg(″[...-£a-zA-Z\′\″]″,$spaceaddress[$s])){unset($restofaddress);for($i=$s;$i<$counts;$i++)$restofaddress.=″″.$spaceaddress[$i];$restofaddress=trim($restofaddress);$query=″select$lang,$olangfrom$dictionary_twhere$lang=′$restofaddress_;$result=MYSQL(″minibush″,″$query″)ordie(″can′terror#0.2-′$query′_.MYSQL_ERROR());if(MYSQL_NUMROWS($result)==1){list(${$lang},${$olang})=MYSQL_FETCH_ROW($result);$space.=″″.$open.${$olang}.$close;$space=trim($space);$counts=0;}else{$n=$s+1;unset($nextwordmatch);if($spaceaddress[$n])$nextwordmatch=″$langlike_.str_replace(″%″,″″,$spaceaddress[$s]).″″.str_replace(″%″,″″,$spaceaddress[$n]).″%′or″;$query=″select$lang,$olangfrom$dictionary_twhere$nextwordmatch$lang=′$spaceaddress[$s]′and$olang<>″orderby$langdesc,length($lang),$olangdesc,length($olang)desc″;$result=MYSQL(″minibush″,″$query″″)ordie(″can′terror#1-′$query′″.MYSQL_ERROR());if($match==″yes″)unset($match);if((MYSQL_NUMROWS($result)>0)&&($match?。健錸o″)){$n=0;$maximum=0;$maximumr=0;unset($finals);unset($finalsr);unset($longestolang);unset($longestlang);while($n<MYSQL_NUMROWS($result))#&&($match!=″yes″)){list(${$lang},${$olang})=MYSQL_FETCH_ROW($result);$mean=explode(″″,${$lang});$osmean=explode(″″,${$olang});$tos=count($osmean)-1;$g=0;unset($match);while($g<count($mean)){if(($spaceaddress[$s+$g]==$mean[$g])&&($match!=″no″))$match=″yes″;else$match=″no″;$g++;}if($match==″yes″){if(strlen($longestolang)<strlen(${$olang}))$longestolang=${$olang};if(strlen($longestlang)<strlen(${$lang}))$longestlang=${$lang};unset($overlap);unset($max);$array=array();$array=overlap($s,1,${$lang},$tos,${$olang},$g,$dictionary_t,$lang,$olang,$spaceaddress,$longestolang);$max=$array[″max″];$tolang=$array[″tolang″];if($tolang)$wasok=″true″;while($array[″overlap″]?。健錰alse″&&count($spaceaddress)>$max){$array=overlap($array[″s″],$array[″mm″],trim($array[″mean″]),$array[″tos″],trim($array[″osmean″]),$g,$dictionary_t,$lang,$olang,$spaceaddress,$longestolang);if($array[″overlap″]==″true″){$max=$array[″max″];$tolang=$array[″tolang″];$wasok=″true″;}}if($max>$maximum&&$max>0){$maximum=$max;$finals=$tolang;}if($wasok?。健錿rue″){if(strlen(${$lang})>$maximumr){$maximumr=strlen(${$lang});$gr=$g;$finalsr=${$olang};}}}$n++;}if($wasok==″true″){$match=″true″;if(!strstr($finals,$longestolang)&&$maximum<=(substr_count(″″,$longestolang)+1)){#print″*″;if($s==0)$space=$space.$open.$longestolang.$close;else$space=$space.″″.$open.$longestolang.$close;$s=$s+substr_count($longestlang,″″)+1;}else{if($s==0)$space=$space.$open.$finals.$close;else$space=$space.″″.$open.$finals.$close;$s=$s+$maximum;}unset($maximum);unset($wasok);}elseif($finalsr)###testingnewthing,whathappenswhenapartialmachwasfound,(ieasomething,butaisnotinthesystem).{if($s==0)$space=$space.$open.$finalsr.$close;else$space=$space.″″.$open.$finalsr.$close;$s=$s+$gr,unset($maximumr);}else#stillistestphase.{if(ereg(″[a-zA-Z...-£]″,$spaceaddress[$s]))$space=$space.″″.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;else$spase=$space.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;$spaceaddress[$s]=substr($spaceaddress[$s],1);if(!$spaceaddress[$s]||$spaceaddress[$s]==″0″)$s++;unset($match);}}else{if(ereg(″[a-zA-Z...-£]″,$spaceaddress[$s]))$space=$space.″″.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;else$space=$space.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close$spaceaddress[$s]=substr($spaceaddress[$s],1);if(!$spaceaddress[$s]||$spaceaddress[$s]==″0″)$s++;unset($match);}if(!$spaceaddress[$s]||$spaceaddress[$s]==″0″)$s++;}}else{if(ereg(″[a-zA-Z...-£]″,$spaceaddress[$s])){$space=$space.″″.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;print″##″;}elseif(ereg(″[a-zA-Z...-£]″,$spaceaddress[($s-1)]))$space=$space.″″.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;else$space=$space.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;$spaceaddress[$s]=substr($spaceaddress[$s],1);$s++;unset($match);}}#endofwordbetween..$url.=$space;unset($temp);$count++;#nextword.if(strstr($word,″@″)){$revid=hebrev($id_t);if(strstr($url,″.″))$url=ereg_replace(″([a-zA-Z0-9/-/_/])@([a-zA-Z0-9/-/_/]*)([/,])″,″\\1.\\2@inhebrew.co.i1\\3″,″$url″);else$url=ereg_replace(″([a-zA-Z0-9/-/_/])@([a-zA-Z0-9/-/_/]*)″,″\\1.\\2@inhebrew.co.il″,$url);unset($systemsite);}if(strstr($word,″@inhebrew.co.i1″)){$revid=hebrev($id_t);$url=ereg_replace(″([...-£]).([/-/...-f/-/]*)@$emailend″,″\\1@\\2$revid″,$url);}if($systemsite==″true″&&!strstr(″$word″,″@″)){if($end)return″http://″.str_replace(″,″″,$end).″.inhebrew.co.i1/index.html?sub=″.substr($end,1);elsereturn″http://″.str_replace(″,″″,$url).″.inhebrew.co.il″;}if(ereg(″inhebrew.co.il/([a-zA-Z0-9/-]*)/index.html″,$word)&&!strstr($word,″inhebrew.co.il/sample/″)){$end=substr($end,1);if(strstr($end,″/″)){returneregi_replace(″[[:space:]]+″,″″,str_replace(″-″,″-″,str_replace(″@″,″@″,($end))));′}}returneregi_replace(″[[:space:]]+″,″″,str_replace(″-,″-″,str_replace(″@″,″@″,$url)));.}}?>????FootnotecontinuedfrompreviouspageFootnotecontinuedonnextpage程序4<prelisting-type="program-listing"><![CDATA[>packageBrain;>>importjava.sql.*;>importjava.util.Vector;>importjava.util.Hashtable;>importjava.util.Map;>importjava.util.Comparator;>importjava.util.Arrays;>importjava.util.StringTokenizer;>>/**>*@authorNischala>*@version>*/>publicclassPhraseCollectBean{>>privateintmaxResults;>privateStringreqPhrase1;>privateStringreqPhrase2;>privateStringreqPhrase3;>privateStringreqPhrase4;>privateintstartSelCount;>privateintendSelCount;>privateintstartMinWords;>privateintendMinWords;>privatebooleanisContentCreated=false;>>privateVectorstartPhrs;>privateVectorendPhrs;>privateHashtablestMidPhrs=newHashtable(10);>privateHashtableenMidPhrs=newHashtable(10);>privateHashtableuniqStPhrs=newHashtable(10);>privateHashtableuniqEnPhrs=newHashtable(10);>>>privateConnectiondbConnection=null;>>/**CreatesnewPhraseCollectBean>*andinitiaslizeit′spropertiestodefaultvalues>*/>publicPhraseCollectBean(){print″filee=$filexist-$mainarray[$t]\n″;if($debug==″true″)$filexist=″true″;if($filexist==″true″){if($mainarray[$t]&&$debug?。健錿rue″){system(″mv$mainarray[$t]/usr/local/apache/$dirdone/″.str_replace(″/usr/local/apache/$dir/″,″″,$mainarray[$t]));svstem(″mv″.str_replace($lang,$olang,$mainarray[$t]).″/usr/local/apache/$dirdone/″.str_replace($lang,$olang,str_replace(″/usr/local/apache/$dir/″,″″,$mainarray[$t]))); } $lng=$filearray[$mainarray[$t]]; $olng=$filearray[str_replace($lang,$olang,$mainarray[$t])]; $lngs=explode(″″,$lng); for($i=0;$i<count($lngs);$i++) { if(!ereg(″[^a-zA-Z]″,$lngs[$i]))$lngs[$i]=strtolower($lngs[$i]); }$olngs=explode(″″,$olng);for($i=0;$i<count($olngs);$i++) { if(!ereg(″[^a-zA-Z]″,$olngs[$i]))$olngs[$i]=strtolower($olngs[$i]); }$sume=count($lngs);$sumh=count($olngs);if($sume>$sumh){$margin=round($sume/($sume-$sumh));$action=″add″;}elseif($sumh>$sume){$margin=(round($sumh/($sumh-$sume)));$action=″sub″;}else{$margin=1;$action=″sub″;}$number=count($lngs);for($j=$t+1;$j<$ctodo;$j++)#mainloop,rotatebetweenthefilestobechecked. { if(file_exists(str_replace($lang,$olang,$mainarray[$j])))#checkfilenamematch. {$file_start=getmicrotime(); unset($array); $array=array(); $lngtp=$filearray[$mainarray[$j]]; $olngtp=$filearray[str_replace($lang,$olang,$mainarray[$j])]; $lngstp=explode(″″,$lngtp); for($i=0;$i<count($lngstp);$i++) { if(!ereg(″[^a-zA-Z]″,$lngstp[$i]))$lngstp[$i]=strtolower($lngstp[$i]); } $olngstp=explode(″″,$olngtp);>}>>publicString[]getPhrases(){>String[]arr={reqPhrase1,reqPhrase2,reqPhrase3,reqPhrase4};>returnarr;>}>>publicvoidsetMaxResults(intx){>maxResults=x;>}>>publicvoidsetReqPhrase1(Stringx){>reqPhrase1=x;>//System.out.println(″Newvalue-Ibeingset..″);>}>>publicvoidsetReqPhrase2(Stringx){>reqPhrase2=x;>//System.out.println(″Newvalue-IIbeingset..″);>}>>publicvoidsetReqPhrase3(Stringx){>reqPhrase3=x;>//System.out.println(″Newvalues-IIIbeingset..″);>}>>publicvoidsetReqPhrase4(Stringx){>reqPhrase4=x;>//System.out.println(″Newvalues-IVbeingset.″);>}>>publicvoidsetStartSelCount(intx){>startSelCount=x;>}>>publicvoidsetEndSelCount(intx){>endSelCount=x;>}>>publicvoidsetStartMinWords(intx){>startMinWords=x;>}>>publicvoidsetEndMinWords(intx){>endMinWords=x;>}>privateintgetPhraseId(Stringphr){>if(phr==null)phr=″″;>try{>if(!(phr==″″)){>returnnewPhrase(phr).getId();>}elsereturn0;>}catch(Exceptione){>System.out.println(″ExceptionwhilegettingthephraseIDfrom>Brain.Phrase(PhraseCollectBean.getPhraseId)″+e);>errors=″ExceptionwhilegettingthephraseIDfrom>Brain.Phrase(PhraseCollectBean.getPhraseId)″+e;>return0;>}>}>>privateMap.Entry[]sortByValue(Hashtableht){>java.util.Setset=ht.entrySet();>Map.Entry[]entries=(Map.Entry[])set.toArray(new>Map.Entry[set.size()]);>Arrays.sort(entries,newComparator(){>publicintcompare(Objecto1,Objecto2){>Objectobj1=((Map.Entry)o1).getValue();>Objectobj2=((Map.Entry)o2).getValue();>return((Comparable)obj2).compareTeo(obj1);>}>});>returnentries;>}>>publicStringgetAssocByJoins(){>logMsg=″″;>errors=″″;>PreparedStatementp2Stmt,p1Stmt;>ResultSetp2Result=null,p1Result=null;>stMidPhrs.clear();>enMidPhrs.clear();>uniqStPhrs.clear();>uniqEnPhrs.clear();>StringBufferresultStr=newStringBuffer(″″);>StringrelativeResult=″″;>startPhrs=newVector(startSelCount);>endPhrs=newVector(endSelCount);>>ConnectiondbConnection=null;>>intpid=0;>String[]phrases=getPhrases();>StringinQry=″″;>for(inti=0;i″);>resultStr.append(″″+i+″″);>resultStr.append(″″+plcnt+″″);>StringtempSt=p1Pr,>if((st=startMinWords)){>intp1id=getPhraseld(p1Pr);>if(p1id!=0){>startPhrs.addElement(″″+p1id);>st++;>resultStr.append(″″+p1Pr>+″″);>}>}else{>resultStr.append(″″+p1Pr+″″);>}>resultStr.append(″″+(String)stMidPhrs.get(p1Pr)+>″″);>resultStr.append(″″);>resultStr.append(″″+(String)enMidPhrs.get(p2Pr)+>″″);>>StringtemoEn=p2Pr;>if((en=endMinWords)){>intp2id=getPhraseId(p2Pr);>if(p2id!=0){>endPhrs.addElement(″″+p2id);>en++;>resultStr.append(″″+p2Pr>+″″);>}>}else{>resultStr.append(″″+p2Pr+″″);>}>resultStr.append(″″+p2cnt+″″);>resultStr.append(″n″);>i++;>}>m++;>}>>if(i>1){>createAssignedBin();>createDataBin(stEntries,enEntries,stMidPhrs,enMidPhrs);>isContentCreated=false;>}>/**/>}catch(Exceptione){>resultStr.append(″Exceptionwhileretrievingtheresults>(PhraseCollectBean.getAssocByJoins)″+e+″.Checkthelogforerrors″);>//System.out.println(″Exceptionwhileretrievingtheresults>(PhraseCollectBean.getAssocByJoins)″+e);>errors+=″Exceptionwhileretrievingtheresults>(PhraseCollectBean.getAssocByJoins)″+e;>e.printStackTrace();>}>returnresultStr.toString();>}>>publicStringgetRelatives(intmaxShow){>errors=″″;>logMsg=″″;>Stringstr1=″″,str2=″″,str3=″″;>PreparedStatementp1RelStmt=null;>intnewScore=0;>HashtableuniqMidPhrs=newHashtable();>Hashtablephr1Ids=newHashtable();>Hashtablephr2Ids=newHashtable();>StringBufferrelResultStr=new>StringBuffer(″CommonPhrasesbinsurrondingrelativelycommonmiddlephrase>S.NOTotalScorephrase2″);>intsno=1;>>try{>if(dbConnection==null){>//System.out.println(″DBConnisNullingetRelatives!″);>dbCnnection=Brain.getDBConnection();>}>}catch(Exceptione){>//System.out.println(″Exceptionwhilegettingconnectionfrom>Brain″+e);>}>>if((startPhrs==null)||(startPhrs.size()==0)||(endPhrs==>null)||(endPhrs.size()==0))returnrelResultStr.toString();>StringstartCond=″(″;>for(inti=0;i″+sno+″″);>StringwinName=″newwin″+m;>relResultStr.append(″″+phrScore+″″+phrKey+″″);>sno++;>}>//System.out.println(″ISContentCreated??″+>isContentCreated);>if((!isContentCreated)&&(maxShow?。?0)&&(sno>1)){>createContentBin(entries);>}>}catch(Exceptione){>//System.out.println(″Exceptionwhileexecutingquery″+e);>}>returnrelResultStr.toString()+″″;>}>>privatevoidcreateAssignedBin(){>if(!assignedHash.isEmpty())assignedHash.clear();>assignedHash.put(″maxRes″,newInteger(maxResults));>StringphraseStr=″″;>String[]array=getPhrasse();>for(inti=0;iGalshandeliverstheentireInternetinHebrew.GetaHebrewe-mailaddress(andfreewebmailservice).WanttosurftheWebinHebrew?DownloadGalshan′sbrowserbar.for($i=0;$i<count($olngstp);$i++) { if(!ereg(″[^a-zA-Z]″,$olngstp[$i]))$olngstp[$i]=strtolower($olngstp[$i]); } $sumetp=count($lngstp); $sumhtp=count($olngstp); if($sumetp>$sumhtp){$margintp=round($sumetp/($sumetp-$sumhtp));$action=″add″;} elseif($sumhtp<$sumetp){$margintp=(round($sumhtp/($sumhtp-$sumetp)));$action=″sub″;} else{$margintp=1;$action=″add″;} $numbertp=count($olngstp); if($debug==″true″)printdate(″H-i-s″).″<BR>\n″; for($i=0;$i<$number;$i++)#mainloop,coverseveryspace. { if($t==$j)$ni=$i+1; else$ni=0; for($n=$ni;$n<$numbertp;$n++) { unset($thesameh); $p=0; unset($theb);$langstart=getmicrotime(); while($p<15&&$lngs[$i+$p]==$lngstp[$n+$p]&&$lngstp[$n+$p]?。健濉?#checkifthe$nwordsmatch. { $theb.=$lngs[$i+$p].″″; $theb1=trim($theb); if(!ereg(″[`~!@#$%^&*()<>_+=-?.,;∧]″,$theb1)&&!ereg(″″,substr($theb1,0,1))&&!ereg(″^*$″,$theb1) &&$theb1?。健濉?amp;amp;&substr($theb1,0,1)!=″-″&&!ereg(″″,substr($theb1,-1)) &&substr($theb1,-1)!=″-″&&substr($theb1,0,1)?。健錩&&substr($theb1,-1)?。健錩 &&$theb1!=″_&&$theb1?。健濉?amp;amp;&!in_array($theb1,$exclude_eng)) { $temp=$array[$theb1][″hebrew_c″]; if(!$temp)#new,welcome { $array[$theb1][″hebrew_c″]=″,$i,″; } elseif(!strstr($temp,″,$i,″))#new,welcome { $array[$theb1][″hebrew_c″]=$temp.″$i,″; } $extra=floor($i/$margin);if($action==″add″){$extrasm=$i+$extra-45;$extralg=$i+$extra+45; } elseif($action==″sub″){$extrasm=$i-$extra-45;$extralg=$i-$extra+ 45;} if($extrasm<0)$extrasm=0; if($extralg>$sumh)$extralg=$sumh; $olangstart=getmicrotime(); for($e=$extrasm;$e<$extralg;$e++) { $extran=floor($n/$margintp); if($action==″add″){$bot=$n+$extran-45;$top=$n+$extran+45;} elseif($action==″sub″){$bot=$n-$extran-45;$top=$n-$extran+45;} if($bot<0)$bot=0; if($top>$sumhtp)$top=$sumhtp; unset($tbc); for($x=$bot;$x<$top;$x++)#checktheenglish,10backand10forward. { unset($teng); if(($t==$j&&$x>$e)||$t!=$j)#$n>$e&& { $a=0; while($olngs[$e+$a]=$olngstp[$x+$a]&&$olngs[$e+$a]?。健濉? { $teng.=″″.$olngs[$e+$a];. $teng=trim($teng); if(!ereg(″[`~!@#$%^&*()_+=-?.,;∧]″,$teng)&&!ereg(″″,substr($teng,0,1))&&!ereg(″^*$″,$teng) &&$teng?。健濉?amp;amp;&substr($teng,0,1)!=″-″&&!ereg(″″,substr($teng,-1)) &&substr($teng,-1)?。健?″&&substr($teng,0,1)!=″_&&substr($teng,-1)!=″_ &&$teng?。健錩&&$teng!=_&&!in_array($teng,$exclude_fre)) { $temparray=array_keys($array[$theb1]); if(in_array($teng,$temparray)) { $temp=$array[$theb1][$teng]; if(!strstr(″$temp″,″,$x,″))#&&!strstr(″$temp1″,″,$e,″)) { $array[$theb1][$teng]=$temp.″$x,″; } } else { $array[$theb1][$teng]=″,$x,″; }} $a++; }#endofwhileloop } }#endofforloop. }#endofnewloop$olangend=getmicrotime();$time1=$olangend-$olangstart;#fputs($fp,″Frenchwordnumber$nof$numbertptook$time1\n″); }#endupto5hebrewtogether. $p++; }#endofwhileloop$p<15$langend=getmicrotime();$time2=$langend-$langstart;#fputs($fp,″Englishwordnumber$iof$numbertook$time2\n″); } } if(count($array)>0) {$dbstart=getmicrotime(); $stream=MYSQL_CONNECT(″127.0.0.1″,″root″); $tempheb=array_keys($array); for($i=0;$i<count($tempheb);$i++) { $lng=$tempheb[$i]; if(substr_count($array[$lng][″hebrew_c″],″,″)-1>0) { $lngc=substr_count($array[$lng][″hebrew_c″],″,″)-1; $tempolng=array_keys($array[$lng]); $n=1; while($n<count($tempohg)&&count($tempolng)>1) { $olng=$tempolng[$n]; $olngc=substr_count($array[$lng][$olng],″,″)-1; $query=″update$tablesettotal=total+1,$languagecount=$languagecount+$lngc,$olanguagecount=$olanguagecount+$olngc,article=concat(article,\″,$mainarray[$j]\″)where(articlenotlike′%$mainarray[$j]%′and$language=_.addslashes($lng)._and$olanguage=_.addslashes($olng)._)″; MYSQL(″brain″,$query,$stream)ordie(″#2Can′t$query″.MYSQL_ERROR()); $num=MYSQL_AFFECTED_ROWS($stream); if($num==0) { $query=″insertignoreinto$tablevalues(\″NULL\″,\″1\″,_.addslashes($lng).″,″.addslashes($olng)._,\″″.addslashes($lng).″\″,\″$lngc\″,\″″.addslashes($olng).″\″,\″$olngc\″,\″$mainarray[$j]\″)″;MYSQL(″brain″,$query,$stream)ordie(″#3Can′t$query″.MYSQL_ERROR()); } $n++; } } } MYSQL_CLOSE($stream);$dbend=getmicrotime();$time=$dbend-$dbstart;fputs($fp,″dbtook$time\n″); }$file_end=getmicrotime();}}}}$allend=getmicrotime();$time=$allend-$allstart;fputs($fp,″thewholeshittook$time\n″);fputs($fp,″final″.date(″Y-m-dH:i:s″).″-$calc-<BR>\n″);fclose($fp);?>????FootnotecontinuedfrompreviouspageFootnotecontinuedonnextpage]]></pre>程序2<prelisting-type="program-listing"><![CDATA[<?$word=″unitednations″;$engspa_t=″e(cuò)ngspa″;$engfre_t=″hebfre″;$frespa_t=″frespa″;$c=1;MYSQL_CONNECT(″128.241.244.166″,″root″);$query=″selecttotal,lang,langcount,olang,olangcountfrom$engfre_twhereolang=′$word_;$result=MYSQL(″brain″,$query)ordie(″Error#1-$query-″.MYSQL_ERROR());$query1=″selectlangfrom$engspa_twhereolang=′$word_;$result1=MYSQL(″brain″,$query1)ordie(″Error#2-$query1-″.MYSQL_ERROR());for($i=0;$i<MYSQL_NUM_ROWS($result1);$i++){list($lang)=MYSQL_FETCH_ROW($result1);$in.=″,_.addslashes($lang).″_;}$in=substr($in,1);$num=MYSQL_NUM_ROWS($result);print″$in<BR><BR>\n″;for($i=0;$i<$num;$i++){list($total,$lang,$langc,$olang,$olangc)=MYSQL_FETCH_ROW($result);print″$lang,″;$query2=″selectcidfrom$frespa_twhereolang=_.addslashes($lang)._andlangin($in)″;$result2=MYSQL(″brain″,$query2)ordie(″Error#3-$query2-″MYSQL_ERROR());if(MYSQL_NUM_ROWS($result2)>0){$res.=″$i-$total,$lang,$langc,$olang,$olangc<BR>\n″;$c++;}}print″<BR><BR>$res″;print″$c/″.MYSQL_NUM_ROWS($result);?>????FootnotecontinuedfrompreviouspageFootnotecontinuedonnextpage]]></pre>程序3<prelisting-type="program-listing"><![CDATA[<?functionconvert($what,$olang){if($what==″_)$what=″\_;if($what==″\\″)return;$query=″selectsletterfrom″.$olang.″letterwherefletter=′$what_;$result=MYSQL(″minibush″,″$query″)ordie(″*$what*-error#1$query-″.MYSQL_ERROR());if(MYSQL_NUMROWS($result)>0){list($sletter)=MYSQL_FETCH_ROW($result);return$sletter;}elsereturnstripslashes($what);}!functionoverlap($s,$mm,$mean,$tos,$osmean,$max,$dictionary_t,$lang,$olang,$spaceaddress,$longestolang){$tempmax=$max;${$olang}=$osmean;${$lang}=$mean;$mean=explode(″″,$mean);$osmean=explode(″″,$osmean);for($m=$mm;$m<count($mean);$m++){unset($string);for($l=$m;$l<count($mean);$l++)$string.=$mean[$l].″″;$sm=$s+count($mean);unset($nextwordmatch);if($spaceaddress[$sm+1])$nextwordmatch=″$langlike_.str_replace(″%″,″″,trim($string.$spaceaddress[$sm])).″%′or″;$query1=″select$lang,$olanngfrom$dictionary_twhere$nextwordmatch$lang=_.str_replace(″%″,″″,trim($string.$spaceaddress[$sm]))._and$olang<>″orderby$langdesc,length($lang),$olangdesc,length($olang)desc″;$result1=MYSQL(″minibush″,″$querv1″)ordie(″can′terror#2-′$query1′″.MYSQL_ERROR());$t=0;while($t<MYSQL_NUMROWS($result1))#&&$tempmatch?。健鍄es″){list(${″temp″.$lang},${″temp″.$olang})=MYSQL_FETCH_ROW($result1);$tempmean=explode(″″,${″temp″.$lang});$tempomean=explode(″″,${″temp″.$olang});$tg=$m;$un=0; unset($tempmatch); while($tg<count($tempmean)+$m) { if(($spaceaddress[$s+$tg]==$tempmean[$tm])&&($tempmatch?。健錸o″)) $tempmatch=″yes″; else$tempmatch=″no″; $tg++; $tm++; } if($tempmatch==″yes″&&substr_count($longestresult,″″)<=substr_count(${″temp″.$lang},″″))#checksifthenewoverlapismatchingthetranslationrequest. { $longestresult=${″temp″.$lang}; $omean=explode($tempomean,${$olang}); $to=count($omean)-1; $tcheckb=substr(${″temp″.$olang},0,strlen($tempomean)); if($osmean[$tos]=$tempomean&&isset($osmean[$tos])) { if(count($mean)+count($tempmean)-1>$max)#singlewordoverlap { $max=$m+count($tempmean); $ns=$m; $tolang=${$olang}.substr(${″temp″.$olang},strlen($tempomean)); $overlap=″true″; } else$tempmatch=″no″; } elseif($osmean[($tos-1)]==$tempomean&&$osmean[$tos]=$tempomean[1]&&isset($osmean[($tos-1)])) { if(count($mean)+count($tempmean)-1>$max)#singlewordoverlap { $max=$m+count($tempmean); $ns=$m; $tolang=${$olang}.substr(${″temp″.$olang},strlen($tempomean.″″.$tempomean[1])); $overlap=″true″; } else$tempmatch=″no″; } elseif($osmean[($tos-2)]=$tempomean&&$osmean[($tos-1)]==$tempomean[1]&&$osmean[$tos]==$tempomean[2]&&isset($osmean[($tos-2)])) { if(count($mean)+count($tempmean)-1>$max)#singlewordoverlapMYSQL(″brain″,$query,$stream)ordie(″#3Can′t$query″.MYSQL_ERROR()); } $n++; } } } MYSQL_CLOSE($stream);$dbend=getmicrotime();$time=$dbend-$dbstart;fputs($fp,″dbtook$time\n″); } $file_end=getmicrotime();}}}}$allend=getmicrotime();$time=$allend-$allstart;fputs($fp,″thewholeshittook$time\n″);fputs($fp,″final:″.date(″Y-m-dH:i:s″).″-$calc-\n″);fclose($fp);?>????FootnotecontinuedfrompreviouspageFootnotecontinuedonnextpage]]></pre>權(quán)利要求1.一種用于使采用某種語言的詞和詞串發(fā)生聯(lián)系的方法,其特征在于包括提供文檔的收集,其中,所述收集至少包括一個(gè)文檔;從用戶那里接收將要被分析的詞或詞串查詢;在所述文檔的收集中搜索將要被分析的該查詢,并且返回包含將要被分析的該查詢的文檔;根據(jù)其頻率來確定在所述被返回的文檔中的將要被分析的所述查詢左邊的用戶定義數(shù)量的詞或詞串或兩者,并且創(chuàng)建“左簽名清單”,它包括在所述被返回的文檔中的將要被分析的所述查詢左邊的所述詞或詞串;確定在包括所述“左簽名清單”的所述詞或詞串右邊的用戶定義數(shù)量的詞或詞串或兩者,并且根據(jù)文檔的收集中的其頻率來創(chuàng)建“左錨清單”,它們包括在所述“左簽名清單”右邊的所述詞或詞串;確定在所述被返回的文檔中的將要被分析的所述查詢右邊的用戶定義數(shù)量的詞或詞串或兩者,并且根據(jù)其頻率來創(chuàng)建“右簽名清單”,它包括在所述被返回的文檔中的將要被分析的所述查詢右邊的所述詞或詞串;確定在包括所述“右簽名清單”的所述詞或詞串左邊的用戶定義數(shù)量的詞或詞串或兩者,并且根據(jù)其頻率來創(chuàng)建“右錨清單”,它們包括在所述“右簽名清單”左邊的所述詞或詞串;以及,根據(jù)出現(xiàn)在所述“左錨清單”中的每個(gè)詞或詞串的頻率、以及出現(xiàn)在所述“右錨清單”中的每個(gè)詞或詞串的頻率,來為結(jié)果評(píng)定等級(jí)。2.如權(quán)利要求1的方法,其特征在于,為結(jié)果評(píng)定等級(jí)包括將出現(xiàn)在所述“左錨清單”中的每個(gè)詞或詞串的總頻率乘以出現(xiàn)在所述“右錨清單”中的每個(gè)詞或詞串的總頻率。3.如權(quán)利要求1的方法,其特征在于,為結(jié)果評(píng)定等級(jí)包括關(guān)于出現(xiàn)在該“左錨清單”和該“右錨清單”中的每個(gè)詞或詞串,將出現(xiàn)在所述“左錨清單”中的每個(gè)詞或詞串的總頻率加入出現(xiàn)在所述“右錨清單”中的所述詞或詞串的總頻率。4.一種用于使采用某種語言的詞和詞串發(fā)生聯(lián)系的方法,其特征在于包括提供文檔的收集,其中,所述收集至少包括一個(gè)文檔;從用戶那里接收將要被分析的詞或詞串查詢;在所述文檔的收集中搜索將要被分析的該查詢,并且返回包含將要被分析的該查詢的文檔;確定在包含將要被分析的該查詢的所述被返回文檔中的該查詢左邊和右邊的用戶定義數(shù)量和大小的詞或詞串或兩者;返回具有一個(gè)或多個(gè)項(xiàng)目的清單,其中,所述這個(gè)項(xiàng)目或所述多個(gè)項(xiàng)目包含在所述被返回文檔中的該查詢左邊和右邊的所述被確定數(shù)量的詞;在所述文檔的收集中搜索所述被返回清單中的所述這個(gè)項(xiàng)目或多個(gè)項(xiàng)目;以及,返回最頻繁地出現(xiàn)在所述被返回文檔中的所述查詢左邊和右邊的所述被確定數(shù)量的詞之間的詞或詞串或兩者的清單。全文摘要一種用于創(chuàng)建和使用交叉想法聯(lián)想數(shù)據(jù)庫(圖1)的方法,它包括一種方法,用于通過分析詞或詞串周圍的構(gòu)詞法,以識(shí)別在語義上相等或接近相等的其他詞或詞串,來使采用某種語言的詞和詞串聯(lián)系起來。一種用于使詞和詞串聯(lián)系起來的方法包括利用用戶供應(yīng)的詞或詞串輸入設(shè)備210來查詢文檔的收集;確定在該查詢?cè)~串左邊和右邊的用戶定義數(shù)量的詞或詞串;確定位于該查詢?cè)~串的左邊和右邊的詞或詞串的出現(xiàn)頻率;以及,為這些被定位的詞評(píng)定等級(jí)。文檔編號(hào)G06F17/30GK1672149SQ03818319公開日2005年9月21日申請(qǐng)日期2003年1月29日優(yōu)先權(quán)日2002年5月31日發(fā)明者埃里·阿博申請(qǐng)人:埃里·阿博