Chatbot: はじめてのチャットボット3/4, Python, NLTK

Last Updated on

次の解説を勉強しています。

 

Building a Simple Chatbot from Scratch in Python (using NLTK)

 

NLTKのインストールまで学びました。

 

Pythonの使用法:はじめてのチャットボット NLTK 1/4

Pythonの使用法:はじめてのチャットボット NLTK 2/4

 

I.データの前処理(Text Pre-Processing with NLTK)

 

1.Converting texts into uppercase or lowercase

 

文字を全て大文字か小文字に統一します。

 

2.Tokenization

 

文字情報そのままでは処理できないので、NLTKで扱えるトークンにします。NLTKには英語のトークナイザーが含まれています。

 

Rmoving Noise:集計上意味のない記号や文字を除きます。

 

Rmoving Stop words:集計上利用しない文字を除きます。例えば次のような単語です。

‘the’,’a’,’an’,’and’,’but’,’if’,’or’,’because’,’as’,’what’,’which’,’this’,’that’,’these’,’those’,’then’,
‘just’,’so’,’than’,’such’,’both’,’through’,’about’,’for’,’is’,’of’,’while’,’during’,’to’,’What’,’Which’,
‘Is’,’If’,’While’,’This’

 

StemmingとLimmatization:文法上の活用形はすべて同一の語とします。

例えば、 “running” や“ran” は”run”に、 “better” や “good”も同じ語として扱います。

 

3.Bag of Words

 

前処理されたデータは単なる語の集まり、Bag of Wordsです。これをを集計可能なベクトルに変換します。

例えば、{learning, is, the, not, greeat}の辞書を得たとして、”Learning is great.”の文は、(1,1,0,01)のベクトルとして集計します。

 

II.TF-IDF Approach

 

TF-IDFは語の持つ情報量を評価する方法です。

基本的な考え方は、多くのキュメントに出現する語は情報量が低く、逆にあまり出現しないものは情報量が高いというものです。

確かに、日常生活でも、みんなからよく聞く言葉からは新しいことは知れません。全員が「私は正直だ」と言うなら、この言葉からは、だれが正直かの情報は得られません。

TF-IDF weightはTF*IDFで表されます。TFとIDEの式は簡単です。

末尾のExcampleは次の場合の例です。

100語の文書に”Phone”が5個みつかりました。出現率は5/100=0.05です。

手元の10,000,000文書をチェックしたら、1,000文書に”Phone”が含まれることがわかりました。

比較的出現数の少ない語、つまり、情報量の多い語だということを評価に加えて、次のようにTf-IDFは0.20と評価されました。

IF-IDF=0.05*4=0.20

 

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.