今、言語処理のための機械学習入門という本で機械学習の勉強をしております。そのアウトプットとして東北大学 乾・岡崎研究室の言語処理100本ノック2015をpythonで実装しようと思います。
目標は8月中にやりきります、、、予定では!!
pythonのパーション2.7.9です。
http://www.cl.ecei.tohoku.ac.jp/nlp100/
第1章
00.文字列の逆順
文字列"stressed"の文字を逆に(末尾から先頭に向かって)並べた文字列を得よ.
nlp00.py
#!/usr/bin/env python
s = 'stressed'
def reverse(a):
for i in range(len(a)/2):
temp = a[i]
a[i] = a[len(a)-(i+1)]
a[len(a)-(i+1)] = a[i]
return a
print(reverse(s))
00 改良版
nlp00re.py
#!usr/bin/env python
s = "stressed"
print(s[::-1])
01.パタトクカシーー」
「パタトクカシーー」という文字列の1,3,5,7文字目を取り出して連結した文字列を得よ.
nlp01.py
#coding: UTF-8
str = u'パタトクカシーー'
print(str[0:len(str):2])
01改良版
nlp01re.py
#! usr/bin/env python
#coding:UTF-8
str = u"パタトクカシーー"
print(str[::2])
str[::2]
この書き方はpythonぽいって感じなのかなー
02.「パトカー」+「タクシー」=「パタトクカシーー」
「パトカー」+「タクシー」の文字を先頭から交互に連結して文字列「パタトクカシーー」を得よ.
nlp02.py
#!/usr/bin/env python
#coding: UTF-8
str1 = u'パトカー'
str2 = u'タクシー'
str = ''
for i in range(len(str1)):
str = str + str1[i]+str2[i]
print(str)
02改良版
nlp02.py
#!usr/bin/env python
# coding:UTF-8
str1 = u'パトカー'
str2 = u'タクシー'
print(''.join(i+j for i,j in zip(str1,str2)))
ああ、綺麗なコードが書けるようになりたい