一、问题的缘起
最近,有网友在我的视频下面留言,问我可否把英语单词进行音节的划分?我以前也有同样的想法,但是始终没有得到解决。但是,我想使用python,学习英语的人都很多,说不定有人已经编写了类似的模块供我们调用呢?
问题截图
于是,我就抱着试试看的心情,在网上搜了一下,果然,某搜索引擎上,已经给出了答案,经过测试,我发现这个pyphen是一个不错的模块,它可以自动把任意单词按照音节来划分,不同的音节中间添加"-",正好符合网友的要求,于时我就尝试探索了一下,结果还不错。
二、下载安装pyphen
这个模块需要在cmd下使用以下命令进行安装:
pip install pyphen
然后通过以下代码导入这个模块:
from pyphen import Pyphen
接着我们需要传入语言代码,英语的语言代码是:en_US,根据官网(http://pyphen.org)显示,这个模块支持37种语言。语言列表如下所示,这里面包括德语、法语、捷克语、丹麦语等,基本上都是欧洲的语言,可谓功能十分强大。
序号英文中文1Afrikaans南非荷兰语2Albanian阿尔巴尼亚语3Belarusian白俄罗斯语4Bulgarian保加利亚语5Catalan加泰罗尼亚语6Croatian克罗地亚语7Czech捷克语8Danish丹麦语9Dutch荷兰语10English (Great-Britain and United-States)英语(英美)11Esperanto世界语12Estonian爱沙尼亚语13French法语14Galician加利西亚语15German (Austria, Germany and Switzerland)德语(奥地利、德国和瑞士)16Greek希腊语17Hungarian匈牙利语18Icelandic冰岛语19Indonesian印度尼西亚语20Italian意大利语21Lithuanian立陶宛语22Latvian拉脱维亚语23Mongolian蒙古语24Norwegian (Bokmål and Nynorsk)挪威语(书面语和新挪威语)25Polish波兰语26Portuguese (Brazil and Portugal)葡萄牙语(巴西和葡萄牙)27Romanian罗马尼亚语28Russian俄语29Serbian (cyrillic and latin)塞尔维亚语(西里尔字母和拉丁字母)30Slovak斯洛伐克语31Slovenian斯洛文尼亚语32Spanish西班牙语33Swedish瑞典语34Telugu泰卢固语35Thai泰语36Ukrainian乌克兰语37Zulu祖鲁语
三、给英语单词划分音节
导入了这个划分音节的模块,下一步就可以轻松划分音节了。以下是人工智能给出的部分代码:
from pyphen import Pyphen
# 创建一个Pyphen对象,需要传入语言代码和可选的字典文件
# 如果不指定字典文件,pyphen将会使用在线服务
# 这里使用英语,并假设你已经有了英语的字典文件
# 文件路径可以是相对路径或者绝对路径
ph = Pyphen(lang='en_US', dict_path='path_to_your_dictionary_file.dict')
# 使用音节划分功能
word = 'revolution'
hyphenated = ph.inserted(word) # 返回音节划分后的单词
print(hyphenated) # 输出可能会是're-volu-tion'
对于英语单词音节的划分,我们可以省去导入字典,简化上述代码如下:
from pyphen import Pyphen
ph = Pyphen(lang='en_US')
# 使用音节划分功能
word = 'application'
hyphenated = ph.inserted(word) # 返回音节划分后的单词
print(hyphenated) # 输出可能会是'ap-pli-ca-tion'
以下是在Win7系统下测试成功的截图:
测试成功截图
如果是对于多个单词的音节切分,我们可以先把单词格式化为列表,再用for循环来遍历完成,这里就不再赘述。
四、学后总结
经过以上的操作,我终于可以在我多个软件中实现对单词音节的划分了,一下子把软件提升了一个档次。
这种音节划分无疑为学生牢固掌握单词的发音,熟悉单词的音节,更好练好口语提供了较好的方法。
更多的模块信息大家可以参考其在github上的仓库:GitHub - Kozea/Pyphen: Hy-phen-ation made easy