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):

image

(完)

posted @ 2021-12-30 17:32  大师兄啊哈  阅读(958)  评论(0编辑  收藏  举报