import MeCab
import time
from IPython.parallel import Client
t = MeCab.Tagger()
wakati = lambda x: " ".join([feature.split('\t')[0] for feature in t.parse(x).split('\n')][:-2])
wakati('すもももももももももももももももももももももももももものうち')
'すもも も もも も もも も もも も もも も もも も もも も もも も もも の うち'
with open('shayo.txt') as fp:
text = [line.replace('\u3000','').rstrip() for line in fp.readlines()]
text[:5]
['朝、食堂でスウプを一さじ、すっと吸ってお母さまが、', '「あ」', 'と幽かすかな叫び声をお挙げになった。', '「髪の毛?」', 'スウプに何か、イヤなものでも入っていたのかしら、と思った。']
start = time.time()
parsed = [wakati(line) for line in text]
elapsed_time = time.time() - start
print(elapsed_time)
0.0985569953918457
parsed[:5]
['朝 、 食堂 で スウプ を 一 さじ 、 すっと 吸っ て お母さま が 、', '「 あ 」', 'と 幽 かすか な 叫び声 を お 挙げ に なっ た 。', '「 髪の毛 ? 」', 'スウプ に 何 か 、 イヤ な もの でも 入っ て い た の かしら 、 と 思っ た 。']
c = Client()
v = c[:]
len(v)
4
res = v.map(lambda x: x**2 ,[1,2,3,4,5])
res.get()
[1, 4, 9, 16, 25]
v.execute('''
import MeCab
t = MeCab.Tagger()
''')
<AsyncResult: finished>
start = time.time()
res = v.map(wakati, text)
parsed = res.get()
elapsed_time = time.time() - start
print(elapsed_time)
0.053897857666015625
parsed[:5]
['朝 、 食堂 で スウプ を 一 さじ 、 すっと 吸っ て お母さま が 、', '「 あ 」', 'と 幽 かすか な 叫び声 を お 挙げ に なっ た 。', '「 髪の毛 ? 」', 'スウプ に 何 か 、 イヤ な もの でも 入っ て い た の かしら 、 と 思っ た 。']