kaldi ImportError: No module named mmseg 解决方案
原文链接:https://www.cnblogs.com/harrymore/p/15749808.html
1. 问题
在跑./run.sh的时候,因为在一些数据集(如magicdata)的预处理中,会调用local/word_segment.py进行分词处理。查了一下,看到mmseg是n年前的包,而且只支持python2.x。github上有人上传了转化成python3.x版本的包(https://github.com/bxshi/py3mmseg),但是下载编译后,也发现不管用,一看发现差不多是10年前上传的,也作罢。于是想到jieba分词,宣称要做最好的 Python 中文分词组件。具体项目可以参考:https://github.com/fxsjy/jieba。之前用过也是简单好用。
安装也非常简单,因为用的3.8,直接用pip安装即可:
pip3 install jieba
后面发现在原来的标签中,还有一些不可视的字符存在,于是也在word_segment.py中进行处理。
2. 代码
word_segment.py:
#!/usr/bin/env python3 from __future__ import print_function import sys import jieba for line in sys.stdin: blks = str.split(line) out_line = blks[0] for i in range(1, len(blks)): for j in jieba.cut(blks[i]): if j.isprintable(): out_line += " " + j print(out_line)
注意:原来的解释器是python2,需要改成你自己的解释器。
最终效果(egs/multi_cn/s5/data/magicdata/test/text):
(完)
本文版权归作者(https://www.cnblogs.com/harrymore/)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,如有问题, 可邮件(harrymore@126.com)咨询.