sunsmile23 发表于 2013-11-14 00:36:12

mdx制作必备:RegEx Dotext,可合并词条,提取信息等

本帖最后由 sunsmile23 于 2014-8-25 12:15 编辑

此帖不再更新。更新在这里:
https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=12972&page=1&extra=#pid178848

【2013.11.26β4】
修复:个别该查找到却找不到的情况。这会影响到所有的功能。
添加:提取条件。
添加:语言支持。

【2013.11.21β3.1】
添加:保存配置文件。Dotext的配置文件包括用户键入的正则表达式。
添加:一键添加短语增加合并方式的选择。
修复:已发现的bugs。这些bugs有可能导致乱码。

【2013.11.19】
添加:给没有短语和派生词查询功能的源文件添加短语和派生词查询功能(把需要操作者动手的工作变成了自动)。
修复:高级合并中一些没有考虑到的情况。其他已发现的bug.
补充了教程。

【2013.11.18】
完善UTF-8文件的支持:修复一些窗口乱码和个别字符在文件中不正常的问题,修复查找替换中的问题。
改善mdx预览效果。修复测试窗口查找定位不准的问题。
增加帮助文件内容。
增加简易图文教程。

【2013.11.11】
程序发布。

程序简介
  Dotext是一款文本整理工具。对mdx源文件的处理提供了一些必要的功能。一站式设计,需要的各项功能在一个程序内完成。快速方便,能大大提高速度和减轻人工劳动。
  全程支持功能强大的pcre正则表达式。既有针对mdx源文件的专用功能,也能对一般的文本文件进行操作。
  操作完全透明,各种处理数据完全交给使用者去检查判断。使用直观,一般都能方便地立即看到效果。程序会产生新的文件,不会破环源文件。产生的文件在源文件夹下。
  虽然功能强大,却也简单易用。可以一键傻瓜式的操作,也对高级用户提供了所有的接口,可灵活定制的项目较多,完全可以按自己的意愿更改各个选项。
  能够处理大文件。耗时操作可随时中断,可以预先少量预览结果,节省设计时间。
  可自动判断UTF-8文件,并维持其原貌。若有不规范的UTF-8文件Dotext无法判断,可人工指定。

程序功能
  你可以键入文件名、按打开按钮获取文件名或从我的电脑中拖放文件到本程序窗口获取文件名。
  提取文本信息(各种文本,不限于mdx文本),同时可对提取的信息进行灵活重组。例如可根据文本特征提取例句、汉译、词组、短语、派生词等等。还可根据需要,在提取过的地方留下记号(锚点)。可以一键给没有短语和派生词查询的源文本添加短语和派生词查询。
  可对任何文本同时进行多条查找替换,一次多条,各条互相独立,互不影响。大大提高文本处理效率。可以处理所有的匹配,也可以只处理每一条的第一项匹配。
  专设测试功能。可现场直观地测试自己设计的正则表达式,还可作为初学者练习正则表达式用。
  查看mdx源文件信息。不用编译,直接查看mdx源文件的效果,“源文件版”的mdict,使得制作过程省时省力。可查看源文件的词条数,取出源文件的headwords,对源文件进行词条排序等。
  对mdx源文本的相同词条进行合并。提供了简单方式和高级方式。
  除支持标准正则外,还支持几种自定义代码,如\h代表词条关键词。例如可以在汉语词典中使用它来替换 ~ 符号,并给它设置格式。具体情况每处皆有说明。

注意事项
  有关mdx专用的功能(如合并、排序等)是以mdx源文本格式为基础的。使用这些功能时必须是mdx源文本格式。若是合并相同词条,源文件必须先排序。
  在使用多行表达式同时进行多条操作时,若一条表达式包含另一条表达式,那么它们的先后顺序不同结果可能不一样。
  程序能够处理大文件,但测试窗口只能处理小文件。
  程序能够自动识别UTF-8文件。但有些UTF-8文件格式不规范。若遇Dotext不能识别时,需要手动指定。
  程序是以段落为单位进行处理的,所以不能进行跨段查找。

