Einführung in die Bibliothek "mojimoji", mit der japanische Zeichenfolgen mit Python mit hoher Geschwindigkeit in halbe und volle Breite konvertiert werden können.
mojimoji kann in Python mit hoher Geschwindigkeit eine Konvertierung in voller / halber Breite durchführen. Mit der in [hier] eingeführten Methode (http://qiita.com/ikuyamada/items/6b69c0e9b2f8bf337eeb) wird der Konvertierungsprozess intern mit Cython und C ++ unordered_map durchgeführt, was erheblich schneller als die herkömmliche Implementierung ist. Es klappt.
% pip install mojimoji
Mojimoji hat zwei Methoden, han_to_zen und zen_to_han. Sie können auch die Schlüsselwortargumente kana, digit und ascii verwenden, um die Konvertierung von Katakana, Zahl und Alphabet zu deaktivieren.
>>> import mojimoji
>>> print mojimoji.zen_to_han(u'Aiu abc012')
Aiuu abc012
>>> print mojimoji.zen_to_han(u'Aiu abc012', kana=False)
Aiu abc012
>>> print mojimoji.zen_to_han(u'Aiu abc012', digit=False)
Aiuu abc012
>>> print mojimoji.zen_to_han(u'Aiu abc012', ascii=False)
Iwabc012
>>> import mojimoji
>>> print mojimoji.han_to_zen(u'Aiuu abc012')
Aiu abc012
>>> print mojimoji.han_to_zen(u'Aiuu abc012', kana=False)
Iwabc012
>>> print mojimoji.han_to_zen(u'Aiuu abc012', digit=False)
Aiu abc012
>>> print mojimoji.han_to_zen(u'Aiuu abc012', ascii=False)
Aiu abc012
Vergleichen wir in ähnlicher Weise die Operationsgeschwindigkeit mit den Bibliotheken zenhan und jctconv, die mit Python die halbe und volle Breite konvertieren.
% pip install zenhan
% pip install jctconv
% ipython
In [1]: import mojimoji
In [2]: import zenhan
In [3]: import jctconv
In [4]: s = u'Io Eo 012345' * 10
In [5]: %time for n in range(1000000): mojimoji.zen_to_han(s)
CPU times: user 3.90 s, sys: 0.03 s, total: 3.93 s
Wall time: 3.97 s
In [6]: %time for n in range(1000000): zenhan.z2h(s)
CPU times: user 71.05 s, sys: 0.16 s, total: 71.22 s
Wall time: 71.45 s
In [7]: %time for n in range(1000000): jctconv.z2h(s)
CPU times: user 19.75 s, sys: 0.06 s, total: 19.81 s
Wall time: 19.86 s
Sie können sehen, dass es ungefähr 18 Mal schneller als die in Pure Python implementierte Zenhan-Bibliothek und ungefähr 5 Mal schneller als jctconv ist.