Ich war süchtig nach der Installation von Python-Mecab, also wollte ich nur das tun, was Pat gelesen hatte, und entschied mich, einfach den Befehl Mecab zu drücken.
Mecab kann solche Messwerte erhalten (es kann nur genommen werden, wenn es im Wörterbuch steht)
$ echo "Apfel" | mecab -Oyomi
Apfel
Hier ist also ein Skript, das den Namen aus dem Django-Modell zieht und in Yomigana konvertiert.
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')])
Der Projektname ist hogehoge. Ich habe mich auf das folgende Handbuch bezogen, um externe Befehle auszuführen.
Anscheinend wird os.system abgeschafft (2.7)
Recommended Posts