使用说明
  1. 用正则表达式对文本进行批量查找替换
  程序支持pcre正则表达式,可以在输入框中键入多行正则表达式,每行一条。各行独立执行,互不影响。批量操作,提高效率。查找和替换框中都可使用\h,代表词条关键词。如查找条件可输入:
  (\<ps\>)(.+?)(\<\/ps\>)
  (\<reg\>)(.+?)(\<\/reg\>)
  (\<font\>)(.*?)(\<\/font\>)
  ~
  替换框中也可以多行键入相应行的替换内容。每行对应替换,互相独立,互不影响。若在相应行上无内容则相当于删除查找内容。例如替换内容如果键入以下内容,则每一行将替换上面查找内容的相应行内容:
  \1<font color=red>\2</font>\3
  \2
  <div>\0</div>
  <font color=red>\h</font>
  执行替换时,可预先在下面少量预览结果。

  2. 根据一定的特称提取文本中的信息, 并按自己的要求组合
  可以用正则表达式把符合一定特征的文本单独提取到另一个文件,并按自己的需求灵活组织各个部分或给某部分加上标签。信息组合格式完全支持正则表达式的替换格式,可以与查找分组配合。同时,支持几种自定义标签,见窗口上相应的说明,其中\m指的是新植入的锚点。注意这儿的 \0,\1,\2,... 等,应与查找框的正则分组相配合,例如查找(<b>)(.+?)(\<\/b\>),则:
  \0=<br>*</br> (即整个内容)
  \1=<br>
  \2=* (即中间项内容)
  \3=</br>
  \1\2\3,…等可以以任意顺序任意次数灵活组合。互相之间可以加入任意内容。程序默认的是一个例子。
  执行提取时,可预先在下面少量预览结果。

  3. 添加锚点
  可以在文本中你提取过信息的地方留下记号,即植入锚点。只需打勾,就可以在所有提取过信息的地方加上锚点,并以\m的形式把新添加的锚点返回给用户。注意,若是分几次添加,那么程序退出后,下次打开再添加另外的锚点时,必须设置与上次不一样的前导字符,不然有可能产生一样的锚点名称。添加的锚点,主要用于提取短语派生词等后进行跨词条跳转。

  3. 合并词条
  Mdx中,最好对相同的词条进行合并。合并前必须排序,Dotext能自动对其进行先排序。使用的是严格排序方式。GetDict的排序并不严格,会受MdxBuilder的影响。所以建议合并前先让它排序,即使你是用GetDict导出的文本。
  Dotext的合并提供了简单方式和高级方式,均是傻瓜式操作,只需输入文件名即可,一键便可搞定。但是Dotext默认的显示效果你可能并不喜欢。你可以更改里面的所有内容,以满足自己的喜好。

  4. 测试功能
  正则表达式能够很复杂,需要的结果往往需要反复尝试才能确定。测试窗口提供了一个方便的场合。可以用小量的文本对自己设计的正则表达式进行方便直观的测试。
  上下窗口提供了替换的直观比较,可以把需要的文本粘贴在上面窗口,或取出一些自己目标文件的样本(或文件中自己需要特别考虑的部分)存为一个小文件,然后在这儿打开。
  本窗口使用提取替换窗口中的查找和替换正则表达式。这样设计测试好自己的正则表达式后,就可以直接对目标文件进行提取或替换了。
若对正则不熟,或是才接触正则的新手,这也是一个学习正则的理想场合。

  5. 源文件预览
  你可以不用编译成mdx文件,直接打开源文件预览效果。“源文件”版的mdict。这可以节省mdx的制作时间。
  6. 辅助功能
  可以提取源文件的headwords, 这在词典制作中很有参考价值。可以给没有短语、派生词查询的词典添加短语和派生词查询。只需设置好各个选项,然后一键全自动完成。

