J'étais accro à l'installation de python-mecab, donc je voulais juste faire ce que Pat avait lu, alors j'ai décidé d'appuyer sur la commande mecab.
mecab peut obtenir des lectures comme celle-ci (il ne peut être pris que s'il est dans le dictionnaire)
$ echo "Pomme" | mecab -Oyomi
Pomme
Donc, voici un script qui extrait le nom du modèle Django et le convertit en Yomigana.
yomigana.py
# -*- coding: utf-8 -*-
import os
import sys
import re
from subprocess import Popen, PIPE
import jcconv
from django.conf import settings
sys.path.append(os.path.abspath(os.path.dirname('.')))
os.environ['DJANGO_SETTINGS_MODULE'] = 'hogehoge.settings'
from hogehoge.apps.fuga.models import Piyo
def get_yomigana(text):
p1 = Popen(['echo', text], stdout=PIPE)
p2 = Popen(['mecab', '-Oyomi'], stdin=p1.stdout, stdout=PIPE)
p1.stdout.close()
output = p2.communicate()[0]
return re.sub(r'\n', '', output)
for piyo in Piyo.objects.all():
yomigana = jcconv.kata2hira(jcconv.half2hira(get_yomigana(piyo.name )))
print ','.join([str(user.id), piyo.name.encode('cp932'), yomigana.decode('utf8').encode('cp932')])
Le nom du projet est hogehoge. Je me suis référé au manuel suivant pour frapper des commandes externes.
Apparemment, os.system va être aboli (2.7)
Recommended Posts