まず、文を漢字、カタカナ、ひらがなのまとまりに分離するプログラムを書く。(連続する2文字の字種が違う場合、改行記号を出力)
(例)
人工知能のプログラムを書きます。
を、
人工知能
の
プログラム
を
書
きます
。
としたい。
aparser.py
#! /usr/bin/env python # -*- coding: utf-8 -*- import re kanj = re.compile(ur'^[一-龥]*$') hira = re.compile(ur'^[あ-ん]*$') kata = re.compile(ur'^[ァ-ン]*$') class Hantei: def hantei(self,moji): if (kanj.search(moji)!=None): return "kanji" elif(hira.search(moji)!=None): return "hiragana" elif(kata.search(moji)!=None): return "katakana"
cutmorph.py
#! /usr/bin/env python # -*- coding: utf-8 -*- import re from aparser import Hantei ha = Hantei() class Cutmorph: def cut(self,sent): #sent = raw_input("カットしたい文字列を入力:").decode("utf-8") numarray = [-1] for x in range(len(sent)-1): if ha.hantei(sent[x]) != ha.hantei(sent[x+1]): numarray.append(x) numarray.append(len(sent)) array = [] for y in range(len(numarray)-1): before = int (numarray[y]) + 1 last = int (numarray[y+1] ) + 1 array.append(sent[before:last]) return array