本發(fā)明屬于word文件編輯,尤其涉及一種基于c#的指令式word批量編輯方法。
背景技術:
1、隨著技術的發(fā)展,各行各業(yè)對word文件的編輯需求越來越多,已經不止于對單個文件的編輯,隨著文件模板逐漸固化,word格式也趨近相似,批處理需求已然成為很多業(yè)務場景下的訴求。對于批處理,現有技術方案大致有這么幾類:bat批處理程序能對文件名稱、文件系統(tǒng)進行批量編輯;通過poi依賴、python庫或者其他第三方依賴開發(fā)的word批處理程序;通過word嵌入自動化腳本實現批處理;基于模板批量生成來代替批量編輯。
2、bat批處理程序:局限性太大,無法方便的批量編輯word內容;
3、通過第三方依賴批處理程序:用戶成本較高,需要學習開發(fā)語言,第三方依賴使用方法,根據業(yè)務情況設計、開發(fā)應用程序,觸發(fā)功能才能實現批處理,出現問題很難發(fā)現和解決;
4、通過word嵌入自動化腳本實現批處理:普通用戶很難實現,無法簡單的控制批量情況和無法直觀的確認批量編輯效果;
5、基于模板批量再次生成word覆蓋原文件,是一種目前常用的用于代替編輯的方法,缺點在于重新生成銷毀了原文件,重新創(chuàng)建,寫入文件給設備增加了更多的負載壓力,很難處理模板變量的快速編輯。
6、基于此,本發(fā)明設計了一種基于c#的指令式word批量編輯方法,以解決上述問題。
技術實現思路
1、本發(fā)明的目的在于:為了解決基于模板批量再次生成word覆蓋原文件,是一種目前常用的用于代替編輯的方法,缺點在于重新生成銷毀了原文件,重新創(chuàng)建,寫入文件給設備增加了更多的負載壓力,很難處理模板變量的快速編輯的問題,而提出的一種基于c#的指令式word批量編輯方法。
2、為了實現上述目的,本發(fā)明采用了如下技術方案:
3、一種基于c#的指令式word批量編輯方法,包括:
4、s1:指令執(zhí)行外接程序worder,在word程序運行時啟動,用于實時接收指令,翻譯為word程序可直接執(zhí)行的程序命令,異步完成執(zhí)行后回調上報結果;
5、s2:中間服務worderapi,windows后臺自動運行服務程序,提供控制臺指令面板程序和各類程序語言對接sdk服務,提供實時交互服務,管理多執(zhí)行器,匯聚執(zhí)行結果,開放本地api對接用戶及其它程序;
6、s3:用戶級接入應用程序,直接引入對應開發(fā)語言sdk,通過sdk觸發(fā)接口調用,傳輸接口規(guī)范指令和參數。
7、作為上述技術方案的進一步描述:
8、所述用戶級接入應用程序,通過本地搭建簡單可視化窗口,接入本地開放api,觸發(fā)指令并傳遞參數,可視化展示結果。
9、作為上述技術方案的進一步描述:
10、所述用戶級接入應用程序,不依賴其它應用程序,直接快速學會中間服務提供的控制臺指令面板,按照指令面板提示,輸入1、2和3或者a、b和c,快捷觸發(fā)指令,再根據指令參數提示,輸入指令參數,也支持鏈式指令編排,多個指令和參數通過編排指令0,開啟簡單的多指令編排,然后逐一選擇指令輸入參數回車,通過輸入#回車提交多個指令操作。
11、作為上述技術方案的進一步描述:
12、所述開發(fā)語言sdk基于隱馬爾科夫模型的語言識別:
13、語言識別訓練時,首先對語言信號進行預處理和特征處理,獲得語言的特征參數,并創(chuàng)建聲學模型進行識別基本單元;
14、基本單元識別過程中,根據一定的標準和措施對輸入的語言信號進行比對核驗,最終得到識別結果。
15、作為上述技術方案的進一步描述:
16、所述語言識別過程中,隱馬爾科夫模型為一種概率模型,使用隱馬爾科夫鏈進行模擬雙重隨機過程,語言信號的統(tǒng)計特征會發(fā)生改變。
17、作為上述技術方案的進一步描述:
18、所述語言識別過程中,先根據識別需求,構件語言庫,再對語言庫內的所有詞語分別建立隱馬爾科夫模型,通過不斷訓練修改隱馬爾科夫模型中的數據,從而獲得最佳的隱馬爾科夫模型。
19、作為上述技術方案的進一步描述:
20、所述隱馬爾科夫模型的訓練算法基于最陡梯度下降局部優(yōu)化算法baum-welch,設定訓練序列q和模型γ,在t時刻隱馬爾科夫模型鏈在狀態(tài)pt時為wi,在t+1時刻狀態(tài)pt+1時為wj:
21、ξt(i,j)=m(q,pt=wi,pt+1=wj|γ)
22、前向變量和后向變量推算出:
23、ξt(i,j)=[st(i)sijcj(qt+1)μt+1(j)]/m(q|γ)
24、作為上述技術方案的進一步描述:
25、所述隱馬爾科夫模型鏈在t時刻的wi狀態(tài)概率:
26、
27、3個參數的重估公式為:
28、
29、式中,st(i)時t時刻狀態(tài)為i時的前向概率,μt+1(j)是t+1時刻狀態(tài)為j時的后向概率,給定模型γ,觀測序列q的概率為m(q|γ),狀態(tài)轉移概率矩陣a的元素為sij,觀測概率矩陣b的元素是cj(qt+1),狀態(tài)wi轉移期望值數量為wi狀態(tài)轉移至wj狀態(tài)期望值數量為
30、作為上述技術方案的進一步描述:
31、所述采用粒子群優(yōu)化隱馬爾科夫模型算法:
32、給定初始化條件,確定最大速度、學習因子α1和α2、粒子群規(guī)模β、慣性權重θ以及最大迭代次數,同時確定隱馬爾科夫模型的狀態(tài)數、觀測值數和觀測序列;
33、對π、a和b矩陣進行歸一化處理,進一步將速度與位移進行更新;
34、將慣性權重值進行更新,進一步將個體與全局的最優(yōu)值進行更新,通過計算獲得適應度函數;
35、根據是否加入擾動算子,若是達到終止條件,則輸出適應值和最優(yōu)解,否則加入擾動算子。
36、作為上述技術方案的進一步描述:
37、所述隱馬爾科夫模型對指令和參數錯誤進行智能識別步驟包括:
38、先在指令和參數的信號中提取錯誤信息,作為特征提??;
39、對特征參數進行優(yōu)化,用作隱馬爾科夫模型的訓練,獲得不同狀態(tài)下hmm訓練的模型,并將此作為輸入hmm模型的測試數據。
40、綜上所述,由于采用了上述技術方案,本發(fā)明的有益效果是:
41、1、本發(fā)明中,指令式word內容編輯,降低學習和實現成本、指令執(zhí)行外接程序實時執(zhí)行指令提高效率、中間服務提供了更多的使用及實現可能性,更靈活,用戶更好接受的可視化確認方案,同時減少對已有文件的銷毀和重建負載的解決方案。
42、2、本發(fā)明中,windows運行系統(tǒng)外接sdk通信二次開發(fā)接口搭建語言識別平臺,然后使用語音識別技術提取語言指令,根據word程序進而設計語言控制系統(tǒng)。
1.一種基于c#的指令式word批量編輯方法,其特征在于,包括:
2.根據權利要求1所述的一種基于c#的指令式word批量編輯方法,其特征在于,所述用戶級接入應用程序,通過本地搭建簡單可視化窗口,接入本地開放api,觸發(fā)指令并傳遞參數,可視化展示結果。
3.根據權利要求1所述的一種基于c#的指令式word批量編輯方法,其特征在于,所述用戶級接入應用程序,不依賴其它應用程序,直接快速學會中間服務提供的控制臺指令面板,按照指令面板提示,輸入1、2和3或者a、b和c,快捷觸發(fā)指令,再根據指令參數提示,輸入指令參數,也支持鏈式指令編排,多個指令和參數通過編排指令0,開啟簡單的多指令編排,然后逐一選擇指令輸入參數回車,通過輸入#回車提交多個指令操作。
4.根據權利要求1所述的一種基于c#的指令式word批量編輯方法,其特征在于,所述開發(fā)語言sdk基于隱馬爾科夫模型的語言識別:
5.根據權利要求4所述的一種基于c#的指令式word批量編輯方法,其特征在于,所述語言識別過程中,隱馬爾科夫模型為一種概率模型,使用隱馬爾科夫鏈進行模擬雙重隨機過程,語言信號的統(tǒng)計特征會發(fā)生改變。
6.根據權利要求5所述的一種基于c#的指令式word批量編輯方法,其特征在于,所述語言識別過程中,先根據識別需求,構件語言庫,再對語言庫內的所有詞語分別建立隱馬爾科夫模型,通過不斷訓練修改隱馬爾科夫模型中的數據,從而獲得最佳的隱馬爾科夫模型。
7.根據權利要求6所述的一種基于c#的指令式word批量編輯方法,其特征在于,所述隱馬爾科夫模型的訓練算法基于最陡梯度下降局部優(yōu)化算法baum-welch,設定訓練序列q和模型γ,在t時刻隱馬爾科夫模型鏈在狀態(tài)pt時為wi,在t+1時刻狀態(tài)pt+1時為wj:
8.根據權利要求7所述的一種基于c#的指令式word批量編輯方法,其特征在于,所述隱馬爾科夫模型鏈在t時刻的wi狀態(tài)概率:
9.根據權利要求8所述的一種基于c#的指令式word批量編輯方法,其特征在于,所述采用粒子群優(yōu)化隱馬爾科夫模型算法:
10.根據權利要求9所述的一種基于c#的指令式word批量編輯方法,其特征在于,所述隱馬爾科夫模型對指令和參數錯誤進行智能識別步驟包括: