とりあえず、持てる知識をどんどん出していってほしい。
それがAIに学習させる醍醐味だと思うのです。
とりあえず、プロトタイプとして、
- 文章を区切り、sentenceにする
- sentenceに対して、語彙リスト=voがの中の単語=キーが含まれているか確認する
- 含まれていた単語に登録している知識=値からランダムに抽出
- ランダムに抽出した知識をsentenceに対するコメントとして当てはめる。
こんなものを作りたいと思う。
文章を区切り、sentenceにする
これは前回かそこらでやったけど、結局単語を細かく切っていくと、おかしなことになってしまうので一文ずつに切っていくのが良いとの結論に至った。
content='''
長い文章・・・
'''
split_list1= '。|\n'
sentence_list=re.split(split_list1,content)
こんな感じで、元の文章を「改行」と「。」くらいで区切って、リストを作ってやる。
語彙リストから参照する
vo={'単語1':['知識1','知識2'],'単語2':['知識1','知識2']}
keys=list(vo.keys())
comment_list={} #空の辞書={sentence:['知識','知識'],sentence2:['知識']}
for sentence in sentence_list:
comment_list.update({sentence:[]}) #辞書に追加していく
for key in keys:#それぞれのsentenceに対して
if key in sentence:#語彙=キーが含まれているとき
try:#語彙の知識=値をランダムに出して登録
comment_list[sentence].append(random.choice(vo[key]))
except:#語彙はあるけど知識がないときはスルー
pass
else:#語彙がないときもスルー
pass
print(comment_list)
こんなんで、多分行けるはず。
試しに、
sentence_list=['JVCケンウッドは、JVCブランドより、新シリーズ「SOLIDEGE(ソリデージ)」のハイレゾ対応ヘッドホンとして「HA-SD7」を発表']
で、試してみる。一応、語彙と知識はそれなりに貯めつつある。
結果
{'JVCケンウッドは、JVCブランドより、新シリーズ「SOLIDEGE(ソリデージ)」のハイレゾ対応ヘッドホンとして「HA-SD7」を発表': ['神奈川県横浜市神奈川区(旧日本ビクター本社所在地)に本社を置く、映像機器・音響機器・無線機器メーカー', '音楽用CD(CD-DA)を超える音質の音楽データの総称']}
おー、ちゃんとでてくれた。
ちなみに、ヒットした語彙は、「JVC」と、「ハイレゾ」かな。
これで、ひっちゃかめっちゃか自動で語彙を登録していき、ヒトの手でこつこつ知識を蓄えてあげていけば、、、成長するAIが作れるかもしれない・・・
今日はここまで。
次は、多分かなり進んでいると思う。