為電子表格將自然語言描述轉換為因因域而異而異的語言的程序的制作方法
【專利說明】為電子表格將自然語言描述轉換為因因域而異而異的語言 的程序
[0001] 背景
[0002] 電子表格是在許多計算設備上找得到的常用軟件工具。電子表格允許用戶以表的 形式來組織信息。表包括以表的行和列排列的各個數據單元格。每一單元格可包含各種類 型的數據。
[0003] 公式或程序通過對電子表格數據運行特定的運算來自動地生成結果。例如,使用 求和運算符來對一列或一行數值中的所有值求和。另外,電子表格還基于電子表格數據來 提供圖形工具,諸如圖表。圓餅圖、直方圖、曲線圖等等根據由電子表格軟件調用的公式或 程序來生成。
[0004] 盡管公式或程序有用,但是許多電子表格用戶卻不能有效地使用這些工具。許多 用戶缺乏編寫程序的專業(yè)技能,或者可能被技術嚇倒。
【發(fā)明內容】
[0005] 下面呈現(xiàn)了本發(fā)明的概要,以便提供此處所描述的某些方面的基本概念。此概要 不是所要求保護的主題的詳盡的概述。既不旨在指出所要求保護的主題的關鍵性元素,也 沒有描述本發(fā)明的范圍。其唯一的目的是以簡化形式呈現(xiàn)所要求保護的主題的某些概念, 作為稍后呈現(xiàn)的比較詳細的描述的前序。
[0006] 所要求保護的主題提供了用于電子表格的將自然語言描述轉換為因域而異的語 言的程序的方法。方法包括生成電子表格的模型。模型包括對每一列的列描述,以及與每 一列相關聯(lián)的一個或多個類型。該方法還包括基于刪除禁用詞以及將與列名稱或數據值匹 配的部分描述替換為特定參數來對標準化基于模型的描述進行標準化。該方法涉及以交錯 的、自下而上方式以及動態(tài)編程樣式應用基于規(guī)則的轉換以及關鍵字/基于類型的程序合 成,其中短語被按它們的長度的遞增順序映射到子程序。規(guī)則描述了如何將特定的部分自 然語言短語映射到部分子程序。此外,該方法還包括生成若干個潛在的程序,并根據它們的 預期的可能性對這些程序進行排序。
[0007] 另外,所要求保護的主題還包括計算機可讀取的存儲介質。計算機可讀取的存儲 介質包括被配置成指不處理器生成電子表格的模型的代碼。模型包括針對電子表格的每一 列的列描述,以及與每一列相關聯(lián)的一個或多個類型。進一步,生成因域而異的描述的若干 個潛在的程序。因域而異的描述包括一個或多個子表達式。基于多個程序的多個規(guī)則,將因 域而異的描述與程序相關聯(lián)。規(guī)則將多個因域而異的描述與多個程序中的每一個相關聯(lián)。 另外,還基于一個潛在的解釋與程序相關聯(lián)的可能性來呈現(xiàn)潛在的解釋中的第一解釋。進 一步,與對一個或多個列的選擇相關聯(lián)地呈現(xiàn)程序的結果,其中列與子表達式相關聯(lián),并且 結果基于列。
[0008] 下面的描述和附圖詳細地闡述了所要求保護的主題的某些說明性方面。然而,這 些方面只是表示可以使用本發(fā)明的原理的各種方式中的一些方式,并且所要求保護的主題 旨在包括所有這些方面和等效內容。通過與附圖一起閱讀下面的本發(fā)明的詳細描述,所要 求保護的主題的其他優(yōu)點和新穎的特點將變得顯而易見。
[0009] 附圖簡述
[0010] 圖1是根據所要求保護的主題的示例性電子表格;
[0011] 圖2是根據所要求保護的主題操作的將自然語言描述轉換為基礎因域而異的語 言的表達式或程序的電子表格程序;
[0012] 圖3是根據所要求保護的主題的用于將描述轉換為程序的方法的流程圖;
[0013] 圖4是根據所要求保護的主題的電子表格的示例模型;
[0014] 圖5是根據所要求保護的主題的用于將自然語言描述轉換為程序的方法的流程 圖;
[0015] 圖6是根據所要求保護的主題的用于將自然語言描述轉換為程序的示例用戶界 面的框圖;
[0016] 圖7是根據所要求保護的主題的用于將自然語言描述轉換為底層的因域而異的 語言的程序的示例用戶界面的框圖;
[0017] 圖8是其中可以使用所要求保護的主題的各方面的示例性網絡環(huán)境的框圖;以及
[0018] 圖9是用于實現(xiàn)所要求保護的主題的各方面的示例性運算環(huán)境的框圖。
【具體實施方式】
[0019] 現(xiàn)在參考附圖來描述所要求保護的主題,所有附圖中使用相同的附圖標記來指代 相同的元素。在以下描述中,為解釋起見,闡明了眾多具體細節(jié)以提供對本發(fā)明的全面理 解。然而,很明顯,所要求保護的主題可以在沒有這些具體細節(jié)的情況下實施。在其他情況 下,以框圖形式示出了各個已知的結構和設備以便于描述本發(fā)明。
[0020] 如此處所使用的,術語"組件"、"系統(tǒng)"、"客戶端"等等旨在表示計算機相關的實 體,其可以是硬件、軟件(例如,在執(zhí)行中)、固件、或其結合。例如,組件可以是,在處理器上 運行的進程、對象、可執(zhí)行碼、程序、函數、庫、子例程,計算機,或軟件和硬件的組合。
[0021] 作為說明,在服務器上運行的應用和該服務器兩者都可以是組件。一個或多個組 件可以駐留在進程中,組件可以位于一個計算機內和/或分布在兩個或更多計算機之間。 術語"處理器"一般被理解為是指諸如計算機系統(tǒng)的處理單元之類的硬件組件。
[0022] 此外,所要求保護的主題可以使用產生控制計算機以實現(xiàn)所公開的主題的軟件、 固件、硬件或其任意組合的標準編程和/或工程技術而被實現(xiàn)為方法、裝置或制品。在此使 用的術語"制品"旨在涵蓋可以從任何計算機可讀設備、介質訪問的計算機程序。
[0023] 計算機可讀存儲介質可以包括,但不限于磁存儲設備(例如,硬盤、軟盤、以及磁 帶,等等_)、光盤(例如,緊致盤(CD)、以及數字多功能盤(DVD),等等)、智能卡,以及閃存 設備(例如,卡、棒、鑰匙驅動器,等等_)。相比之下,計算機可讀介質一般(即,不一定,存 儲介質)可以另外包括通信介質,諸如用于無線信號的傳輸介質等等。
[0024] 當然,本域的技術人員將會認識到,在不背離所要求保護的主題的范圍或精神的 前提下可以對這一配置進行許多修改。此外,在此使用詞語"示例性"意指用作示例、實例 或說明。本文中被描述為"示例性"的任何方面或設計不一定被解釋為優(yōu)選于或更優(yōu)于其 他方面或設計。
[0025] 所要求保護的主題的一個實施例允許用戶提供自然語言描述以在電子表格中加 入表達式。該描述使用因域而異的語言。以此方式,用戶可以通過使用屬于因域而異的語言 的眾多關鍵字中的任何一個來引用表達式的單一程序。例如,在財務域,用于執(zhí)行求和運算 的關鍵字可包括:總計、相加、或求和。如此,用戶可以通過使用這些關鍵字中的任何一個, 并指定程序可以對其運算的合適的單元格,來引用執(zhí)行求和運算的程序。
[0026] 圖1是根據所要求保護的主題的示例性電子表格100。電子表格100包含描述每 一行104中的數據的列102。在所要求保護的主題的一個實施例中,用戶可以點擊單元格 106,并提供任務或程序的自然語言描述108。電子表格軟件提供對描述108的反饋,給用戶 與對描述108的改正、或其他可能的修改有關的信息。
[0027] 在一個實施例中,使用自下而上的動態(tài)編程過程來執(zhí)行描述轉換。此過程(以任 意方式)將規(guī)則驅動的轉換和關鍵字驅動的合成過程進行組合。規(guī)則驅動的轉換是精準 的,但是對用戶表達描述108的方式敏感。關鍵字驅動的合成過程沒有規(guī)則驅動的轉換精 準,但是具有高記憶度。這兩種方法的有意義的組合使系統(tǒng)對描述I 08的結構具有穩(wěn)定性。
[0028] 有利地,這一方法可以成功地轉換被限定于關鍵字的描述;帶有諸多不需要的、錯 誤的、或不相關的單詞的描述;以及,甚至其中關鍵字的順序是隨機的描述。例如,電子表 格100的簡單的求和命令的所有下列變化可以被成功地轉換:對國會山店的吧員的總報酬 求和(sum the totalpay for the capitol hill baristas);對國會山店吧員總報酬求和 (sum totalpay capitol hill baristas);計算機請對在國會山店位置工作的吧員的總報 酬值求和(computer please sum up the totalpay values for the baristas that work at the capitol hill location);為國會山店的每個吧員對他們的總報酬求和(for each barista at