免责声明
一旦您使用本软件,即表示您愿意接受以下条约。
  1、您同意尽您最大的努力来防止和保护未经授权的发表和使用本程序及其文件内容,Dotext将保留所有的权利。
  2、您应该对使用Dotext软件的结果自行承担风险。若运行Dotext软件后出现不良后果时,Dotext软件概不负责,亦不承担任何法律责任。
  3、本说明不能在任何发布版本中被删除或更改,本软件严禁用于任何形式的商业用途。
  4、本软件著作权人为本软件作者,本软件免责声明最终解释权归本软件作者所有。

sunsmile23 发表于 2013-11-14 00:39:37

本帖最后由 sunsmile23 于 2013-11-19 23:41 编辑

简易图文教程。一楼有这儿使用的测试文件。可以用测试文件试试所有的功能,更改所有的选项,看看有什么效果。
高级合并的例子,见6楼Hugh的例子。
提取的例子,见9楼Oeasy的例子。

直接预览mdx文本文件,查看最终效果,不用编译,很省设计时间的哦。


简单合并。这儿使用有大标题的测试文件。因为源文件已有大标题,因此不用再添加什么,设置内容直接留空。这是进行的最简单的合并。


高级合并。这儿使用没有大标题的测试文件。源文件没有大标题,可以在这儿设置个性化的标题、跳转、分标题样式。6楼的Hugh是个经典的例子。



测试。很直观的操作方式。不要在这儿打开大文件。


提取例句。关键在于找好特征。


提取短语,制作跳转词条。把下面操作产生的 *._anchor.txt和*._Extract.txt文件合并,即可制作具有短语查询的文件。

如果不想手动操作上面的步骤,可用下面的一键式操作完成:






汉语词典中的运用:

huysend 发表于 2015-11-23 22:24:33

本帖最后由 huysend 于 2015-11-23 22:56 编辑

感谢楼主的分享 .期待楼主给发一个,先谢谢![email protected]

zsl721 发表于 2015-11-29 10:16:14

感谢楼主详细教程,我虽然看不懂,但是很赞你的认真

huala 发表于 2013-11-14 09:20:23

重量级工具,赞一个

qhd511 发表于 2013-11-14 11:29:29

感谢楼主的分享

erew1 发表于 2013-11-14 14:09:57

大神出现了~~

Hugh 发表于 2013-11-14 16:15:19

本帖最后由 Hugh 于 2013-11-17 10:44 编辑

已经用上了,拜了!

sean_huang 发表于 2013-11-14 21:36:17

如何使用?不能直接打开,出错。

1505082887 发表于 2013-11-14 22:43:56

感谢楼主的分享

Oeasy 发表于 2013-11-15 06:56:05

本帖最后由 Oeasy 于 2013-11-15 07:15 编辑


我只能说,sunsmile23太牛了。{:5_215:}
说说我实际应用的例子。我想做个Oxford Learner's Thesaurus的发音版(superfan做过,但是没有做带音频的版本),从光盘提取出内容,有2781条(事实上应约1万条,提取出来的一条中,其实是一个synonym group)。
粗排是这样的
https://pdawiki.com/forum/data/attachment/album/201311/15/064541e6xr8oz1ntvxea1l.png
但是只有2781条,查不到vacate等,我不喜欢原来的这种跳转、查询方式,
https://pdawiki.com/forum/data/attachment/album/201311/15/064819gurbvaevvlz7iuso.png
我想查询vacate直接跳到abandon,但是自己写正则,实在不知道怎么写,直到在Hugh的提醒下,我才好好研究了这个工具。
abandon下的内容
……
<syn href="abandon_2" onclick="document.getElementById('abandon_2').scrollIntoView(true);">abandon</syn><z> • </z><syn href="abandon_3" onclick="document.getElementById('abandon_3').scrollIntoView(true);">desert</syn><z> • </z><syn href="abandon_4" onclick="document.getElementById('abandon_4').scrollIntoView(true);">vacate</syn><z> • </z><syn href="abandon_5" onclick="document.getElementById('abandon_5').scrollIntoView(true);">evacuate</syn><zp_d/><d>These words all mean to go away from a building or place, leaving it empty.</d></syn-g>
……
我想让abandon、desert、evacuate、evacuate都@@@abandon,这就需要提取,用RegEx Dotext操作如下:
https://pdawiki.com/forum/data/attachment/album/201311/15/065243gamz23mmm0u3m3pc.png
就提取出了一个olt-src-2_Extract.txt文件,
https://pdawiki.com/forum/data/attachment/album/201311/15/065359zp32dq4sxas7oapp.png

