iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
自我挑戰組

來創造一個AI角色吧-新手的探尋之路系列 第 12

Day11 菜鳥的練功課程-辭典、消音、機器人語

  • 分享至 

  • xImage
  •  

Day6至day10就是第二堂課了,現在我們對機器學習與圖像辨識已經有初步的認識,接下來我們來看第三堂課Natural Language Processing in TensorFlow,是另一種應用,也是人的一種特質-語言。

要教會機器人語言首先我們要寫一本辭典,也就是建立詞彙庫,同樣使用TensorFlow提供的keras中的功能,我們可輸入一些句子,然後根據句子中的單字創造詞彙庫,其中我們先設定詞彙庫的最大容量是100(num_words = 100):

from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences

# Define your input texts
sentences = [
    'I love my dog',
    'I love my cat',
    'You love my dog!',
    'Do you think my dog is amazing?'
]

# Initialize the Tokenizer class
tokenizer = Tokenizer(num_words = 100, oov_token="{OOV}")

# Tokenize the input sentences
tokenizer.fit_on_texts(sentences)

# Get the word index dictionary
word_index = tokenizer.word_index

# Generate list of token sequences
sequences = tokenizer.texts_to_sequences(sentences)

我們可以看到word_index這個dictionary的結果,這邊要注意大寫都會變成小寫,以及問號驚嘆號不處理:

{'{OOV}': 1, 'my': 2, 'love': 3, 'dog': 4, 'i': 5, 'you': 6, 'cat': 7, 'do': 8, 'think': 9, 'is': 10, 'amazing': 11}

以及原本的句子轉變成機器人語(sequences):

[[5, 3, 2, 4], [5, 3, 2, 7], [6, 3, 2, 4], [8, 6, 9, 2, 4, 10, 11]]

另外在 Tokenizer中有一個設定為 oov_token,OOV是指out of vocabulary,也就是當出現不認識的字時,以這個詞彙取代,舉例來說,當我們用這個詞彙庫來讀這兩個句子時:

'i really love my dog', 'my dog loves my manatee'

沒有設定OOV,不認識的字會消失,變成:

'i love my dog', 'my dog my'

但如果有設定OOV會變成:

'i {OOV} love my dog', 'my dog {OOV} my {OOV}'

這就像我們有時聽到某些詞被消失時,還是有機會能依靠上下文能判斷大致的意思。


上一篇
Day10 新手村的練習課程-多元社會
下一篇
Day12 菜鳥的練功課程-整整齊齊與多讀點書
系列文
來創造一個AI角色吧-新手的探尋之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言