專利名稱:一種基于HTML文法樹的FrontPage操作閱卷方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別是涉及一種靜態(tài)網(wǎng)頁制作工具 操作正確性驗證的方法。
技術(shù)背景IT技能測評中有一項評測靜態(tài)網(wǎng)頁制作工具的技能考核。如何快速 有效地檢測操作者熟悉FrontPage工具的使用,存在著一定的難點(diǎn),因 為對于同樣的效果,HTML標(biāo)簽序列可能是多樣的。目前,進(jìn)行此類正確性檢查的方法主要是編寫多種可能的HTML標(biāo)簽 序列,在HTML文檔中以字符串匹配的方式來檢查是否操作正確,此方法 存在答案編寫繁瑣,匹配時間長等缺陷。 發(fā)明內(nèi)容本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種基于HTML文法樹 的FrontPage操作閱巻方法。本發(fā)明解決其技術(shù)問題采用的技術(shù)方案如下1) 采用XML格式將HTML文件轉(zhuǎn)化為HTML文法樹,具體方法是 首先分析待驗證的HTML文件,去除腳本(如廣告代碼、VBScript和JavaScript等腳本)等無用標(biāo)簽信息;然后由于HTML語法結(jié)構(gòu)比較松散不便于分析,在去除無用標(biāo)簽信息 的基礎(chǔ)上我們采用HT亂對稱性分析處理算法,消除HTML文件中不嚴(yán)格 的語法;其次在得到了語法格式良好的HTML文件后,把HTML文件轉(zhuǎn)化為XML 文件;最后把XML文件轉(zhuǎn)化為HTML文法樹,便于后續(xù)的操作正確性判斷。2) 采用深度遍歷法在考生HTML文件轉(zhuǎn)化的文法樹中查找是否存在 相似于答案HTML文法樹的子樹來進(jìn)行操作正確性判斷,具體方法是首先采用1)中的方法把答案HTML語句塊和考生HTML文件轉(zhuǎn)換為HT亂文法樹,分別記為HTML文法樹A和HTML文法樹D;然后在HTML文法樹D中采用深度遍歷法比較査找是否有相似于HTML文法樹A的子樹。2)中比較查找是否有相似于HTML文法樹A的子樹的具體方法是 首先,比較樹A和樹B的根節(jié)點(diǎn)是否相同,不同則返回相似度0同時退出比較;然后,如果樹A和樹B的根節(jié)點(diǎn)相同,則分別獲取樹A和樹B的子 節(jié)點(diǎn)集,并進(jìn)行清理;其次,計算兩子節(jié)點(diǎn)集中各對應(yīng)節(jié)點(diǎn)的相似度; 最后,按照權(quán)重策略計算得到樹A和樹B的相似度。 本發(fā)明是一種基于HTML文法樹的FrontPage操作閱巻方法,其主要 功能是通過該方法以HTML文法樹作為靜態(tài)網(wǎng)頁制作工具操作正確性的檢 驗對象,運(yùn)用深度遍歷查找和樹相似度比較算法,驗證考生操作的正確 性。本方法實現(xiàn)靜態(tài)網(wǎng)頁制作工具操作的正確性自動驗證,為計算機(jī)對 靜態(tài)網(wǎng)頁制作工具操作正確性的自動測評提供了方法保障。(1) 語法形式化。HTML文法樹是HTML結(jié)構(gòu)的樹狀表示,具有形式化、 規(guī)范化的優(yōu)點(diǎn),便于分析HTML結(jié)構(gòu)的相似性,進(jìn)而驗證考生操作的正確 性。(2) 準(zhǔn)確性。采用樹相似度比較算法,以是否存在相似子樹的方式來 判斷正確性,比傳統(tǒng)的文本比較方法更加快速、準(zhǔn)確和合理。
具體實施方式
1方法中涉及到相關(guān)的定義及說明 兩棵樹A和B的相似度基本準(zhǔn)則如下1) 如果樹A—對B,則樹A和樹B的相似度為1 。2) 如果樹A的根節(jié)點(diǎn)^樹B的根節(jié)點(diǎn),則樹A和樹B的相似度為0;3) 如果樹A的根節(jié)點(diǎn)=樹B的根節(jié)點(diǎn),則樹A和樹B的相似度>0 說明樹A一對B,表示樹A和樹B完全相同; 定義1 (樹相似度)「0 樹A根節(jié)點(diǎn)#樹B根節(jié)點(diǎn)樹A和樹B的相似度^各子樹相似度加權(quán)樹A根節(jié)點(diǎn)二樹B根節(jié)點(diǎn) 2 HTML對稱性分析處理算法以帶頭結(jié)點(diǎn)的線性鏈表L作為存儲結(jié)構(gòu),依次讀入HTML文件中的字 符,判斷標(biāo)簽是否匹配,從而補(bǔ)全漏缺標(biāo)簽和刪除無用標(biāo)簽,具體算法如下第一步,從HTML文件中讀入字符a,判斷字符a是"<",還是"〈/", 如果a是"<"則轉(zhuǎn)歩驟二,是"〈/"則轉(zhuǎn)步驟三;第二步,將從字符"〈"到"〉"的標(biāo)簽內(nèi)容作為鏈表L的一個元素, 并依次記載出現(xiàn)的在每一個"<〉"中的每一個字符串,轉(zhuǎn)步驟一繼續(xù)進(jìn) 行處理;第三步,則將此結(jié)束標(biāo)記的內(nèi)容與鏈表L的最后一個元素的內(nèi)容進(jìn)行 比較,若相同,表示此起始標(biāo)記和讀入的結(jié)束標(biāo)記符合XML語法,則刪除 L中的這個元素,如果不相同則依次與L中當(dāng)前元素的父節(jié)點(diǎn)比較,直到 找到相同的節(jié)點(diǎn)元素。這種情況表明找到的起始標(biāo)記和讀入的結(jié)束標(biāo)記 中間的元素不是逐層嵌套的,需要在找到的起始標(biāo)記和讀入的結(jié)束標(biāo)記 中間的元素中增加相應(yīng)的結(jié)束標(biāo)記,如果找不到轉(zhuǎn)步驟四;第四步,針對不是逐層嵌套需要增加相應(yīng)的結(jié)束標(biāo)記的情況,分析 如果找不到與讀入的結(jié)束標(biāo)記相等的節(jié)點(diǎn)元素,可能HTML文件中不存在 相等的節(jié)點(diǎn)元素,也可能嵌套錯誤已經(jīng)被前一個讀入標(biāo)記修復(fù)了,所以 我們可以刪除HTML文件中的這個讀入標(biāo)記。第五步,重復(fù)步驟一,直至HTML文件結(jié)束。3基于相似度的操作正確性驗證算法在得到答案HTML文法樹A和考生目標(biāo)HTML文法樹D后,采用深度 遍歷和相似度比較算法來查找在HTML文法樹D中是否存在相似于HTML 文法樹A的子樹,并返回相似度。具體的相似度比較算法如下第一歩,比較樹A和樹B的根節(jié)點(diǎn),如果不同則返回相似度0,相同5則轉(zhuǎn)歩驟二;第二歩,分別得到樹A和樹B的子節(jié)點(diǎn)集,S油A和SubB;第三歩,獲取SubA和SubB的第一層子節(jié)點(diǎn)集FSubA和FSubB;第四歩,對節(jié)點(diǎn)集FSubA和FSubB進(jìn)行清理,去除在一個集合中存 在的,而另一個集合中不存在的節(jié)點(diǎn),從而只保留兩個節(jié)點(diǎn)集中共同的 節(jié)點(diǎn);第五步,經(jīng)過第四步處理后的兩個節(jié)點(diǎn)集,仍然無法計算相似度, 還需要做進(jìn)一步清理,采用擇優(yōu)剔除法(分別計算經(jīng)過順序剔除和逆序 剔除后的相似度,取相似度高的剔除方法)剔除多余節(jié)點(diǎn)。第六步,經(jīng)過第五步處理后的兩個節(jié)點(diǎn)集又構(gòu)成兩棵樹,再從第一 步開始計算相似度,直到樹A和樹B都不存在節(jié)點(diǎn),返回相似度。
權(quán)利要求
1. 一種基于HTML文法樹的FrontPage操作閱卷方法,其特征在于該方法的具體步驟包括1)采用XML格式將HTML文件轉(zhuǎn)化為HTML文法樹,具體方法是首先分析待驗證的HTML文件,去除腳本中無用標(biāo)簽信息;然后采用HTML對稱性分析處理算法,消除HTML文件中不嚴(yán)格的語法;其次在得到了語法格式良好的HTML文件后,把HTML文件轉(zhuǎn)化為XML文件;最后把XML文件轉(zhuǎn)化為HTML文法樹;2)采用深度遍歷法在考生HTML文件轉(zhuǎn)化的文法樹中查找是否存在相似于答案HTML文法樹的子樹來進(jìn)行操作正確性判斷,具體方法是首先采用1)中的方法把答案HTML語句塊和考生HTML文件轉(zhuǎn)換為HTML文法樹,分別記為HTML文法樹A和HTML文法樹D;然后在HTML文法樹D中采用深度遍歷法比較查找是否有相似于HTML文法樹A的子樹;所述的2)比較查找是否有相似于HTML文法樹A的子樹的方具體方法是首先,比較樹A和樹B的根節(jié)點(diǎn)是否相同,不同則返回相似度0同時退出比較;然后,如果樹A和樹B的根節(jié)點(diǎn)相同,則分別獲取樹A和樹B的子節(jié)點(diǎn)集,并進(jìn)行清理,其次,計算兩子節(jié)點(diǎn)集中各對應(yīng)節(jié)點(diǎn)的相似度;最后,按照權(quán)重策略計算得到樹A和樹B的相似度。
全文摘要
本發(fā)明涉及一種FrontPage操作正確性驗證的方法。目前進(jìn)行FrontPage操作正確性驗證方法效率低、驗證的準(zhǔn)確性不夠。本發(fā)明方法具體包括采用XML格式將HTML文件轉(zhuǎn)化為HTML文法樹;采用深度遍歷法在考生HTML文件轉(zhuǎn)化的文法樹中查找是否存在相似于答案HTML文法樹的子樹來進(jìn)行操作正確性判斷;采用樹相似比較算法來比較得到兩棵樹的相似性。本發(fā)明方法可以準(zhǔn)確驗證FrontPage操作的正確性,同時效率也比現(xiàn)有方法得到大大提高。
文檔編號G06F17/30GK101261632SQ20081006094
公開日2008年9月10日 申請日期2008年4月8日 優(yōu)先權(quán)日2008年4月8日
發(fā)明者胡維華, 謝紅標(biāo) 申請人:杭州電子科技大學(xué)