通过修改“提取信息组合格式”,其实可以更省力。
剩下要干什么,我就不说了,完全能完成我想要的。
这工具还有很多贴心的功能,还在研究中。

shbf 发表于 2013-11-15 07:10:38

Hugh 发表于 2013-11-14 16:15
已经用上了,拜了!

这张贴图是什么词典?看上去排版配色都很出色!

Oeasy 发表于 2013-11-15 09:48:24

本帖最后由 Oeasy 于 2013-11-15 09:51 编辑


https://pdawiki.com/forum/data/attachment/album/201311/15/094736mpdwp8cfj74d8wca.png

https://pdawiki.com/forum/data/attachment/album/201311/15/094737zisp6brzybrakgyw.png

https://pdawiki.com/forum/data/attachment/album/201311/15/095048s70y2c0nqpfp360e.png

搞定,不过目前只能GoldenDict用,因为源txt是xml。

zhu1234 发表于 2013-11-15 19:04:34

强,可以无限组合了。

STFU 发表于 2013-11-15 19:33:20

感謝分享!
不過是否能改成utf8呢?
在非簡體中文的環境會是亂碼

shawky.nasr 发表于 2013-11-16 11:05:07

本帖最后由 shawky.nasr 于 2013-11-16 12:57 编辑

感谢楼主的分享

在我的系统 Windows 8.1 X64, 有问题

http://img11.imageshack.us/img11/8827/1wa4.jpg

shawky.nasr 发表于 2013-11-16 12:56:44

在我的系统 Windows 8 X64, 有问题

http://img11.imageshack.us/img11/8827/1wa4.jpg

sxingbai 发表于 2013-11-16 20:44:46

坛子的福音啊,多谢!

guokhan 发表于 2013-11-17 14:41:53

这个工具太棒了!!!!!

Oeasy 发表于 2013-11-20 19:00:48

http://pic1.ooopic.com/uploadfilepic/ziku/2008-08-09/OOOPIC_vipvip_20080809073329bda88f833700538e57.jpg
有更新,多图教程!

Oeasy 发表于 2013-11-23 17:44:35


一键合并词条

准备预览索引文件......
任务完成。
输入词条数:21426
并后词条数:14905
合并后减少:6521
共用时:0:01:14
文件合并到:D:\MWVD\MWVD-src6_cmb_out.txt
被合并的词条:D:\MWVD\MWVD-src6_cmb_combined.txt
排序后文件:D:\MWVD\MWVD-src6_cmb_sorted.txt


https://pdawiki.com/forum/data/attachment/album/201311/23/174326rb0ft6ttosvnotpt.png

zhu1234 发表于 2013-11-23 23:01:14

