德语词频表.xlsx (5.1 MB)
多谢!
德语词频表.xlsx (5.1 MB)
多谢!
晓得了,跟#20楼的想法差不多。多谢!
德语词频表1.zip (12.3 MB)
现在一般的电子字典都能根据英语音节进行划分。salmon,salm·on都可以做到来回切换。直接根据这个音节切换,写段python代码就是了。或者现在语料库的功能,也有能切换到音节的包。数据清洗好了,代码层面,不算啥难事儿。
我不会python,我用Access VBA,人家问的是Excel。这也不关我的事,我才不想费力帮人做。
老兄有兴趣帮人,可以动手,示范一下。
而且人家已经标记为已解决的帖子,再说空话干嘛?
我以前就用vba,建议老兄迁移到python上,我一开始也用vba+access,但发觉access数据库膨胀太快,而且access也不适合太大的数据库,尤其数据库膨胀太快之后,access的sql的索引文件成问题,都是因为vba+access的组合一堆问题的才改成sqlite的,而且,vba对特殊字符处理不好。我自己拿office里的vba画个窗口,挂个输入框,然后扔ppt上做个滚屏的背单词的小工具,但发觉,背法语单词的时候,vba里的输入框,一些法语特殊字符,带上标的,都弄成了乱码,而且,最近vscode调试个python的汉字终端的时候,一不小心改一下区域设置选项里的utf-8支持,好像微软自己给这个功能的界面上都加了个贝塔版的说明,之后,整个office就乱套了,vba开始识别不出来中文,尤其是sheetName识别不出来,msgbox和inputbox里的中文一概识别不出来,正好这事儿还发生在挂个汉语双语反查字典期间,我自己也不知道是字典的源文件就没处理好,弄一堆全角空格占位符,还是我自己office字符编码弄乱套了,弄得没办法,给系统都重做一把,建议老兄最好迁移到libreoffice里,宏写法差不多,而且很多脚本语言可以选,尤其对一些特殊字符的支持比office里的vba宏好得多,但libreoffice的开源文档写的相当糟糕。没啥别的意思,我自己也不打算再搞开发了,纯粹是说点儿就事儿说事儿的事情。而且vba很多的设计思维都是win32那套,放到现在合适不合适的,我自己每次迁移一个平台,对应的和vba里联动的语音引擎,都得要么改动一下代码,捎带这还得蒙着改动一下注册表的注入位置的。尤其想把网上电子字典的数据文件里写好的一些html的格式弄vba里,得额外处理一堆事儿。想加啥其他的功能啥的,网上一堆现成的工具用不了,都得自己根据人家的思路自己拿vba重新改写的。python的生态好,对应的工具啥的也多,迁移过去之后,起码今后一些现成的工具,不用自己拿vba再改写了,直接拿来用就是了。仅仅算是自己个人主管的一些想法罢了。
vba最大的好处是个宏录制的功能,对非开发人员的门槛能低点儿,但这种熟能生巧的事儿,折腾个几个来回,知道了整体office宏结构的话,实际意义不大,反而是捆绑在微软的office平台上,限制太多。很多现成的工具想添加进去,特别麻烦。
也是偶尔差点儿论坛里的问题,搜索到这个帖子的,当就事儿说事儿的,说几句。啥事儿,做的越规范,后期的工作越少。最好论坛里,制作工具和对应的语言代码这块,最好能协调统一一下,影响越大,对应的管理工作越繁琐,语言和代码这块,不统一的话,挖起bug来,都是泪呀。我自己头几天,遇到的现代汉语词典(2002增补本)的汉字,乱码全角空格占位符的事儿,搞过开发的,都应该理解,出现这种犹抱琵琶半遮面的空格占位符,应该就是程序处理过程中,字符高位截断的问题,而这种问题,估计大概率是脚本语言没协调好弄的。我估计,应该是有一部分是拿python啥的弄的,有一部分是拿excel弄的,有一部分是拿文本编辑器替换的,倒来倒去的,不同操作流程操作方式的来回折腾,不知不觉就产生神不知鬼不觉的丢失啥了。折腾个字典的不易,动不动几万几十万单词量的,如果操作工具和操作语言不统一的话,这种问题,还会发生。
词典源数据的质量很难保证的,来源七七八八。
看到一堆混乱和乱码,不一定就是制作者的问题,也可能是出版社电子化的问题。
现代汉语词典(2002增补本)已经是众多mdx里数据差和制作者处理差的典型了。
Sub fgh()
dim a as long
for a= 1 to 20
Cells(a, 2) = StrReverse(Cells(a, 1))
next
End Sub
'-----------方法2-----------
Sub ddd()
Dim i As Long
Dim j As Long
For j = 1 To 9993 '词条总数
For i = len(Cells(j, 2) )To 1 Step -1
Cells(j, 3) = Cells(j, 3) & Mid(Cells(j, 1), i, 1)
Next i
Next j
End Sub
——然后再按第二列数据排序
都快20多年不正经八百的写代码了,自己也不打算再搞技术了,简单看一下,我自己本机也没装office,简单看一下,For j = 1 To 9993 '词条总数,词条总数,这块,用这句话,totalRow = ActiveSheet.Cells.Rows.CurrentRegion.Rows.Count,然后 for 这个totalRow,另外,微软的office里支持redim,如果文件特别大,而且,行数特别多的话,别循环里一行一行读单元格,用个缓存,totalRow = ActiveSheet.Cells.Rows.CurrentRegion.Rows.Count
Dim loadDataContent As Variant
Dim loadDataRange As Range
ReDim loadDataContent(1 To totalRow, 1 To colYorWant) As String
loadDataContent = loadDataRange.Value2 ,而且,改动excel的数据前,如果数据量太大的话,建议代码层面关闭一下屏幕刷新,免得改一个单元格,屏幕刷一下,改动完单元格之后,再调整回来屏幕刷新,一次性统一刷屏,这样速度能多少快点儿,大概写一下伪代码,思路大致是这样,我自己本机现在没装office,office的宏,破事儿太多,建议刚上手的时候,用这玩意儿,慢慢的都迁移到python里,真愿意用宏,还是用libreoffice的,通用性能好点儿,而且相对轻量级,就是libreoffice的文档太差。