公告:本站正式转型为非交互式静态网站!
转型:本站将通过笔记和博客的形式继续为大家服务,关于 Mathematica 问答服务请移步至QQ群:365716997
联系:如有问题请联系QQ群管理员,或发送邮件至:lixuan.xyz@qq.com。
感谢:最后非常感谢大家多年来的支持与帮助!
参考《互联网跟帖评论服务管理规定》《中华人民共和国网络安全法》《网络信息内容生态治理规定》《互联网用户账号信息管理规定》

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

0 投票
1.5k 浏览

MMA中

DictionaryLookup["p" ~~ ___ ~~ "e"]
(*找出字典里面以p开头,以e结尾的单词*)

可以查询符合条件的单词,我不知道MMA内置的词典是什么,现在想导入下载的朗道词典文件 ,再用DictionaryLookup查询,但是不知道该怎么处理 才能导入后查询...

如果后缀为ld2的词典无法导入,能否导入奇他格式的词典,比如后缀为dict的词典。

朗道字典文件下载:http://www.lingoes.cn/zh/dictionary/dict_down.php?id=7AB175CC5F622A44A0DECE976AF22A16

后缀为dict词典下载(21shijishuangxiangcidian):http://pan.baidu.com/s/1pKYmHM7#list/path=%2F004%E5%95%86%E4%B8%9A%E8%BD%AF%E4%BB%B6%2F%E6%9C%89%E9%81%93%E7%AD%89%E6%89%A9%E5%85%85%E5%AD%97%E5%85%B8stardict%2Fstardict&parentPath=%2F004%E5%95%86%E4%B8%9A%E8%BD%AF%E4%BB%B6

 

分类:文本处理 | 用户: mma-2-2-2 (1.3k 分)
修改于 用户:mma-2-2-2
建议先使用专门工具,将.ld2格式的字典转为.txt普通格式文件,然后导入数据库中玩耍。
当前,如果愿意,也可以导入Mma中玩耍。
ld2 to txt工具:https://code.google.com/archive/p/lingoes-extractor/downloads
好的 谢谢 我先按你的提示自己试一试

2 个回答

+1 投票
 
已采纳

如果你想替换内置字典,可以按照如下操作。

DictionaryLookup[];
data = FromCharacterCode[#, "UTF-8"] & /@ 
   ToCharacterCode /@ 
    ReadList["~/Desktop/langdaoec.txt", Word, RecordLists -> True, 
     WordSeparators -> " = "];
cnLookup = Association[Rule @@@ data];
Unprotect[DataPaclets`DictionaryDump`$DictionaryStack];
DataPaclets`DictionaryDump`$DictionaryStack[9] = 
  Union[data[[All, 1]], 
   DataPaclets`DictionaryDump`$DictionaryStack[9]];

把里面的文件名替换为上面链接工具转换过的txt文件即可。结束后DictionaryLookup函数即可返回内置字典和新字典单词的合集,并且可以使用cnLookup查询对应的中文意思。范例:

DictionaryLookup[] // Length
(*498187*)
DictionaryLookup["ab" ~~ ___ ~~ "la"]
(*{"abbreviated formula", "abdominal fistula", "abortiva variola"}*)
cnLookup /@ DictionaryLookup["ab" ~~ ___ ~~ "la"]
(*{"[化] 缩写式", "[医] 腹壁瘘", "[医] 顿挫型天花"}*)

 

用户: happyfish (1.8k 分)
采纳于 用户:mma-2-2-2
0 投票

利用宣哥给的工具,效果不错,这是瓦屋给的代码效果,我再自己试试其他方法...

txt = Import["C:\\Users\\shigao\\Desktop\\Langdao E-C Dictionary.txt",
CharacterEncoding -> "CP936"];
StringCases[txt,
StartOfLine ~~ "t" | "T" ~~ LetterCharacter ... ~~ "p" | "P" ~~
" = " ~~ Shortest[___] ~~ EndOfLine]

输出效果

用户: mma-2-2-2 (1.3k 分)
修改于 用户:mma-2-2-2
...