handle
1:: AUTOMOBILE ACCESSORIES
2:: SEWING ACCESSORIES
3:: SEWING ACCESSORIES
4:: AIR COMPRESSOR
5:: ALPINE SKIER
6:: AMBULANCE
7:: AMBULANCE
8:: BACKING
9:: BADMINTON RACKET
10:: BALL-TYPE FAUCET
11:: BASEBALL BAT
12:: CRICKET BAT
13:: BOBBIN LACE
14:: BOBSLED
15:: BOW: STRINGED INSTRUMENT
16:: BOW
17:: BRACE
18:: BRUSH
19:: C-CLAMP
20:: CARTRIDGE FAUCET
21:: CASTING
22:: CIRCULAR SAW
23:: CLAW HAMMER
24:: COMPASS SAW
25:: COOKING SET
26:: COPING SAW
27:: CORDLESS SCREWDRIVER
28:: CURLING IRON
29:: CURLING STONE
30:: CYLINDER VACUUM CLEANER
31:: DENTAL CARE
32:: DENTAL CARE
33:: DISC FAUCET
34:: ELECTRIC MITER SAW
35:: ELECTRIC RANGE
36:: ELECTRICITY TOOLS
37:: EXAMPLES OF HANDLES
38:: FENCING WEAPONS
39:: FLYFISHING
40:: FOR COOKING
41:: FOR COOKING
42:: FOR COOKING
43:: FOR COOKING
44:: FOR CUTTING
45:: FOR GRINDING AND GRATING
46:: FOR MIXING AND BLENDING
47:: FORK
48:: GARBAGE DISPOSAL SINK
49:: GAS RANGE
50:: HAIR DRYER
51:: HAMMER
52:: HAND MITER SAW
53:: HANDBAGS
54:: HANDSAW
55:: HOUSEHOLD EQUIPMENT
56:: HOUSEHOLD EQUIPMENT
57:: HOUSEHOLD EQUIPMENT
58:: ICE CREAM FREEZER
59:: JIG SAW
60:: KETTLE
61:: KNIFE
62:: LAWN CARE
63:: LEATHER GOODS
64:: LIFE-SAVING EQUIPMENT
65:: LOW WARP LOOM
66:: LUGGAGE
67:: LUGGAGE
68:: LUGGAGE
69:: MASONRY TOOLS
70:: MISCELLANEOUS ARTICLES
71:: MOTORIZED EARTH AUGER
72:: PAINT ROLLER
73:: PARTS OF A BED
74:: PIPE CLAMP
75:: PLANE
76:: PLIERS
77:: PLIERS
78:: PNEUMATIC HAMMER
79:: PORTABLE SOUND SYSTEMS
80:: PORTABLE SOUND SYSTEMS
81:: PRUNING AND CUTTING TOOLS
82:: RANDOM ORBIT SANDER
83:: RASP
84:: REFRIGERATOR
85:: SCRAPER: PAINTING UPKEEP TOOL
86:: SCREWDRIVER
87:: SHAVING
88:: SHAVING
89:: SLOW-BURNING STOVE
90:: SOCCER TABLE
91:: SPEED SKIER
92:: SPIRAL SCREWDRIVER
93:: SPOON
94:: STEAM IRON
95:: STEM FAUCET
96:: STICK
97:: STRAIGHTENING IRON
98:: TABLE TENNIS PADDLE
99:: TENNIS RACKET
100:: TOOL BOX
101:: UMBRELLA AND STICK
102:: VISE
103:: WATERING TOOLS
104:: WELDING TORCH
105:: WHEELBARROW
106:: WHEELCHAIR
107:: WRENCHES

Oeasy 发表于 2013-11-25 21:15:55


通过Dotext的提取功能,快速把一个汉英一一对应的mdx变成英汉。
https://pdawiki.com/forum/data/attachment/album/201311/25/211530o8e6ooejv89eeeqz.png

aminh188 发表于 2013-11-26 19:24:13

很强大的工具,求一个。等楼主站短

chigres 发表于 2013-11-27 04:18:42

特地注册个号来支持这个帖子,这个工具!
上周用这个工具还完成了汉语词头的整合嵌入。

liuyunrushui 发表于 2013-11-27 11:52:08

多谢老大!
静候老大的站短!
这个可以把词库任意组合啦!无敌呀!

hyln9 发表于 2013-11-27 13:55:30

确实需要,这两天因为英文维基头都炸了,希望能收到你的站内短信,谢谢了!
页: [1] 2 3 4 5
查看完整版本: mdx制作必备:RegEx Dotext,可合并词条,提取信息等