再说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的字典文件处理相关推荐

  1. 提取mdx字典文件中的数据

    1.使用GetDict将.mdx文件转换为.txt文件 得到的文件: 2.数据库设计 CREATE TABLE `word` (`wid` int(11) NOT NULL AUTO_INCREMEN ...

  2. 使用Python调用mdx字典文件进行查词

    简介 本文只是记录一下,自己用python从mdx字典文件中批量提取单词和所需部分词义的代码. 如果你是需要自己打包制作或编辑mdx文件,可以去pdawiki论坛,那里有完整的字典制作专区,可以了解方 ...

  3. Python生成强密码字典文件

    本文要点在于演示如何使用正则表达式验证密码强度,以及如何生成大量字符的排列.由于下面代码生成的字典过于庞大,所以并没有很直接的应用场景,可对生成的强密码再次进行过滤,仅保留可能性较大的密码,这样可以减 ...

  4. mdx格式mysql_Schema Workbench 开发mdx和模式文件

    一.前言 安装了saiku之后,每次修改schema文件,非常耗时,每次都要经历若干步骤:修改xml.上传.重启才能生效,并且非常不利于学习和理解MDX和模式文件,踌躇之际,发现了这个工具,十分小巧方 ...

  5. mdx格式mysql_Saiku_学习_02_Schema Workbench 开发mdx和模式文件

    一.前言 saiku的查询都是通过cube来进行的.因此每当我们要进行一次多维度查询时,都要先修改xml.上传.重启才能生效,不仅效率低,还不利于学习和理解MDX和模式文件. 通过 workbench ...

  6. nextjs+MDX渲染md文件并生成目录

    nextjs+MDX渲染md文件并生成目录 一.效果展示 线上网站:点击体验 md文件 网页 二.需要使用的模块包 包名 作用 @mdx-js/react 用来渲染react组件 @next-mdx- ...

  7. 字典制作工具-创建自己的密码字典文件

    crunch简介 crunch是一款运行在linux中的字典生成工具,可以灵活的定制自己的密码字典文件.kali系统中默认安装有crunch工具   crunch安装 下载地址 https://sou ...

  8. 有关john所用字典文件

    无论是kali中自带john这个密码破解工具,还是自己安装的这个程序,john都有自己使用的默认字典文件 一:自己安装的john工具 默认字典文件在Jhon the Ripper目录下的john.co ...

  9. python字典文件,python-文件转字典,字典转文件

    学习随笔: 文件转字典,字典转文件 思路: 文件转字典: 1.打开文件,创建一个空字典 2.读取文件    ==按照需求读取文件,如以行读取文件,每次读取一行 3.获取读取的有效数据   ==做个标记 ...

最新文章

  1. USACO3.32Shopping Offers(DP)
  2. iis php性能优化,IIS 6 的 PHP 最佳配置方法
  3. 送你一个在线机器学习网站,真香!
  4. spark-sql如何删除表_SparkSQL数据源之Hive数据库
  5. 【数据结构】严蔚敏版--学习复习笔记
  6. 计算机设备硬件维护税收编码,自动化设备的税收编码是多少
  7. 基于微信小程序的签到程序
  8. Navicat Premium 15 的下载及其安装
  9. 关于teamviewer不能进行局域网连接的问题
  10. [C++]_ELVE_Windows下QT5.12连接MySql8.0解决方案
  11. 1946年2月14号第一台计算机,1946年2月14日 世界上第一台计算机诞生,世界,您好!...
  12. 云计算概念的基本介绍,云计算的特点主要有哪些?
  13. 计算机 网络 硬件包括,局域网网络硬件主要包括5个
  14. 硬件_1bit为什么等于6db
  15. python爬虫--爬取链家租房信息
  16. 数据挖掘实战(3)——时间序列预测ARIMA模型(附踩坑日志)
  17. 网站搭建-django-学习成绩管理-13-ECharts
  18. C++ Primer 学习札记(二)
  19. Plexus——Spring之外的IoC容器
  20. 成功解决NotFoundError (see above for traceback): Failed to create a directory: ; No such file or directo

热门文章

  1. 未来 3 年,什么样的技术人,最有机会年赚 100万?
  2. MPC574x平台学习——CAN通信
  3. 【将百分制转换成五分制】
  4. python抠图教程_简单几行Python代码实现8秒抠图的AI神器,根本无需PS(附教程)...
  5. 微服务--应对每秒上万并发下的参数优化实战(实战经验)
  6. 总体设计和数据库设计
  7. 【水位预测】基于matlab径向基神经网络地下水位预测【含Matlab源码 1939期】
  8. 制造型企业如何上云?
  9. 合同和协议的区别_合同的内容包括哪些,合同和协议的区别
  10. upload-labs之第一关