如何利用 EXCEL 软件标记排序错误的单词?
本帖最后由 starmars 于 2021-2-26 14:11 编辑OCR后得到的词头列表,如果OCR无误应该按升序排列。如何检查序列中哪些词违背了升序排序从而定位到可能OCR错了的词?我已经写了个小程序很容易就检查出来了。但如何利用现有的工具软件比如EXCEL? 目前我只知道在EXCEL中去升序排序这个词头序列。然而排序本身并非为目的,排序是为了找出排序错误(也就是OCR错误)的单词,我不知道EXCEL中如何能标记出排序错的单词? 用VBA?
往窗体中拖一个按钮控件,命名为“CommandButton1”,双击该控件并输入代码(假定词头为第一列):
Private Sub CommandButton1_Click()
For i = ActiveCell.Row To Cells(Rows.Count, 1).End(xlUp).Row - 1
If Cells(i, 1) >= Cells(i + 1, 1) Then
Cells(i + 1, 1).Select
Exit For
End If
Next i
End Sub
然后选中词头所在列的第一行,按F8开始运行,每按一次按钮,就可以选中下一个不符合排序规则的单元格。当然排序前的预处理和排序的规则可能需要自己写一下。 多谢大家!
乔治兄的这个看起来好复杂啊?
我一直期望的是不用懂正则,不用操作EXCEL,不用进编辑器去替换,只要提供虚拟词表文件和每页首尾词文件,就可以鼠标一点自动生成MDX的这种傻瓜式软件来制作非切图版的图片词典。今天程序总算写完了正在测试。估计要傻瓜式操作还是得用C#,JAVA, PYTHON这种通用语言吧,EXCEL VBA估计无法搞定。。。。 本帖最后由 喬治兄 于 2021-2-26 18:38 编辑
老兄,已發私信給你,正确的升序排列是以匹配欄的排序為順序
A欄 匹配欄==>去各種 ' ,. -/和空格 全去掉僅留英文字元
B欄 原始的索引單字表==>不需處理
C欄 頁碼
[教程] 外研社新英漢詞典 (圖片版) 的製作步驟
https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=33566&extra=
索引
一開始你的順序要正确 (單字有錯無所謂),頁碼也要正确
然后三欄再以匹配欄為准排序一次
再用頁碼相減,若 (大於1 或 小於1) 便是單字有錯...(除非同一單字跨兩三頁)
PS. 除非錯的單字卻又剛好在此頁碼的區間,則頁碼相減是沒法發現的
如此一直檢查到全部都和匹配欄的順序一樣那便是單字應該是沒有錯
檢查好了後須給這索引表一個名稱
Excel 給區域名稱,公式 / 名稱管理員
static/image/hrline/1.gif
大字表
要匹配的大字表則只需處理匹配欄
A欄 匹配欄==>去各種 ' ,. -/和空格 全去掉僅留英文字元
B欄 原始的單字表==>不需處理
以匹配欄的排序為順序排序 A & B 兩欄
C欄 ==> Excel vlookup ==> 得到匹配頁碼
vlookup 大字表 A欄 匹配欄
Lookup_value ==> 大字表 A欄 匹配欄
Table_array ==> 索引 這張表的名稱
Col_index_num ==> 頁碼是索引頁的第3欄 ==> 填入 3
Range_lookup ==> true
static/image/hrline/1.gif
重點是 排序以匹配欄為基準 , vlookup 也是以匹配欄為基準,如此而以
所以 索引表和大字表的匹配欄才都放在A欄
static/image/hrline/1.gif
詞頭匹配圖片辭典之製作
https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=35890&extra=
有錄制的影像,你看一下,希望對你有幫助
多谢大家!
乔治兄那个看起来好象很复杂啊?
因为不大懂EXCEL,所以用通用语言C#编程做了一个制作非切图版图片词典的软件,程序今天总算写完,正在调试。。。最终目的,就是用户不用懂正则替换和EXCEL操作这些东西,只要提供每页首尾词和虚拟词表(或作为虚拟词表的MDX解压TXT文件),其他鼠标一点全搞定MDX文件就生成出来了。估计EXCEL VBA应该不可能写出来这种傻瓜式的软件,毕竟不如通用编程语言那么方便的。 本帖最后由 喬治兄 于 2021-2-26 19:24 编辑
starmars 发表于 2021-2-26 18:40
多谢大家!
乔治兄那个看起来好象很复杂啊?
因为不大懂EXCEL,所以用通用语言C#编程做了一个制作非切图版 ...
真的不複雜,搞一次就會了,邏輯搞清楚,編程處理也才會正確
匹配欄 字元替換
& ==> and
St. ==> saint ( 看情況 )
有的詞典把 St.or stor St 放在 saint 那頁 不按順序來
以匹配欄基準的排序只是為了和 紙本詞典的單字順序一致
你若以 python ,C, ......直接排序單字,順序也是和紙本的單字會有差異,你可以試試 ,除非處理過且作為排序的基準
當然 用excel 這樣的處理排序還是有缺餡,大小寫的順序會有上下詞條差異,和詞組,有的詞組是歸到單字下的.....這只能靠人工了
大小寫的順序會有上下詞條差異
紙本詞典的單字順序A, a
Excel 的單字順序 a, A
建議你搜一下有一本 klwo兄匹配的英漢醫學辭典,有說明醫學的辭匯的排序方式,你看了就會理解 本帖最后由 starmars 于 2021-2-26 19:37 编辑
乔治兄:C#这种高级语言完全可以定制自己的排序机制来override默认的,所以技术上这并非问题。
下面我仅仅讨论虚拟词表的图片词典。
我真正认为是问题的问题是:那些特别的字符: & . 上标,法文西班牙文字母,连字符 等等,到底在纸版词典中是如何排序的,难道每本纸版词典处理起来都是一样的吗???
我很怀疑所有词典或者说绝大部分词典对某一个特别字符都会采取大家默认统一的规则来排序。
比如,你能确认 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=32609 你说的红色的那种排序是纸版词典普遍的排序方法?你参看了大约多少部纸版词典得出的这个结论的呢?除了连字符还空格还有其他的特别字符,纸版词典中又有何排序规律?
这个问题将在制作虚拟词表图片词典时,这些特别字符所在的单词正好是某页的首尾词时的时候出现。
因为我只讨论虚拟词表图片词典,该问题的一个万能解决方案是,将这个词A替换成本纸版词典根本不存在的一个词B,词B中无任何特别字符,且:若词A是本页首词,则词B顺序保证在上页末词之后和词A之前;若词A是本页末词,则词B顺序保证在词A之后和下页首词之前;
本帖最后由 喬治兄 于 2021-2-26 19:55 编辑
starmars 发表于 2021-2-26 19:25
乔治兄:C#这种高级语言完全可以定制自己的排序机制来override默认的,所以技术上这并非问题。
我真正认为 ...
應該沒記錯的話是這本吧
看一下排序說明方法
【医学】道兰氏英汉医学辞海 [图片版]
https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=41685&highlight=%E5%8C%BB%E5%AD%A6
我無法述說有多少詞典是依這樣的處理排序規則,但我所知道的是英美所出版的詞典都是依此規則來排序,國內或台灣的基本上也都是,甚至到目前為止所粗配的辭典也都符合此排序方式
唯有順序正确了,才不會有跳頁的狀況發生,所以你的首要目標應該是先搞懂書本單字的排序,理順了排序其它就能迎刃而解===>這個問題本身和 用什程序語言無關
static/image/hrline/1.gif
我在 Excel 的處理
& ==> and
上标==>刪掉
法文==>不用處理
西班牙文==>不用處理
连字符==>刪掉 本帖最后由 喬治兄 于 2021-2-26 21:06 编辑
starmars 发表于 2021-2-26 19:25
乔治兄:C#这种高级语言完全可以定制自己的排序机制来override默认的,所以技术上这并非问题。
下面我仅仅 ...
【医学】道兰氏英汉医学辞海 [图片版]
page DLSCHF0013
醫學名詞排序規則更多,一般詞典就我所提的幾個字元,括號,處理一下,也就差不多了
', .- / 和 空格
( ) ==> 看詞典情況 可能只去括號, 也可能去掉括號+括號內的內容
&==>and
St. ==> saint ( 看詞典情況 )
{:4_105:}
页:
[1]