1 环境准备
pip install pykakasi pip install mecab-python
2 源码
import MeCab
import pykakasi
text = "私は学生です"
# --- 分词 ---
tagger = MeCab.Tagger("-Owakati") # -Owakati 输出分词
words = tagger.parse(text).strip().split()
# --- 平假名转换 ---
kakasi_hira = pykakasi.kakasi()
kakasi_hira.setMode("J", "H") # 汉字 -> 平假名
kakasi_hira.setMode("K", "H") # 片假名 -> 平假名
kakasi_hira.setMode("H", "H") # 平假名保持平假名
conv_hira = kakasi_hira.getConverter()
hira_words = [conv_hira.do(word) for word in words]
hira_text = " ".join(hira_words)
# --- 罗马音转换 ---
kakasi_romaji = pykakasi.kakasi()
kakasi_romaji.setMode("J", "a")
kakasi_romaji.setMode("K", "a")
kakasi_romaji.setMode("H", "a")
kakasi_romaji.setMode("r", "Hepburn")
conv_romaji = kakasi_romaji.getConverter()
romaji_words = [conv_romaji.do(word) for word in words]
romaji_text = " ".join(romaji_words)
print("原文:", text)
print("平假名:", hira_text)
print("罗马音:", romaji_text)
3 执行py
pip a.py
结果:
原文: 私は学生です 平假名: わたし は がくせい です 罗马音: watashi ha gakusei desu
错误与解决
Traceback (most recent call last):
File "I:\视频\a\a.py", line 7, in <module>
tagger = MeCab.Tagger("-Owakati") # -Owakati 输出分词
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\Python\Lib\site-packages\MeCab.py", line 342, in __init__
_MeCab.Tagger_swiginit(self, _MeCab.new_Tagger(*args))
^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: param.cpp(70) [ifs] no such file or directory: c:\Program Files\mecab\etc\mecabrc
解决方式:
不知道是不是这个错误信息,但因为字典没有安装,所以是错误。
您需要安装字典。
pip install unidic-lite