再说Mdx的字典文件处理
再说Mdx的字典文件处理
上次说了Mdx的字典文件的处理并不难,难的是出现个例就是麻烦事。如音标的处理。在《21英汉大词曲》里的音标用方括号来标识。但在这本词典里,用方括号的还不止这一种,还有别的如“[口语]”、“[美国英语]”、“[俚语]”等等,在EmEditor里查找:\[[^一-龥]{0,50}\]可以查找所有的音标,但第一个就出例外了。第一个是 a [强ei,弱ə]就是例外。还有多少个例外呢?
就《21英汉大词曲》而言,经过粗略的整理,呈下图中的格式:
图一
第一种,单词+Tab+单词+1……
第二种,单词+Tab+单词+词性.1……
第三种,单词+Tab+单词+音标+1……
第四种,单词+Tab+单词+音标+词性.1……
但作为一个三维数据表,我需要的是这样
图二
所以,很多的努力都是要把图一的柱子变成图二。
用emEditor来做,方便是方便,就怕出现例外。实际上也确实存在例外。以至于到现在为止我的词典数据都是残缺的。为什么残缺?就是因为出现了例外。好在例外毕竟是少数,也就将就用了。
……
有时候,灵感远比技术值钱得多。一旦灵感来了,技术就是小菜一碟。
所有的mdx字典文件都有一个特点,就是主单词(或被查询词)后面都有一个Tab,这为做成二维数据表提供了极大的方便。
将mdx文件稍作处理后,成下面图三的样子:
图三
保存好退出。
用Access导入。为什么要用Access导入成数据表?过程中发现,从TXT文本导入数据表,Access比Sql Server好用。所以要过度一下。
成功后再导入到SQL
图四
因为要把F2里与F1相同的内容处理掉,用replace()函数。但不能直接用。为什么?还是怕出现例外。比如说,主单词是abandon,
图五
看到在abandon这个词条里有那么多个abandon,如果现在用replace(),就会把所有的abandon都替换掉了。上面说的灵感来了!就是把词条中的第二个abandon再加上几个字符放到字段F3里。
update [GYYQ].[dbo].[21世纪大英汉词典]
set f3=left(f2,len(f1)+5)
先查询一下看看结果:
图六
对!要的就是图六的这个效果。
接下去要把F2中与F3相同内容的部分去掉,等处理完后再加回来。
update [GYYQ].[dbo].[21世纪大英汉词典]
set f2=replace(F2,F3,'')
结果如图七
图八
这时候就可以把F3中与F1相同的内容替换掉了。
update [GYYQ].[dbo].[21世纪大英汉词典]
set f3=replace(F3,F1,'')
处理好的如下图:
图九
再把处理好的内容加回到F2
图十
这就是想要的格式了。不过还差一步,要把音标抽出来。所以,再次把F3替换成Null备用。
注意:SQL的Charindex()函数查找的位置是字段中第一个出现的位置。现在要把音标抽出来,就要定位字段F2中第一个出现“]”的位置,即:Charindex(‘)’,F2)。但这样就把所有的“]”都定位出来了。
图十一
很显然,图十一不是想要的结果。
观察F2目前的数据,看到那些有音标的词条都以“[”开头。但在SQL里,where f2 like ‘[%’ 是不行的。需要一个转义,即
where f2 like '/[%' escape '/'
图十二
这才是想要的结果。
update [GYYQ].[dbo].[21世纪大英汉词典]
set f3=left(f2,charindex(']',f2))
where f2 like '/[%' escape '/'
图十三
接近尾声了!还差最后一步,就是用F3的内容去年F2里相同的,即把现在F2中的音标去掉。
大功告成!
图十四
至于其它如把变形词抽出来,那是另一个需要解决的问题了。
再说Mdx的字典文件处理相关推荐
- 提取mdx字典文件中的数据
1.使用GetDict将.mdx文件转换为.txt文件 得到的文件: 2.数据库设计 CREATE TABLE `word` (`wid` int(11) NOT NULL AUTO_INCREMEN ...
- 使用Python调用mdx字典文件进行查词
简介 本文只是记录一下,自己用python从mdx字典文件中批量提取单词和所需部分词义的代码. 如果你是需要自己打包制作或编辑mdx文件,可以去pdawiki论坛,那里有完整的字典制作专区,可以了解方 ...
- Python生成强密码字典文件
本文要点在于演示如何使用正则表达式验证密码强度,以及如何生成大量字符的排列.由于下面代码生成的字典过于庞大,所以并没有很直接的应用场景,可对生成的强密码再次进行过滤,仅保留可能性较大的密码,这样可以减 ...
- mdx格式mysql_Schema Workbench 开发mdx和模式文件
一.前言 安装了saiku之后,每次修改schema文件,非常耗时,每次都要经历若干步骤:修改xml.上传.重启才能生效,并且非常不利于学习和理解MDX和模式文件,踌躇之际,发现了这个工具,十分小巧方 ...
- mdx格式mysql_Saiku_学习_02_Schema Workbench 开发mdx和模式文件
一.前言 saiku的查询都是通过cube来进行的.因此每当我们要进行一次多维度查询时,都要先修改xml.上传.重启才能生效,不仅效率低,还不利于学习和理解MDX和模式文件. 通过 workbench ...
- nextjs+MDX渲染md文件并生成目录
nextjs+MDX渲染md文件并生成目录 一.效果展示 线上网站:点击体验 md文件 网页 二.需要使用的模块包 包名 作用 @mdx-js/react 用来渲染react组件 @next-mdx- ...
- 字典制作工具-创建自己的密码字典文件
crunch简介 crunch是一款运行在linux中的字典生成工具,可以灵活的定制自己的密码字典文件.kali系统中默认安装有crunch工具 crunch安装 下载地址 https://sou ...
- 有关john所用字典文件
无论是kali中自带john这个密码破解工具,还是自己安装的这个程序,john都有自己使用的默认字典文件 一:自己安装的john工具 默认字典文件在Jhon the Ripper目录下的john.co ...
- python字典文件,python-文件转字典,字典转文件
学习随笔: 文件转字典,字典转文件 思路: 文件转字典: 1.打开文件,创建一个空字典 2.读取文件 ==按照需求读取文件,如以行读取文件,每次读取一行 3.获取读取的有效数据 ==做个标记 ...
最新文章
- USACO3.32Shopping Offers(DP)
- iis php性能优化,IIS 6 的 PHP 最佳配置方法
- 送你一个在线机器学习网站,真香!
- spark-sql如何删除表_SparkSQL数据源之Hive数据库
- 【数据结构】严蔚敏版--学习复习笔记
- 计算机设备硬件维护税收编码,自动化设备的税收编码是多少
- 基于微信小程序的签到程序
- Navicat Premium 15 的下载及其安装
- 关于teamviewer不能进行局域网连接的问题
- [C++]_ELVE_Windows下QT5.12连接MySql8.0解决方案
- 1946年2月14号第一台计算机,1946年2月14日 世界上第一台计算机诞生,世界,您好!...
- 云计算概念的基本介绍,云计算的特点主要有哪些?
- 计算机 网络 硬件包括,局域网网络硬件主要包括5个
- 硬件_1bit为什么等于6db
- python爬虫--爬取链家租房信息
- 数据挖掘实战(3)——时间序列预测ARIMA模型(附踩坑日志)
- 网站搭建-django-学习成绩管理-13-ECharts
- C++ Primer 学习札记(二)
- Plexus——Spring之外的IoC容器
- 成功解决NotFoundError (see above for traceback): Failed to create a directory: ; No such file or directo